Перейти к содержанию

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.