Documentação da API

Integre o StatusHive ao seu fluxo de trabalho. Gerencie monitores, incidentes e páginas de status programaticamente.

Autenticação

Todas as requisições à API requerem um token de acesso Supabase. Entre para obter seu token e passe-o no cabeçalho Authorization.

# 1. Obtenha seu token de acesso curl https://statushive.app/auth/v1/token?grant_type=password \ -H "apikey: YOUR_ANON_KEY" \ -d '{"email":"you@example.com","password":"..."}' # 2. Use-o nas requisições da API curl https://statushive.app/api/monitors \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Monitores

get/api/monitors

Liste todos os seus monitores. Suporta filtragem por status ativo e paginação.

# Response { "monitors": [...], "total": 12 }
post/api/monitors

Crie um novo monitor de disponibilidade. A URL deve ser HTTP/HTTPS pública.

# Request body { "name": "My Site", "url": "https://example.com", "interval_seconds": 60 }
# Response { "monitor": { "id": "...", "name": "My Site", ... } }
get/api/monitors/:id

Obtenha um único monitor com estatísticas de disponibilidade de 30 dias e tempo médio de resposta.

# Response { "monitor": {...}, "stats": { "uptime_30d": "99.95", "avg_response_ms": 245 } }
put/api/monitors/:id

Atualize a configuração de um monitor (nome, URL, método, intervalo, etc.).

# Request body { "name": "My Site", "url": "https://example.com", "method": "GET", "active": true }
delete/api/monitors/:id

Exclua permanentemente um monitor e todos os seus dados.

# Response { "deleted": true }
get/api/monitors/:id/heartbeats

Obtenha os resultados recentes de verificação de um monitor.

# Response { "heartbeats": [{ "status": 1, "response_time": 234, "status_code": 200, ... }] }

Incidentes

get/api/incidents

Liste todos os seus incidentes. Filtre por status, com paginação.

# Response { "incidents": [...], "total": 5 }
post/api/incidents

Crie um novo incidente. Opcionalmente inclua uma mensagem de atualização de status inicial.

# Request body { "title": "API Outage", "severity": "major", "status": "investigating", "message": "Looking into it" }
get/api/incidents/:id

Obtenha um único incidente com todas as suas atualizações de status.

# Response { "incident": { ..., "incident_updates": [...] } }
put/api/incidents/:id

Atualize o status ou a severidade de um incidente. Definir o status como 'resolved' define automaticamente resolved_at.

# Request body { "status": "resolved" }
delete/api/incidents/:id

Exclua permanentemente um incidente e todas as suas atualizações.

# Response { "deleted": true }
post/api/incidents/:id/updates

Adicione uma atualização de status a um incidente. Também atualiza o status do incidente pai.

# Request body { "status": "monitoring", "message": "Fix deployed, monitoring." }

Páginas de Status

get/api/status-pages

Liste todas as suas páginas de status.

# Response { "status_pages": [...] }
post/api/status-pages

Crie uma nova página de status. Opcionalmente vincule monitores por ID.

# Request body { "name": "My Status", "slug": "my-status", "monitor_ids": ["id1", "id2"] }
get/api/status-pages/:id

Obtenha uma página de status com seus monitores vinculados.

# Response { "status_page": {...}, "monitors": [...] }
put/api/status-pages/:id

Atualize as configurações ou monitores vinculados de uma página de status.

# Request body { "name": "Updated Name", "is_public": true }
delete/api/status-pages/:id

Exclua permanentemente uma página de status.

# Response { "deleted": true }

Códigos de Erro

Todos os erros retornam um objeto JSON com um campo "error".

CódigoSignificado
400Requisição inválida — parâmetros inválidos ou ausentes
401Não autorizado — token ausente ou inválido
403Proibido — limite do plano atingido ou recurso não pertencente ao usuário
404Não encontrado
409Conflito — slug já em uso
500Erro interno do servidor

Limites do Plano

FuncionalidadeFreeProPro
Monitores1050200
Intervalo de verificação3 min1 min30 sec
Páginas de status15Ilimitado
Retenção de histórico7 dias90 dias365 dias

Agentes de IA podem acessar nossa referência de API legível por máquina em /llms.txt