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:
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:
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:
| 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:
- Uruchom inspekcję za pomocą
POST /v1/inspection-requests. Odpowiedź zawieraidżądania. - Śledź jej postęp za pomocą
GET /v1/inspection-requests/{inspection_request_id}. Jejstatuszmienia się zPENDINGprzezRUNNINGnaCOMPLETEDalbo kończy się jakoFAILED,ABORTEDlubCANCELLED. Odpytuj ponownie co kilka sekund, aż przestanie się zmieniać. - Odczytaj wynik za pomocą
GET /v1/inspection-statuses/data-sourcesdla sprawdzonych dat. Każdy element ma ogólnystatus: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.