Przejdź do treści

REST API digna 2026.11

REST API digna pozwala Twoim własnym narzędziom i pipeline'om pracować z digna przez HTTP i JSON: odczytywać projekty i wyniki inspekcji, zarządzać źródłami danych, zbiorami danych i atrybutami oraz uruchamiać inspekcje, na przykład na koniec ładowania danych. Python SDK korzysta z tego samego API.

Ta strona opisuje to, co jest wspólne dla wszystkich żądań. Strony zasobów opisują każdy endpoint wraz z parametrami, treścią żądania, odpowiedziami i schematami:

Zasób Endpointy
Projects Odczyt projektów
DB Connections Odczyt połączeń z bazą danych
Data Sources Tworzenie, odczyt, aktualizacja i usuwanie źródeł danych
Data Sets Tworzenie, odczyt, aktualizacja i usuwanie zbiorów danych
Attributes Tworzenie, odczyt, aktualizacja i usuwanie atrybutów
Check Definitions Odczyt definicji kontroli
Inspection Requests Uruchamianie inspekcji i śledzenie ich postępu
Inspection Statuses Odczyt wyników inspekcji według projektu, źródła danych i zbioru danych

Bazowy URL

API jest częścią backendu digna. Każda ścieżka zaczyna się od /v1 po adresie backendu:

https://digna.example.com/v1/projects

Adres backendu to ten sam adres, którego używa dashboard: baseUrl w sekcji [api] pliku dashboard/dashboard_config.toml. Używaj HTTPS zawsze, gdy wywołujący i digna nie działają na tej samej maszynie, ponieważ każde żądanie przenosi klucz API.


Uwierzytelnianie

Każde żądanie wysyła klucz API użytkownika digna w nagłówku Authorization:

Authorization: Bearer <api key>

Aby utworzyć klucz, otwórz swój profil użytkownika w lewym dolnym rogu dashboardu, kliknij Klucze API, a następnie Dodaj klucz API i skopiuj klucz. Jest wyświetlany tylko raz. Te same klucze działają w digna MCP Server.

Żądanie jest wykonywane z uprawnieniami użytkownika, do którego należy klucz. Tworzenie, zmienianie i usuwanie wymaga roli Edytor w projekcie; w przeciwnym razie żądanie zostaje odrzucone z kodem 403 i komunikatem You don't have permission to edit this project.

Do automatyzacji używaj osobnego użytkownika

Utwórz osobnego użytkownika digna dla każdej integracji, nadaj mu tylko te projekty i role, których potrzebuje, i utwórz jego klucz z datą wygaśnięcia. Wtedy możesz odebrać dostęp jednej integracji, usuwając jej klucz, bez wpływu na nikogo innego.


Wysyłanie żądania

export DIGNA_API_KEY='<api key>'
curl https://digna.example.com/v1/projects -H "Authorization: Bearer $DIGNA_API_KEY"

Odpowiedzi są w formacie JSON. Listy są zwracane jako tablica JSON. Treść żądań również jest w formacie JSON i jest wysyłana z nagłówkiem Content-Type: application/json.


Limity i filtry

Endpointy list zwracają co najwyżej limit elementów: domyślnie 200, maksymalnie 5000. Wartość spoza tego zakresu jest odrzucana z kodem 400. Nie ma offsetu ani tokenu strony, więc zawężaj listę jej filtrami, na przykład project_id, data_source_id albo start_date i end_date w przypadku statusów inspekcji.

Żądanie trwające dłużej niż 60 sekund zostaje anulowane z kodem 408 Request Timeout.


Błędy

Odpowiedź z błędem ma treść JSON z kodem i komunikatem:

{
  "code": "NOT_FOUND",
  "message": "Data set not found"
}
Status Kod Znaczenie
400 BAD_REQUEST Żądanie jest nieprawidłowe, na przykład limit jest poza zakresem
401 NOT_AUTHENTICATED Brak klucza API albo klucz jest źle sformatowany, nieznany lub wygasł
403 NOT_AUTHORIZED Użytkownik klucza nie ma roli wymaganej przez to żądanie
403 INVALID_LICENSE Licencja digna wygasła
404 NOT_FOUND Projekt, źródło danych lub inny element nie istnieje
500 INTERNAL_ERROR Nieoczekiwany błąd w digna. Szczegóły znajdziesz w logu backendu

Pole message odpowiedzi 401 mówi, co jest nie tak z kluczem:

Komunikat Przyczyna
Missing Authorization header Nie wysłano nagłówka Authorization
Invalid Authorization header format Wartość nie zaczyna się od Bearer
Invalid API key Klucz jest błędny albo został usunięty
API key expired Klucz wygasł. Utwórz nowy

Uruchamianie inspekcji

Typowa integracja uruchamia inspekcję po zakończeniu ładowania danych, czeka na jej zakończenie i odczytuje wynik:

  1. Uruchom inspekcję za pomocą POST /v1/inspection-requests. Odpowiedź zawiera id żądania.
  2. Śledź jej postęp za pomocą GET /v1/inspection-requests/{inspection_request_id}. Jej status zmienia się z PENDING przez RUNNING na COMPLETED albo kończy się jako FAILED, ABORTED lub CANCELLED. Odpytuj ponownie co kilka sekund, aż przestanie się zmieniać.
  3. Odczytaj wynik za pomocą GET /v1/inspection-statuses/data-sources dla sprawdzonych dat. Każdy element ma ogólny status: 0 (OK), 1 (ostrzeżenie), 2 (krytyczny) lub -1 (brak statusu), oraz status dla każdego modułu z liczbą zaliczonych, niepewnych i niezaliczonych kontroli.
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
  }'

Dokument OpenAPI

Każda instalacja digna opisuje to API w dokumencie OpenAPI 3.1 i udostępnia interaktywny Swagger UI, w którym możesz wypróbować żądania:

Co Adres
Dokument OpenAPI https://digna.example.com/api-docs/stable/v1/openapi.json
Swagger UI https://digna.example.com/v1/swagger-ui

Dokument z Release 2026.11 jest też dostępny tutaj: openapi.json. Użyj go, aby wygenerować klienta w innym języku.

Obejmuje tylko endpointy /v1

Dashboard komunikuje się z backendem także przez inne, wewnętrzne endpointy. Nie są one częścią tego API i mogą się zmienić w każdym wydaniu, dlatego buduj integracje wyłącznie na endpointach /v1.