API REST de digna 2026.11¶
La API REST de digna permite que sus propias herramientas y pipelines trabajen con digna mediante HTTP y JSON: leer proyectos y resultados de inspección, gestionar fuentes de datos, conjuntos de datos y atributos, e iniciar inspecciones, por ejemplo al final de una carga de datos. El Python SDK utiliza la misma API.
Esta página describe lo que tienen en común todas las solicitudes. Las páginas de recursos enumeran cada endpoint con sus parámetros, el cuerpo de la solicitud, las respuestas y los esquemas:
| Recurso | Endpoints |
|---|---|
| Projects | Leer proyectos |
| DB Connections | Leer conexiones de base de datos |
| Data Sources | Crear, leer, actualizar y eliminar fuentes de datos |
| Data Sets | Crear, leer, actualizar y eliminar conjuntos de datos |
| Attributes | Crear, leer, actualizar y eliminar atributos |
| Check Definitions | Leer definiciones de comprobaciones |
| Inspection Requests | Iniciar inspecciones y seguir su progreso |
| Inspection Statuses | Leer resultados de inspección por proyecto, fuente de datos y conjunto de datos |
URL base¶
La API forma parte del backend de digna. Cada ruta empieza por /v1, después de la dirección del backend:
La dirección del backend es la misma que usa el dashboard: baseUrl en la sección [api] de dashboard/dashboard_config.toml. Use HTTPS siempre que el cliente que llama y digna no estén en la misma máquina, porque cada solicitud lleva una clave de API.
Autenticación¶
Cada solicitud envía la clave de API de un usuario de digna en la cabecera Authorization:
Para crear una clave, abra su perfil de usuario en la esquina inferior izquierda del dashboard, haga clic en API Keys y después en Add API Key, y copie la clave. Solo se muestra una vez. Las mismas claves sirven para el digna MCP Server.
Una solicitud se ejecuta con los permisos del usuario de la clave. Crear, modificar y eliminar requiere el rol de editor en el proyecto; de lo contrario, la solicitud se rechaza con 403 y el mensaje You don't have permission to edit this project.
Use un usuario dedicado para la automatización
Cree un usuario de digna para cada integración, asígnele solo los proyectos y roles que necesite y cree su clave con una fecha de caducidad. Así podrá revocar el acceso de una integración eliminando su clave, sin afectar a nadie más.
Enviar una solicitud¶
export DIGNA_API_KEY='<api key>'
curl https://digna.example.com/v1/projects -H "Authorization: Bearer $DIGNA_API_KEY"
Las respuestas son JSON. Las listas se devuelven como un array JSON. Los cuerpos de las solicitudes también son JSON y se envían con Content-Type: application/json.
Límites y filtros¶
Los endpoints de lista devuelven como máximo limit elementos: 200 de forma predeterminada y hasta 5000. Un valor fuera de ese rango se rechaza con 400. No hay offset ni token de página, así que acote una lista con sus filtros, por ejemplo project_id, data_source_id, o start_date y end_date en los estados de inspección.
Una solicitud que tarda más de 60 segundos se cancela con 408 Request Timeout.
Errores¶
Una respuesta de error tiene un cuerpo JSON con un código y un mensaje:
| Estado | Código | Significado |
|---|---|---|
400 | BAD_REQUEST | La solicitud no es válida, por ejemplo un limit fuera de rango |
401 | NOT_AUTHENTICATED | La clave de API falta, tiene un formato incorrecto, es desconocida o ha caducado |
403 | NOT_AUTHORIZED | El usuario de la clave no tiene el rol que requiere esta solicitud |
403 | INVALID_LICENSE | La licencia de digna ha caducado |
404 | NOT_FOUND | El proyecto, la fuente de datos u otro elemento no existe |
500 | INTERNAL_ERROR | Un error inesperado en digna. El log del backend tiene los detalles |
El message de una respuesta 401 indica qué falla en la clave:
| Mensaje | Causa |
|---|---|
Missing Authorization header | No se envió ninguna cabecera Authorization |
Invalid Authorization header format | El valor no empieza por Bearer |
Invalid API key | La clave es incorrecta o se eliminó |
API key expired | La clave ha caducado. Cree una nueva |
Ejecutar una inspección¶
Una integración típica inicia una inspección cuando ha terminado una carga de datos, espera a que finalice y lee el resultado:
- Inicie la inspección con
POST /v1/inspection-requests. La respuesta contiene elidde la solicitud. - Siga su progreso con
GET /v1/inspection-requests/{inspection_request_id}. Sustatuspasa dePENDINGaRUNNINGy luego aCOMPLETED, o termina comoFAILED,ABORTEDoCANCELLED. Vuelva a consultarlo cada pocos segundos hasta que deje de cambiar. - Lea el resultado con
GET /v1/inspection-statuses/data-sourcespara las fechas inspeccionadas. Cada elemento tiene unstatusgeneral:0(OK),1(advertencia),2(crítico) o-1(sin estado), y un estado por módulo con el número de comprobaciones superadas, inciertas y fallidas.
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
}'
Documento OpenAPI¶
Cada instalación de digna describe esta API en un documento OpenAPI 3.1 y ofrece una Swagger UI interactiva para probar solicitudes contra ella:
| Qué | Dirección |
|---|---|
| Documento OpenAPI | https://digna.example.com/api-docs/stable/v1/openapi.json |
| Swagger UI | https://digna.example.com/v1/swagger-ui |
El documento de Release 2026.11 también está disponible aquí: openapi.json. Úselo para generar un cliente en otro lenguaje.
Solo se cubren los endpoints /v1
El dashboard también se comunica con el backend a través de otros endpoints internos. No forman parte de esta API y pueden cambiar con cualquier versión, así que construya sus integraciones solo sobre los endpoints /v1.