Passer au contenu principal

Import de données (/v2/import-data)

Mis à jour cette semaine

Cet article détaille les endpoints disponibles dédiés à l'import de données en masse à partir de fichiers (Excel, CSV).

Lister les fichiers en attente d'import

Description

Cette requête permet de lister les fichiers qui ont été téléversés et qui sont dans un statut particulier (en attente, en erreur, etc.).

GET /v2/import-data

Scope

Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.

Paramètres

  • datasource (string, optionnel) : Filtre les fichiers par source de données.

  • fileStatus (string, optionnel) : Filtre les fichiers par statut. Valeurs possibles : Waiting, Error, Processed.

Ces paramètres doivent être ajoutés à la fin de l'URL pour construire la chaîne de requête. Le premier est précédé d'un "?" et les suivants sont séparés par un "&".

Syntaxe générale de la requête GET :

.../import-data?datasource=[source_de_donnees]&fileStatus=[statut]

Exemple de requête

# Commande pour lister les fichiers en attente pour la datasource "main" 
curl -X GET \
'https://xxx.indaba.api.indasuite.io-base.com/v2/import-data?datasource=main&fileStatus=Waiting' \
-H 'Authorization: Bearer VOTRE_JETON_JWT'

Réponses

Exemple de réponse valide (200 OK) :

Note : Si aucun fichier ne correspond, une liste vide est retournée.

{
"data": [
{
"filename": "import_donnees_janvier.xlsx",
"fileKey": "import_donnees_janvier.xlsx",
"datasource": "main",
"filenameError": null,
"author": "j.doe@example.com",
"dateImport": "2025-06-27T10:15:30Z"
},
{
"filename": "rapport_compresseur_01.csv",
"fileKey": "rapport_compresseur_01.csv",
"datasource": "main",
"filenameError": null,
"author": "j.doe@example.com",
"dateImport": "2025-06-27T10:20:00Z"
}
]
}

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.

Importer des données depuis un fichier

Description

Cette requête permet de téléverser (uploader) un fichier (Excel, CSV) pour que ses données soient importées. Le traitement est asynchrone.

POST /v2/import-data/{datasource}

Scope

Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.

Paramètres

  • datasource (string, obligatoire) : La source de données dans laquelle les métriques du fichier seront écrites.

Corps de la requête Cette requête doit être au format multipart/form-data et contenir une seule partie :

  • file (fichier, obligatoire) : Le fichier Excel ou CSV à importer.

Exemple de requête

# Commande pour uploader un fichier de données dans la datasource "main" 
curl -X POST \
--url 'https://xxx.indaba.api.indasuite.io-base.com/v2/import-data/main' \
# ----- En-têtes -----
-H 'Authorization: Bearer VOTRE_JETON_JWT' \
-H 'Content-Type: multipart/form-data' \

# ----- Fichier à envoyer -----
-F 'file=@/chemin/vers/mon_fichier_a_importer.xlsx'

Réponses

Exemple de réponse valide (200 OK) :

Une réponse positive indique que le fichier a bien été reçu et mis dans la file d'attente pour traitement.

{ "statusCode": 1010, "message": "OK" }

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.

Supprimer des fichiers par statut

Description

Cette requête supprime tous les fichiers se trouvant dans un statut donné (par exemple, supprimer tous les fichiers en erreur).

DELETE /v2/import-data

Scope

Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.

Paramètres

  • datasource (string, optionnel) : Limite la suppression à une source de données spécifique.

  • fileStatus (string, obligatoire) : Le statut des fichiers à supprimer (Waiting, Error, Processed).

Ces paramètres doivent être ajoutés à la fin de l'URL pour construire la chaîne de requête. Le premier est précédé d'un "?" et les suivants sont séparés par un "&".

Syntaxe générale de la requête GET :

.../import-data?datasource=[source_de_donnees]&fileStatus=[statut]

Exemple de requête

# Commande pour supprimer tous les fichiers en erreur de la datasource "main" 
curl -X DELETE \
'https://xxx.indaba.api.indasuite.io-base.com/v2/import-data?datasource=main&fileStatus=Error' \
-H 'Authorization: Bearer VOTRE_JETON_JWT'

