Documentación de la API

Integra StatusHive en tu flujo de trabajo. Gestiona monitores, incidentes y páginas de estado de forma programática.

Autenticación

Todas las solicitudes a la API requieren un token de acceso Supabase. Inicia sesión para obtener tu token y luego inclúyelo en el encabezado Authorization.

# 1. Obtén tu token de acceso curl https://statushive.app/auth/v1/token?grant_type=password \ -H "apikey: YOUR_ANON_KEY" \ -d '{"email":"you@example.com","password":"..."}' # 2. Úsalo en las solicitudes a la API curl https://statushive.app/api/monitors \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Monitores

get/api/monitors

Lista todos tus monitores. Permite filtrar por estado activo y paginación.

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

Crea un nuevo monitor de disponibilidad. La URL debe 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

Obtiene un monitor con estadísticas de disponibilidad de 30 días y tiempo de respuesta medio.

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

Actualiza la configuración de un monitor (nombre, URL, método, intervalo, etc.).

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

Elimina permanentemente un monitor y todos sus datos.

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

Obtiene los resultados de verificación recientes de un monitor.

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

Incidentes

get/api/incidents

Lista todos tus incidentes. Filtra por estado, con paginación.

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

Crea un nuevo incidente. Opcionalmente incluye un mensaje de actualización inicial.

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

Obtiene un incidente con todas sus actualizaciones de estado.

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

Actualiza el estado o la severidad de un incidente. Al establecer el estado como 'resolved' se asigna automáticamente resolved_at.

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

Elimina permanentemente un incidente y todas sus actualizaciones.

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

Añade una actualización de estado a un incidente. También actualiza el estado del incidente principal.

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

Páginas de estado

get/api/status-pages

Lista todas tus páginas de estado.

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

Crea una nueva página de estado. Opcionalmente vincula monitores por ID.

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

Obtiene una página de estado con sus monitores vinculados.

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

Actualiza la configuración o los monitores vinculados de una página de estado.

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

Elimina permanentemente una página de estado.

# Response { "deleted": true }

Códigos de error

Todos los errores devuelven un objeto JSON con un campo "error".

CódigoSignificado
400Solicitud incorrecta — parámetros inválidos o faltantes
401No autorizado — token ausente o inválido
403Prohibido — límite del plan alcanzado o recurso no propio
404No encontrado
409Conflicto — slug ya en uso
500Error interno del servidor

Límites del plan

CaracterísticaFreeProPro
Monitores1050200
Intervalo de verificación3 min1 min30 sec
Páginas de estado15Ilimitado
Retención del historial7 días90 días365 días

Los agentes de IA pueden acceder a nuestra referencia API legible por máquinas en /llms.txt