digna REST-API 2026.11¶
Med digna REST-API:t kan dina egna verktyg och pipelines arbeta med digna över HTTP och JSON: läsa projekt och inspektionsresultat, hantera datakällor, dataset och attribut och starta inspektioner, till exempel i slutet av en dataladdning. Python SDK använder samma API.
Den här sidan beskriver det som alla anrop har gemensamt. Resurssidorna listar varje endpoint med dess parametrar, request-body, svar och scheman:
| Resurs | Endpoints |
|---|---|
| Projects | Läsa projekt |
| DB Connections | Läsa databasanslutningar |
| Data Sources | Skapa, läsa, uppdatera och ta bort datakällor |
| Data Sets | Skapa, läsa, uppdatera och ta bort dataset |
| Attributes | Skapa, läsa, uppdatera och ta bort attribut |
| Check Definitions | Läsa kontrolldefinitioner |
| Inspection Requests | Starta inspektioner och följa deras förlopp |
| Inspection Statuses | Läsa inspektionsresultat per projekt, datakälla och dataset |
Bas-URL¶
API:t är en del av dignas backend. Varje sökväg börjar med /v1, efter backendens adress:
Backendens adress är densamma som dashboarden använder: baseUrl i avsnittet [api] i dashboard/dashboard_config.toml. Använd HTTPS så snart anroparen och digna inte körs på samma maskin, eftersom varje anrop innehåller en API-nyckel.
Autentisering¶
Varje anrop skickar API-nyckeln för en digna-användare i headern Authorization:
Skapa en nyckel genom att öppna din användarprofil längst ned till vänster i dashboarden, klicka på API Keys och sedan på Add API Key, och kopiera nyckeln. Den visas bara en gång. Samma nycklar fungerar för digna MCP Server.
Ett anrop körs med behörigheterna för den användare som äger nyckeln. För att skapa, ändra och ta bort krävs editorrollen i projektet; annars avvisas anropet med 403 och meddelandet You don't have permission to edit this project.
Använd en dedikerad användare för automatisering
Skapa en digna-användare för varje integration, ge den bara de projekt och roller den behöver och skapa dess nyckel med ett utgångsdatum. Då kan du återkalla en integrations åtkomst genom att ta bort dess nyckel, utan att påverka någon annan.
Skicka ett anrop¶
export DIGNA_API_KEY='<api key>'
curl https://digna.example.com/v1/projects -H "Authorization: Bearer $DIGNA_API_KEY"
Svaren är JSON. Listor returneras som en JSON-array. Även request-bodies är JSON och skickas med Content-Type: application/json.
Gränser och filter¶
List-endpoints returnerar högst limit poster: 200 som standard och upp till 5000. Ett värde utanför det intervallet avvisas med 400. Det finns ingen offset eller sidtoken, så avgränsa i stället en lista med dess filter, till exempel project_id, data_source_id, eller start_date och end_date för inspektionsstatusarna.
Ett anrop som tar längre tid än 60 sekunder avbryts med 408 Request Timeout.
Fel¶
Ett felsvar har en JSON-body med en kod och ett meddelande:
| Status | Kod | Betydelse |
|---|---|---|
400 | BAD_REQUEST | Anropet är ogiltigt, till exempel ett limit utanför intervallet |
401 | NOT_AUTHENTICATED | API-nyckeln saknas, är felformaterad, okänd eller har gått ut |
403 | NOT_AUTHORIZED | Nyckelns användare saknar den roll som anropet kräver |
403 | INVALID_LICENSE | digna-licensen har gått ut |
404 | NOT_FOUND | Projektet, datakällan eller ett annat objekt finns inte |
500 | INTERNAL_ERROR | Ett oväntat fel i digna. Backendloggen innehåller detaljerna |
message i ett 401-svar talar om vad som är fel med nyckeln:
| Meddelande | Orsak |
|---|---|
Missing Authorization header | Ingen Authorization-header skickades |
Invalid Authorization header format | Värdet börjar inte med Bearer |
Invalid API key | Nyckeln är fel, eller så har den tagits bort |
API key expired | Nyckeln har gått ut. Skapa en ny |
Köra en inspektion¶
En typisk integration startar en inspektion när en dataladdning är klar, väntar på den och läser resultatet:
- Starta inspektionen med
POST /v1/inspection-requests. Svaret innehåller begäransid. - Följ dess förlopp med
GET /v1/inspection-requests/{inspection_request_id}. Dessstatusgår frånPENDINGviaRUNNINGtillCOMPLETED, eller slutar somFAILED,ABORTEDellerCANCELLED. Fråga igen med några sekunders mellanrum tills den inte längre ändras. - Läs resultatet med
GET /v1/inspection-statuses/data-sourcesför de inspekterade datumen. Varje post har en övergripandestatus:0(OK),1(varning),2(kritisk) eller-1(ingen status), och en status per modul med antalet godkända, osäkra och misslyckade kontroller.
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
}'
OpenAPI-dokument¶
Varje digna-installation beskriver detta API i ett OpenAPI 3.1-dokument och erbjuder ett interaktivt Swagger UI där du kan prova anrop mot det:
| Vad | Adress |
|---|---|
| OpenAPI-dokument | https://digna.example.com/api-docs/stable/v1/openapi.json |
| Swagger UI | https://digna.example.com/v1/swagger-ui |
Dokumentet för Release 2026.11 finns också här: openapi.json. Använd det för att generera en klient i ett annat språk.
Endast /v1-endpoints omfattas
Dashboarden kommunicerar också med backenden via andra, interna endpoints. De ingår inte i detta API och kan ändras i vilken release som helst, så bygg integrationer enbart på /v1-endpoints.