Cette section détaille les endpoints permettant d'écrire, de modifier ou de supprimer des données de métriques.
Écrire des données
Description
Cette requête permet d'écrire des points de données pour une ou plusieurs métriques. Si une métrique spécifiée n'existe pas, elle sera créée automatiquement dans le référentiel.
POST /v2/data/values
Scope
Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.
Paramètres
metricName (string, obligatoire) : Nom de la métrique.
datasource (string, optionnel) : Source de données.
values (liste d'objets, obligatoire) : Liste des points à insérer.
timestamp (date-time, obligatoire) : Horodatage du point au format ISO 8601.
value (number, obligatoire) : Valeur numérique du point.
Les paramètres suivants doivent être fournis dans le corps de la requête, au format JSON.
[
{
"metricName": "nom_de_la_metrique",
"datasource": "source_de_donnees",
"values": [
{
"timestamp": "date_et_heure_iso",
"value": "valeur_numerique"
}
]
}
]
Exemple de commande :
# Commande pour écrire des valeurs sur plusieurs métriques
curl -X POST \
--url 'https://xxx.indaba.api.indasuite.io-base.com/v2/data/values' \
# ----- En-têtes -----
-H 'Authorization: Bearer VOTRE_JETON_JWT' \
-H 'Content-Type: application/json' \
# ----- Corps de la requête avec deux métriques distinctes -----
-d '[
{
"metricName": "metric4test_ok",
"datasource": "main",
"values": [
{ "timestamp": "2025-06-26T08:04:05Z", "value": 10.5 },
{ "timestamp": "2025-06-26T08:05:05Z", "value": 11.2 }
]
},
{
"metricName": "pressure_sensor_1",
"datasource": "main",
"values": [
{ "timestamp": "2025-07-01T10:00:00Z", "value": 1013.2 }
]
}
]'
Réponses :
Exemple de réponse valide (200 OK) :
{
"statusCode": 1010,
"message": "2 metrics written/0 metrics filtered/3 values written"
}
Erreurs courantes :
Veuillez vous référer à la liste des erreurs courantes.
Mettre à jour un point de donnée
Description
Cette requête modifie la valeur d'un point de donnée déjà existant à un instant T précis. Une annotation est automatiquement générée pour tracer cette modification.
PUT /v2/data/values
Scope
Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.
Paramètres
metricName (string, obligatoire) : Nom de la métrique.
datasource (string, optionnel) : Source de données.
timestamp (date-time, obligatoire) : Horodatage exact du point à modifier.
value (number, obligatoire) : Nouvelle valeur du point.
message (string, optionnel) : Message personnalisé pour l'annotation de modification.
Les paramètres suivants doivent être fournis dans le corps de la requête, au format JSON.
Syntaxe générale du corps de la requête :
{
"metricName": "nom_de_la_metrique",
"datasource": "source_de_donnees",
"timestamp": "date_et_heure_iso",
"value": "nouvelle_valeur_numerique",
"message": "message_pour_l_annotation"
}
Exemple de commande
# Commande pour mettre à jour un point de donnée
curl -X PUT \
--url 'https://xxx.indaba.api.indasuite.io-base.com/v2/data/values' \
# ----- En-têtes -----
-H 'Authorization: Bearer VOTRE_JETON_JWT' \
-H 'Content-Type: application/json' \
# ----- Corps de la requête -----
-d '
{
"metricName": "metric4test_ok",
"datasource": "main",
"timestamp": "2025-06-26T08:04:05Z",
"value": 10.6,
"message": "Valeur mise à jour."
}
'
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.
Supprimer des données sur une période
Description
Cette requête supprime tous les points de données d'une métrique dans une plage de temps spécifiée. Attention, cette action est irréversible.
DELETE /v2/data/values
Scope
Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:write.
Paramètres
MetricName (string, obligatoire) : Nom de la métrique concernée.
Datasource (string, optionnel) : Source de données.
Start (date-time, obligatoire) : Date de début de la suppression (format ISO 8601).
End (date-time, obligatoire) : Date de fin de la suppression (format ISO 8601).
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 :
.../values?MetricName=[nom_metrique]&Start=[date_debut]&End=[date_fin]
Note : La suppression des données n'est autorisé que sur les 3 derniers mois.
Exemple de requête
# Commande pour supprimer les données d'une métrique sur une période
curl -X DELETE \
'https://xxx.indaba.api.indasuite.io-base.com/v2/data/values?MetricName=metric4test_ok&Datasource=main&Start=2025-06-26T07:06:00Z&End=2025-06-26T08:06:00Z' \
-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.
Endpoint pour lister les bases de données (datasources)
Description
Cette requête retourne la liste de toutes les bases de données (Datasources) disponibles dans le système.
GET /v2/database
Scope
Cette requête ne nécessite pas de scope particulier.
Paramètres
Cette requête ne prend aucun paramètre.
Exemple de requête
# Commande pour lister toutes les datasources disponibles
curl -X GET \
'https://xxx.indaba.api.indasuite.io-base.com/v2/database' \
-H 'Authorization: Bearer VOTRE_JETON_JWT'
Réponses
Exemple de réponse valide (200 OK) :
{
"data": [
"prod",
"test"
],
"statusCode": 1010,
"message": "OK"
}
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": "Field Required",
"message": "The xxx field is required."
}
],
"statusCode": 1050,
"message": "Invalid request"
}
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.