Referência
Toda rota está documentada em `https://api.datarunner.app/docs` (OpenAPI em `/openapi/v1.json`). É a mesma API que o console usa — não há uma API "pública" separada com menos coisas.
Chaves de API
Uma chave (`dr_…`) pertence a um workspace e tem escopos: `queries:read`, `monitors:read`, e assim por diante. O escopo limita por cima do papel de quem criou a chave, e uma chave nunca dá poder de plataforma. Disponíveis no Team (25) e no Business (100).
curl -H "X-Api-Key: dr_…" https://api.datarunner.app/api/v1/queries
curl -H "Authorization: Bearer dr_…" https://api.datarunner.app/api/v1/queriesWebhooks de saída
Em Configurações → Webhooks você cadastra uma URL e escolhe os eventos. Cada entrega é um POST com JSON `{ event, timestamp, data }` e, se houver segredo, o cabeçalho `X-DataRunner-Signature: sha256=<HMAC do corpo>`. O log de entregas guarda 30 dias de tentativas com status, erro e duração.
| Evento | Quando |
|---|---|
| run.succeeded | uma execução de consulta terminou bem |
| run.failed | uma execução de consulta falhou |
| usage.threshold_crossed | o uso do mês passou de 50%, 80% ou 100% do plano |
| data_quality.test_failed | um teste de qualidade falhou com severidade aviso ou crítico |
const expected = 'sha256=' + crypto
.createHmac('sha256', SECRET)
.update(rawBody)
.digest('hex');
if (expected !== req.headers['x-datarunner-signature']) return res.status(401).end();