API REST do digna 2026.11¶
A API REST do digna permite que suas próprias ferramentas e pipelines trabalhem com o digna por HTTP e JSON: ler projetos e resultados de inspeção, gerenciar fontes de dados, conjuntos de dados e atributos e iniciar inspeções, por exemplo ao final de uma carga de dados. O Python SDK usa a mesma API.
Esta página descreve o que todas as solicitações têm em comum. As páginas de recursos listam cada endpoint com seus parâmetros, corpo da solicitação, respostas e esquemas:
| Recurso | Endpoints |
|---|---|
| Projects | Ler projetos |
| DB Connections | Ler conexões de banco de dados |
| Data Sources | Criar, ler, atualizar e excluir fontes de dados |
| Data Sets | Criar, ler, atualizar e excluir conjuntos de dados |
| Attributes | Criar, ler, atualizar e excluir atributos |
| Check Definitions | Ler definições de verificação |
| Inspection Requests | Iniciar inspeções e acompanhar seu progresso |
| Inspection Statuses | Ler resultados de inspeção por projeto, fonte de dados e conjunto de dados |
URL Base¶
A API faz parte do backend do digna. Todo caminho começa com /v1, depois do endereço do backend:
O endereço do backend é o mesmo que o dashboard usa: baseUrl na seção [api] de dashboard/dashboard_config.toml. Use HTTPS sempre que o chamador e o digna não estiverem na mesma máquina, porque toda solicitação carrega uma chave de API.
Autenticação¶
Toda solicitação envia a chave de API de um usuário do digna no cabeçalho Authorization:
Para criar uma chave, abra seu perfil de usuário no canto inferior esquerdo do dashboard, clique em API Keys e depois em Add API Key, e copie a chave. Ela é exibida apenas uma vez. As mesmas chaves funcionam para o digna MCP Server.
Uma solicitação é executada com as permissões do usuário da chave. Criar, alterar e excluir exige a função de editor no projeto; caso contrário, a solicitação é recusada com 403 e a mensagem You don't have permission to edit this project.
Use um usuário dedicado para automação
Crie um usuário do digna para cada integração, dê a ele apenas os projetos e funções de que precisa e crie a chave dele com uma data de expiração. Assim, você pode revogar o acesso de uma integração excluindo a chave dela, sem afetar mais ninguém.
Fazendo uma Solicitação¶
export DIGNA_API_KEY='<api key>'
curl https://digna.example.com/v1/projects -H "Authorization: Bearer $DIGNA_API_KEY"
As respostas são em JSON. Listas são retornadas como um array JSON. Os corpos das solicitações também são em JSON, enviados com Content-Type: application/json.
Limites e Filtros¶
Endpoints de listagem retornam no máximo limit itens: 200 por padrão e até 5000. Um valor fora desse intervalo é rejeitado com 400. Não há offset nem token de página, então restrinja uma lista com os filtros dela, por exemplo project_id, data_source_id, ou start_date e end_date nos status de inspeção.
Uma solicitação que demora mais de 60 segundos é cancelada com 408 Request Timeout.
Erros¶
Uma resposta de erro tem um corpo JSON com um código e uma mensagem:
| Status | Código | Significado |
|---|---|---|
400 | BAD_REQUEST | A solicitação é inválida, por exemplo um limit fora do intervalo |
401 | NOT_AUTHENTICATED | A chave de API está ausente, malformada, é desconhecida ou expirou |
403 | NOT_AUTHORIZED | O usuário da chave não tem a função exigida por esta solicitação |
403 | INVALID_LICENSE | A licença do digna expirou |
404 | NOT_FOUND | O projeto, a fonte de dados ou outro item não existe |
500 | INTERNAL_ERROR | Um erro inesperado no digna. O log do backend tem os detalhes |
A message de uma resposta 401 informa o que há de errado com a chave:
| Mensagem | Causa |
|---|---|
Missing Authorization header | Nenhum cabeçalho Authorization foi enviado |
Invalid Authorization header format | O valor não começa com Bearer |
Invalid API key | A chave está errada ou foi excluída |
API key expired | A chave expirou. Crie uma nova |
Executando uma Inspeção¶
Uma integração típica inicia uma inspeção quando uma carga de dados termina, aguarda sua conclusão e lê o resultado:
- Inicie a inspeção com
POST /v1/inspection-requests. A resposta contém oidda solicitação. - Acompanhe o progresso com
GET /v1/inspection-requests/{inspection_request_id}. Ostatuspassa dePENDINGporRUNNINGatéCOMPLETED, ou termina comoFAILED,ABORTEDouCANCELLED. Consulte novamente a cada poucos segundos até que ele não mude mais. - Leia o resultado com
GET /v1/inspection-statuses/data-sourcespara as datas inspecionadas. Cada item tem umstatusgeral:0(OK),1(aviso),2(crítico) ou-1(sem status), e um status por módulo com o número de verificações aprovadas, incertas e com falha.
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¶
Toda instalação do digna descreve esta API em um documento OpenAPI 3.1 e oferece uma Swagger UI interativa para testar solicitações com ela:
| O quê | Endereço |
|---|---|
| Documento OpenAPI | https://digna.example.com/api-docs/stable/v1/openapi.json |
| Swagger UI | https://digna.example.com/v1/swagger-ui |
O documento do Release 2026.11 também está disponível aqui: openapi.json. Use-o para gerar um cliente em outra linguagem.
Somente os endpoints /v1 são cobertos
O dashboard também se comunica com o backend por outros endpoints internos. Eles não fazem parte desta API e podem mudar em qualquer versão, então construa integrações apenas sobre os endpoints /v1.