API de la página de estado, feeds RSS e insignia

Qué expone tu página de estado

Cada página de estado de LoadFocus sirve endpoints legibles por máquina junto a la página para personas. No requieren autenticación, están limitados por IP y se cachean 30 segundos.

Los endpoints JSON siguen el esquema de Statuspage, la forma de facto que ya hablan la mayoría de paneles, bots e integraciones de Slack. Si vienes de Atlassian Statuspage, tus integraciones existentes siguen funcionando al apuntarlas al nuevo host, sin cambios de código.

Todas las rutas siguientes son relativas a tu página: https://tu-slug.loadfoc.us, o tu propio nombre de host si has configurado un dominio personalizado.

GET /api/v2/status.json

Solo el estado general. Úsalo para un sondeo ligero.

{
"page": {
"id": "8f3c1e02-5b74-4a9d-9e21-6c0af7d3b514",
"name": "Acme Status",
"url": "https://acme.loadfoc.us",
"time_zone": "Etc/UTC",
"updated_at": "2026-08-26T14:05:00.000Z"
},
"status": {
"indicator": "none",
"description": "All Systems Operational"
}
}

indicator es uno de none, minor, major, critical o maintenance.

Ten en cuenta que, cuando la página no tiene datos recientes, el indicador se informa como minor y no como none. Un worker caído nunca debe leerse como verde fiable a través de la API.

GET /api/v2/summary.json

Todo lo que muestra la página: estado general, cada componente, incidencias sin resolver y mantenimientos próximos o en curso.

{
"page": { "id": "8f3c1e02-5b74-4a9d-9e21-6c0af7d3b514", "name": "Acme Status", "url": "https://acme.loadfoc.us", "time_zone": "Etc/UTC", "updated_at": "2026-08-26T14:05:00.000Z" },
"status": { "indicator": "minor", "description": "Degraded Performance" },
"components": [
{
"id": "api",
"name": "Public API",
"status": "degraded_performance",
"position": 1,
"description": null,
"updated_at": "2026-08-26T14:05:00.000Z"
}
],
"incidents": [
{
"id": "inc_1a2b",
"name": "Elevated API latency",
"status": "identified",
"impact": "minor",
"created_at": "2026-08-26T13:40:00.000Z",
"updated_at": "2026-08-26T14:02:00.000Z",
"monitoring_at": null,
"resolved_at": null,
"shortlink": "https://acme.loadfoc.us/incidents/inc_1a2b",
"incident_updates": [
{ "status": "identified", "body": "A slow query has been identified.", "created_at": "2026-08-26T14:02:00.000Z" }
]
}
],
"scheduled_maintenances": [
{
"id": "mnt_9x8y",
"name": "Database upgrade",
"status": "scheduled",
"impact": "maintenance",
"scheduled_for": "2026-08-28T22:00:00.000Z",
"scheduled_until": "2026-08-29T00:00:00.000Z",
"incident_updates": []
}
]
}

components[].status es uno de operational, degraded_performance, partial_outage, major_outage o under_maintenance.

incidents contiene solo incidencias sin resolver, y scheduled_maintenances solo ventanas que no han terminado. Ambas cosas replican el comportamiento de Statuspage. Para el historial resuelto, usa los feeds de abajo.

Comportamiento ante errores

Ambos endpoints JSON responden con HTTP 200 y una estructura vacía si algo falla internamente, en lugar de un 5xx. Por tanto, un consumidor debe tratar un array components vacío como "sin datos disponibles", no como "sin componentes configurados".

Feeds de incidencias

Para lectores y bots que siguen feeds en vez de sondear:

  • GET /history.rss - historial de incidencias en RSS
  • GET /history.atom - lo mismo en Atom
  • GET /feed.rss - un alias de history.rss

Estos incluyen también las incidencias resueltas, así que son la fuente correcta para el historial.

Insignia de estado

GET /badge.svg devuelve una insignia SVG con el estado general actual. Está pensada para insertarse en un README o una página de documentación:

[![Status](https://acme.loadfoc.us/badge.svg)](https://acme.loadfoc.us)

Visibilidad en buscadores

Las páginas de estado son indexables por defecto. Una página creada en la aplicación guarda hideFromSearch: false, así que no sirve noindex, su robots.txt devuelve Allow: / con una línea Sitemap:, y /sitemap.xml lista la página, sus incidencias y su historial de mantenimiento.

Para ocultar una página de los buscadores, pon hideFromSearch a true. Entonces la página sirve <meta name="robots" content="noindex,follow">, robots.txt devuelve Disallow: /, /sitemap.xml responde 404, y se suprimen las etiquetas canonical y Open Graph para que la página no se anuncie. No hay un control para esto en el editor: configúralo mediante la API.

Relacionado