Autenticação
Toda requisição exige uma API key criada no espaço de trabalho, em Configurações → Integrações → API. A chave completa é exibida uma única vez: guarde-a em local seguro. Nenhum endpoint funciona sem autenticação.
curl https://SEU-DOMINIO/api/v1/clients \
-H "Authorization: Bearer adryx_live_xxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"Alternativamente, envie a chave no cabeçalho X-Adryx-Api-Key. A workspace é resolvida a partir da própria chave — não existe parâmetro para consultar outro espaço de trabalho.
Endpoints (v1, somente leitura)
| Endpoint | Scope exigido | Campos |
|---|---|---|
GET /api/v1/clients | clients.read | id, nome, situação, data de criação |
GET /api/v1/assets | assets.read | id, nome, tipo, situação, cliente |
GET /api/v1/health | health.read | score, problemas abertos, data da avaliação |
GET /api/v1/alerts | alerts.read | título, severidade, situação, cliente, data |
GET /api/v1/tasks | tasks.read | título, situação, responsável, prazo |
O caminho externo equivalente é /api/public/v1/…, útil quando o site publicado exige autenticação de sessão para as demais rotas.
Paginação e filtros
Listas aceitam page (a partir de 1) e limit (1 a 100, padrão 25). Filtros seguros: client_id, status, type, from e to. Nenhum filtro consegue alcançar dados de outro espaço de trabalho.
GET /api/v1/alerts?page=1&limit=25&status=open&from=2026-01-01Formato das respostas
{
"data": [ { "id": "…", "name": "…" } ],
"meta": { "page": 1, "limit": 25, "total": 132 }
}{
"error": { "code": "INSUFFICIENT_SCOPE", "message": "…" }
}Códigos de erro
| Código | HTTP | Quando acontece |
|---|---|---|
INVALID_API_KEY | 401 | Chave ausente, malformada ou inexistente. |
API_KEY_REVOKED | 401 | Chave revogada pelo espaço de trabalho. |
API_KEY_EXPIRED | 401 | Chave fora da validade. |
INSUFFICIENT_SCOPE | 403 | A chave não possui o scope exigido pelo endpoint. |
WORKSPACE_NOT_FOUND | 404 | Espaço de trabalho indisponível. |
ENDPOINT_NOT_FOUND | 404 | Recurso inexistente nesta versão. |
INVALID_PARAMETER | 400 | Página, limite ou filtro inválido. |
RATE_LIMIT_EXCEEDED | 429 | Limite de requisições atingido. |
INTERNAL_ERROR | 500 | Falha inesperada ao processar a requisição. |
Limites de uso
Cada chave possui limite por minuto e por hora, configurável por espaço de trabalho e por endpoint. As respostas trazem X-RateLimit-Limit e X-RateLimit-Remaining; ao exceder, a API responde 429 com Retry-After.
Webhooks de saída
Cadastre endpoints https em Configurações → Integrações → Webhooks e assine apenas eventos existentes: alert.created, alert.resolved, task.created, task.completed, health.changed e client.created.
POST /seu-endpoint
X-Adryx-Signature: t=1767200000,v1=<hmac_sha256>
X-Adryx-Event: alert.created
{
"id": "<delivery-id>",
"event": "alert.created",
"created_at": "2026-01-01T12:00:00.000Z",
"test": false,
"workspace_id": "…",
"data": { }
}Valide a assinatura antes de processar: calcule HMAC_SHA256(segredo, "<t>.<corpo bruto>") e compare com v1 usando comparação de tempo constante. Envios que falham são repetidos com intervalos crescentes, até cinco tentativas — nunca em laço infinito.
Especificação OpenAPI e catálogo de eventos
A especificação descreve apenas os endpoints de leitura realmente implementados. Escopos de escrita cadastrados ainda não possuem endpoint e por isso não aparecem na especificação.
GET https://SEU-DOMINIO/api/public/openapiO catálogo completo de eventos por domínio, com descrição, versão e disponibilidade, está em Configurações → Integrações → Catálogo de eventos.