Перейти до змісту

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 після адреси бекенду:

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

Адреса бекенду — та сама, яку використовує дашборд: baseUrl у розділі [api] файлу dashboard/dashboard_config.toml. Використовуйте HTTPS щоразу, коли клієнт і digna працюють не на одній машині, адже кожен запит передає ключ API.


Автентифікація

Кожен запит надсилає ключ API користувача digna у заголовку Authorization:

Authorization: Bearer <api key>

Щоб створити ключ, відкрийте свій профіль користувача в лівому нижньому куті дашборду, натисніть 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 із кодом і повідомленням:

{
  "code": "NOT_FOUND",
  "message": "Data set not found"
}
Статус Код Значення
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 Термін дії ключа закінчився. Створіть новий

Запуск інспекції

Типова інтеграція запускає інспекцію після завершення завантаження даних, чекає на її закінчення та читає результат:

  1. Запустіть інспекцію за допомогою POST /v1/inspection-requests. Відповідь містить id запиту.
  2. Відстежуйте її перебіг за допомогою GET /v1/inspection-requests/{inspection_request_id}. Її status змінюється з PENDING через RUNNING на COMPLETED або завершується як FAILED, ABORTED чи CANCELLED. Повторюйте запит кожні кілька секунд, доки статус не перестане змінюватися.
  3. Прочитайте результат за допомогою 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.