API REST de digna 2026.11¶
L'API REST de digna permet à vos propres outils et pipelines de travailler avec digna en HTTP et JSON : lire les projets et les résultats d'inspection, gérer les sources de données, les jeux de données et les attributs, et lancer des inspections, par exemple à la fin d'un chargement de données. Le Python SDK utilise la même API.
Cette page décrit ce que toutes les requêtes ont en commun. Les pages de ressources présentent chaque endpoint avec ses paramètres, son corps de requête, ses réponses et ses schémas :
| Ressource | Endpoints |
|---|---|
| Projects | Lire les projets |
| DB Connections | Lire les connexions aux bases de données |
| Data Sources | Créer, lire, modifier et supprimer des sources de données |
| Data Sets | Créer, lire, modifier et supprimer des jeux de données |
| Attributes | Créer, lire, modifier et supprimer des attributs |
| Check Definitions | Lire les définitions de contrôles |
| Inspection Requests | Lancer des inspections et suivre leur progression |
| Inspection Statuses | Lire les résultats d'inspection par projet, source de données et jeu de données |
URL de base¶
L'API fait partie du backend de digna. Chaque chemin commence par /v1, après l'adresse du backend :
L'adresse du backend est celle qu'utilise le tableau de bord : baseUrl dans la section [api] de dashboard/dashboard_config.toml. Utilisez HTTPS dès que l'appelant et digna ne se trouvent pas sur la même machine, car chaque requête transporte une clé d'API.
Authentification¶
Chaque requête envoie la clé d'API d'un utilisateur digna dans l'en-tête Authorization :
Pour créer une clé, ouvrez votre profil utilisateur en bas à gauche du tableau de bord, cliquez sur API Keys, puis sur Add API Key, et copiez la clé. Elle n'est affichée qu'une seule fois. Les mêmes clés fonctionnent pour le digna MCP Server.
Une requête s'exécute avec les autorisations de l'utilisateur de la clé. Créer, modifier et supprimer nécessite le rôle d'éditeur dans le projet ; sinon, la requête est refusée avec 403 et le message You don't have permission to edit this project.
Utilisez un utilisateur dédié à l'automatisation
Créez un utilisateur digna pour chaque intégration, attribuez-lui uniquement les projets et les rôles dont il a besoin, et créez sa clé avec une date d'expiration. Vous pourrez alors révoquer l'accès d'une intégration en supprimant sa clé, sans affecter qui que ce soit d'autre.
Envoyer une requête¶
export DIGNA_API_KEY='<api key>'
curl https://digna.example.com/v1/projects -H "Authorization: Bearer $DIGNA_API_KEY"
Les réponses sont au format JSON. Les listes sont renvoyées sous forme de tableau JSON. Les corps de requête sont également en JSON et envoyés avec Content-Type: application/json.
Limites et filtres¶
Les endpoints de liste renvoient au plus limit éléments : 200 par défaut, et jusqu'à 5000. Une valeur en dehors de cette plage est rejetée avec 400. Il n'existe ni offset ni jeton de page : affinez donc une liste avec ses filtres, par exemple project_id, data_source_id, ou start_date et end_date pour les statuts d'inspection.
Une requête qui dure plus de 60 secondes est annulée avec 408 Request Timeout.
Erreurs¶
Une réponse d'erreur a un corps JSON contenant un code et un message :
| Statut | Code | Signification |
|---|---|---|
400 | BAD_REQUEST | La requête n'est pas valide, par exemple un limit hors plage |
401 | NOT_AUTHENTICATED | La clé d'API est absente, mal formée, inconnue ou expirée |
403 | NOT_AUTHORIZED | L'utilisateur de la clé n'a pas le rôle requis par cette requête |
403 | INVALID_LICENSE | La licence digna a expiré |
404 | NOT_FOUND | Le projet, la source de données ou un autre élément n'existe pas |
500 | INTERNAL_ERROR | Une erreur inattendue dans digna. Le journal du backend contient les détails |
Le message d'une réponse 401 indique ce qui ne va pas avec la clé :
| Message | Cause |
|---|---|
Missing Authorization header | Aucun en-tête Authorization n'a été envoyé |
Invalid Authorization header format | La valeur ne commence pas par Bearer |
Invalid API key | La clé est erronée, ou elle a été supprimée |
API key expired | La clé a expiré. Créez-en une nouvelle |
Exécuter une inspection¶
Une intégration typique lance une inspection lorsqu'un chargement de données est terminé, attend sa fin, puis lit le résultat :
- Lancez l'inspection avec
POST /v1/inspection-requests. La réponse contient l'idde la demande. - Suivez sa progression avec
GET /v1/inspection-requests/{inspection_request_id}. Sonstatuspasse dePENDINGàRUNNINGpuis àCOMPLETED, ou se termine enFAILED,ABORTEDouCANCELLED. Interrogez-la à nouveau toutes les quelques secondes jusqu'à ce qu'il ne change plus. - Lisez le résultat avec
GET /v1/inspection-statuses/data-sourcespour les dates inspectées. Chaque élément a unstatusglobal :0(OK),1(avertissement),2(critique) ou-1(aucun statut), ainsi qu'un statut par module avec le nombre de contrôles réussis, incertains et échoués.
curl -X POST https://digna.example.com/v1/inspection-requests \
-H "Authorization: Bearer $DIGNA_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"project_id": 1,
"include_all_data_sources": true,
"data_source_ids": [],
"start_date": "2026-11-06",
"end_date": "2026-11-06",
"mode": "DAILY",
"weekly_mode_weekdays": [],
"monthly_mode_days": [],
"use_notification": true
}'
Document OpenAPI¶
Chaque installation de digna décrit cette API dans un document OpenAPI 3.1 et propose une Swagger UI interactive pour y essayer des requêtes :
| Quoi | Adresse |
|---|---|
| Document OpenAPI | https://digna.example.com/api-docs/stable/v1/openapi.json |
| Swagger UI | https://digna.example.com/v1/swagger-ui |
Le document de Release 2026.11 est également disponible ici : openapi.json. Utilisez-le pour générer un client dans un autre langage.
Seuls les endpoints /v1 sont couverts
Le tableau de bord communique aussi avec le backend par d'autres endpoints, internes. Ils ne font pas partie de cette API et peuvent changer à chaque version : construisez donc vos intégrations uniquement sur les endpoints /v1.