digna REST API 2026.11¶
REST API digna дає змогу вашим власним інструментам і конвеєрам працювати з digna через HTTP та JSON: читати проєкти й результати інспекцій, керувати джерелами даних, наборами даних і атрибутами, а також запускати інспекції, наприклад наприкінці завантаження даних. Python SDK використовує той самий API.
Ця сторінка описує те, що спільне для всіх запитів. На сторінках ресурсів наведено кожну кінцеву точку з її параметрами, тілом запиту, відповідями та схемами:
| Ресурс | Кінцеві точки |
|---|---|
| Projects | Читання проєктів |
| DB Connections | Читання підключень до бази даних |
| Data Sources | Створення, читання, оновлення та видалення джерел даних |
| Data Sets | Створення, читання, оновлення та видалення наборів даних |
| Attributes | Створення, читання, оновлення та видалення атрибутів |
| Check Definitions | Читання визначень перевірок |
| Inspection Requests | Запуск інспекцій і відстеження їхнього перебігу |
| Inspection Statuses | Читання результатів інспекцій за проєктом, джерелом даних і набором даних |
Базова URL-адреса¶
API є частиною бекенду digna. Кожен шлях починається з /v1 після адреси бекенду:
Адреса бекенду — та сама, яку використовує дашборд: baseUrl у розділі [api] файлу dashboard/dashboard_config.toml. Використовуйте HTTPS щоразу, коли клієнт і digna працюють не на одній машині, адже кожен запит передає ключ API.
Автентифікація¶
Кожен запит надсилає ключ API користувача digna у заголовку Authorization:
Щоб створити ключ, відкрийте свій профіль користувача в лівому нижньому куті дашборду, натисніть API Keys, потім Add API Key і скопіюйте ключ. Він відображається лише один раз. Ті самі ключі працюють і для digna MCP Server.
Запит виконується з правами користувача, якому належить ключ. Для створення, змінення та видалення потрібна роль редактора в проєкті; інакше запит відхиляється з кодом 403 і повідомленням You don't have permission to edit this project.
Використовуйте окремого користувача для автоматизації
Створіть користувача digna для кожної інтеграції, надайте йому лише ті проєкти й ролі, які йому потрібні, і створіть його ключ із терміном дії. Тоді ви зможете відкликати доступ однієї інтеграції, видаливши її ключ, і це нікого іншого не торкнеться.
Надсилання запиту¶
export DIGNA_API_KEY='<api key>'
curl https://digna.example.com/v1/projects -H "Authorization: Bearer $DIGNA_API_KEY"
Відповіді надходять у форматі JSON. Списки повертаються як масив JSON. Тіла запитів також мають формат JSON і надсилаються із заголовком Content-Type: application/json.
Обмеження та фільтри¶
Кінцеві точки списків повертають щонайбільше limit елементів: типово 200 і не більше 5000. Значення поза цим діапазоном відхиляється з кодом 400. Зміщення чи маркера сторінки немає, тож звужуйте список його фільтрами, наприклад project_id, data_source_id або start_date і end_date для статусів інспекцій.
Запит, який триває довше 60 секунд, скасовується з 408 Request Timeout.
Помилки¶
Відповідь із помилкою має тіло JSON із кодом і повідомленням:
| Статус | Код | Значення |
|---|---|---|
400 | BAD_REQUEST | Запит недійсний, наприклад limit поза допустимим діапазоном |
401 | NOT_AUTHENTICATED | Ключ API відсутній, має неправильний формат, невідомий або прострочений |
403 | NOT_AUTHORIZED | Користувач ключа не має ролі, потрібної для цього запиту |
403 | INVALID_LICENSE | Термін дії ліцензії digna закінчився |
404 | NOT_FOUND | Проєкт, джерело даних або інший елемент не існує |
500 | INTERNAL_ERROR | Неочікувана помилка в digna. Подробиці містить журнал бекенду |
Поле message відповіді 401 повідомляє, що не так із ключем:
| Повідомлення | Причина |
|---|---|
Missing Authorization header | Заголовок Authorization не надіслано |
Invalid Authorization header format | Значення не починається з Bearer |
Invalid API key | Ключ неправильний або його видалено |
API key expired | Термін дії ключа закінчився. Створіть новий |
Запуск інспекції¶
Типова інтеграція запускає інспекцію після завершення завантаження даних, чекає на її закінчення та читає результат:
- Запустіть інспекцію за допомогою
POST /v1/inspection-requests. Відповідь міститьidзапиту. - Відстежуйте її перебіг за допомогою
GET /v1/inspection-requests/{inspection_request_id}. Їїstatusзмінюється зPENDINGчерезRUNNINGнаCOMPLETEDабо завершується якFAILED,ABORTEDчиCANCELLED. Повторюйте запит кожні кілька секунд, доки статус не перестане змінюватися. - Прочитайте результат за допомогою
GET /v1/inspection-statuses/data-sourcesдля перевірених дат. Кожен елемент має загальнийstatus:0(OK),1(попередження),2(критичний) або-1(без статусу), а також статус для кожного модуля з кількістю пройдених, невизначених і непройдених перевірок.
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¶
Кожна інсталяція digna описує цей API в документі OpenAPI 3.1 і пропонує інтерактивний Swagger UI, щоб випробувати запити до нього:
| Що | Адреса |
|---|---|
| Документ OpenAPI | https://digna.example.com/api-docs/stable/v1/openapi.json |
| Swagger UI | https://digna.example.com/v1/swagger-ui |
Документ для Release 2026.11 також доступний тут: openapi.json. Використовуйте його, щоб згенерувати клієнт іншою мовою програмування.
Охоплено лише кінцеві точки /v1
Дашборд також звертається до бекенду через інші, внутрішні кінцеві точки. Вони не є частиною цього API і можуть змінитися в будь-якому випуску, тому будуйте інтеграції лише на кінцевих точках /v1.