Referencia de endpoints
La API pública v1 está disponible en los planes Pro y Enterprise. Los tokens generados en cuentas del plan gratuito recibirán 403 plan_feature_disabled en todas las peticiones.
Base URL
https://back.statusinspector.com/api/v1
Todas las peticiones deben incluir Authorization: Bearer <token> y Content-Type: application/json en escritura.
Monitores
| Método | Ruta | Scope requerido | 201 | 200 | 404 | 422 |
|---|---|---|---|---|---|---|
| GET | /monitors | monitors:read | — | ✓ | — | — |
| GET | /monitors/{id} | monitors:read | — | ✓ | ✓ | — |
| POST | /monitors | monitors:write | ✓ | — | — | ✓ |
| PATCH | /monitors/{id} | monitors:write | — | ✓ | ✓ | ✓ |
| DELETE | /monitors/{id} | monitors:write | — | ✓ | ✓ | ✓ |
Filtros GET /monitors: status, type, q (búsqueda), page, per_page
Tipos de monitor: http · tcp · dns · ssl · heartbeat · ping
Checks (historial de checks)
| Método | Ruta | Scope requerido | Descripción |
|---|---|---|---|
| GET | /monitors/{id}/checks | checks:read | Historial de checks de un monitor |
Filtros: status (up/down/degraded), from, to, page, per_page
Campos devueltos: id, monitor_id, status, checked_at, latency_ms, http_code, error_code, error_message, degraded_reason, resolved_ip, ssl_not_after, dns_answer, synthetic_trace_json
Incidentes
| Método | Ruta | Scope requerido | Descripción |
|---|---|---|---|
| GET | /incidents | incidents:read | Listar incidentes |
| GET | /incidents/{id} | incidents:read | Detalle de incidente |
Filtros: monitor_id, resolved (bool), from, to, page, per_page
Campos devueltos: id, monitor_id, status, started_at, resolved_at, duration_ms, failure_count, last_error_code, last_error_message, last_http_code, root_check_id, resolved_check_id, created_at, updated_at
Páginas de estado
| Método | Ruta | Scope requerido | 201 | 200 | 404 | 422 |
|---|---|---|---|---|---|---|
| GET | /status-pages | status_pages:read | — | ✓ | — | — |
| GET | /status-pages/{id} | status_pages:read | — | ✓ | ✓ | — |
| POST | /status-pages | status_pages:write | ✓ | — | — | ✓ |
| PATCH | /status-pages/{id} | status_pages:write | — | ✓ | ✓ | ✓ |
| DELETE | /status-pages/{id} | status_pages:write | — | ✓ | ✓ | — |
Filtros GET /status-pages: q (búsqueda por nombre), page, per_page
Campos devueltos: id, name, slug, headline, description, is_public, is_enabled, is_token_protected, access_token, public_theme, created_at, updated_at
Campos aceptados en POST/PATCH: name, slug (auto-generado desde name en POST si se omite), headline, description, is_public, is_enabled, is_token_protected, access_token, public_theme (light/dark)
Paginación
Todos los listados usan paginación por página:
GET /api/v1/monitors?page=2&per_page=50
Respuesta:
{
"data": [ ... ],
"pagination": {
"page": 2,
"per_page": 50,
"total": 143,
"total_pages": 3
},
"meta": { ... }
}
Límite máximo de per_page: 100 (configurable en sistema).
Formato de fechas
Todas las fechas se expresan en ISO 8601 UTC, por ejemplo: 2026-05-13T14:30:00Z.
Los filtros from y to aceptan cualquier formato que PHP reconozca como fecha válida.
Formato de errores de validación
En respuestas 422 validation_error, el campo details contiene los errores por atributo:
{
"error": {
"code": "validation_error",
"message": "No se pudo crear el monitor.",
"details": {
"target": ["Introduce una URL válida."],
"interval_sec": ["Interval sec debe ser un número entero."]
}
}
}
Scopes disponibles
| Scope | Recursos |
|---|---|
monitors:read | GET monitores |
monitors:write | POST · PATCH · DELETE monitores |
checks:read | GET checks por monitor |
incidents:read | GET incidentes |
status_pages:read | GET páginas de estado |
status_pages:write | POST · PATCH · DELETE páginas de estado |
Límites de rate
| Plan | Peticiones por minuto |
|---|---|
| Pro | 120 |
| Enterprise | 300 |
Consulta los headers de respuesta para ver el estado en tiempo real:
| Header | Descripción |
|---|---|
X-RateLimit-Limit | Peticiones permitidas por minuto |
X-RateLimit-Remaining | Peticiones restantes en la ventana actual |
X-RateLimit-Reset | Epoch UTC cuando se reinicia el contador |
Retry-After | Segundos a esperar (solo en respuesta 429) |