Incidentes vía API
El acceso a incidentes vía API está disponible en los planes Pro y Enterprise.
Endpoints
| Método | Ruta | Scope | Descripción |
|---|---|---|---|
| GET | /api/v1/incidents | incidents:read | Listar incidentes |
| GET | /api/v1/incidents/{id} | incidents:read | Detalle de un incidente |
Los incidentes son de solo lectura en la API v1. La apertura y resolución las gestiona automáticamente el motor de incidentes en base al consenso de checks por región.
GET /api/v1/incidents
Parámetros de consulta:
| Parámetro | Tipo | Descripción |
|---|---|---|
page | int | Página (default: 1) |
per_page | int | Resultados por página (default: 25, máx: 100) |
monitor_id | int | Filtrar por ID de monitor |
resolved | bool | true = solo resueltos, false = solo abiertos |
from | string | ISO 8601: incidentes iniciados a partir de esta fecha |
to | string | ISO 8601: incidentes iniciados hasta esta fecha |
Ejemplo — incidentes abiertos del monitor 42:
curl -H "Authorization: Bearer <token>" \
"https://back.statusinspector.com/api/v1/incidents?monitor_id=42&resolved=false"
Ejemplo — incidentes de los últimos 7 días:
curl -H "Authorization: Bearer <token>" \
"https://back.statusinspector.com/api/v1/incidents?from=2026-05-06T00:00:00Z&to=2026-05-13T23:59:59Z"
Campos del objeto Incident
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID del incidente |
monitor_id | int | ID del monitor afectado |
status | string | open o resolved |
started_at | string | ISO 8601 UTC — inicio del incidente |
resolved_at | string|null | ISO 8601 UTC — resolución (null si abierto) |
duration_ms | int|null | Duración en ms (precisión: 1 segundo); null si abierto |
failure_count | int | Número de checks fallidos acumulados durante el incidente |
last_error_code | string|null | Código del último error (p.ej. connection_timeout) |
last_error_message | string|null | Mensaje del último error |
last_http_code | int|null | Último HTTP code registrado (p.ej. 503) |
root_check_id | int|null | ID del check que abrió el incidente |
resolved_check_id | int|null | ID del check que resolvió el incidente |
created_at | string | ISO 8601 UTC |
updated_at | string | ISO 8601 UTC |
Respuesta de ejemplo:
{
"data": {
"id": "1234",
"type": "incident",
"attributes": {
"monitor_id": 42,
"status": "resolved",
"started_at": "2026-05-12T14:30:00Z",
"resolved_at": "2026-05-12T14:47:00Z",
"duration_ms": 1020000,
"failure_count": 17,
"last_error_code": "http_error",
"last_error_message": "HTTP 503 Service Unavailable",
"last_http_code": 503,
"root_check_id": 98001,
"resolved_check_id": 98018,
"created_at": "2026-05-12T14:30:01Z",
"updated_at": "2026-05-12T14:47:02Z"
}
},
"meta": { "request_id": "abc123", "rate_limit": { ... } }
}
Casos de uso habituales
Verificar si un monitor tiene incidente activo:
curl -H "Authorization: Bearer <token>" \
"https://back.statusinspector.com/api/v1/incidents?monitor_id=42&resolved=false&per_page=1"
Si pagination.total > 0, hay un incidente abierto.
Calcular uptime en un período:
Recupera todos los incidentes resueltos del período con from/to y suma duration_ms. Divide entre la duración total del período para obtener el downtime %.
Correlacionar con checks:
Usa root_check_id para consultar /api/v1/monitors/{id}/checks y obtener el check exacto que desencadenó la caída, con su error_code, http_code y latency_ms.