Réponse

Exemple de réponse valide (200 OK):

{ 
"statusCode": 1010,
"message": "OK"
}

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.

Supprimer un fichier d'import spécifique

Description

Cette requête supprime un fichier d'import en particulier, identifié par sa "fileKey".

DELETE /v2/import-data/{datasource}/{fileKey}

Scope

Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.

Paramètres

  • datasource (string, obligatoire) : Source de données du fichier.

  • fileKey (string, obligatoire) : Identifiant unique du fichier.

  • fileStatus (string, obligatoire) : Statut du fichier à supprimer (Waiting, Error...).

Cette requête utilise des paramètres de chemin (intégrés à l'URL) et des paramètres de requête (après le "?").

Syntaxe générale de la requête DELETE :

.../import-data/[valeur_datasource]/[valeur_fileKey]?fileStatus=[statut]

Exemple de requête

# Commande pour supprimer un fichier spécifique en erreur 
curl -X DELETE \
'https://xxx.indaba.api.indasuite.io-base.com/v2/import-data/main/mon_fichier.csv?fileStatus=Error' \
-H 'Authorization: Bearer VOTRE_JETON_JWT'

Réponses

Exemple de réponse valide (200 OK) :

{ 
"statusCode": 1010,
"message": "OK"
}

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.

Télécharger un fichier d'import

Description

Cette requête permet de télécharger le fichier source qui a été importé.

GET /v2/import-data/download/{datasource}/{fileKey}

Scope

Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.

Paramètres

  • datasource (string, obligatoire) : Source de données du fichier.

  • fileKey (string, obligatoire) : Identifiant unique du fichier.

  • fileStatus (string, obligatoire) : Statut du fichier à télécharger.

Cette requête utilise des paramètres de chemin (intégrés à l'URL) et des paramètres de requête (après le "?").

Syntaxe générale de la requête GET :

../import-data/download/[valeur_datasource]/[valeur_fileKey]?fileStatus=[statut]

Exemple de requête

# Commande pour télécharger un fichier et le sauvegarder localement 
curl -X GET \
'https://xxx.indaba.api.indasuite.io-base.com/v2/import-data/download/main/mon_fichier.csv?fileStatus=Processed' \
-H 'Authorization: Bearer VOTRE_JETON_JWT' \
-o 'fichier_telecharge.csv'

Réponses

Exemple de réponse valide (200 OK):

La réponse ne contient pas de JSON. Le corps de la réponse est le contenu binaire du fichier lui-même, accompagné des en-têtes HTTP appropriés (Content-Type et Content-Disposition).

Erreurs courantes :

Veuillez vous référer à la liste des erreurs courantes.

Erreurs Courantes

Vous rencontrerez principalement les codes d'erreur HTTP suivants :

  • 400 Bad Request : Votre requête est malformée. Cela peut être dû à un paramètre manquant, un type de donnée incorrect ou un JSON invalide. Le corps de la réponse contiendra un tableau errors détaillant le problème.

    { 
    "errors": [
    {
    "error": "Type_De_L_Erreur",
    "message": "Description détaillée de l'erreur spécifique."
    }
    ],
    "statusCode": 1050,
    "message": "Invalid request"
    }

  • 401 Unauthorized : Votre jeton d'authentification (JWT) est manquant, invalide ou expiré. Vous devez obtenir un nouveau jeton valide.

  • 403 Forbidden : Votre jeton d'authentification est valide, mais vous n'avez pas les droits nécessaires pour cette action. Cela peut arriver pour deux raisons :

    • Votre jeton n'a pas les droits (scope) nécessaires (par exemple, vous tentez d'écrire des données sans avoir le scope metrics:write).

    • Votre jeton a le bon scope, mais votre utilisateur (ou compte de service) n'est pas rattaché à une autorisation qui donne accès à la métrique demandée.

  • 404 Not Found : La ressource que vous essayez d'atteindre n'existe pas. Cela se produit typiquement si vous utilisez un ID incorrect ou si vous demandez une métrique qui n'existe pas.

Avez-vous trouvé la réponse à votre question ?