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.