← Volver al estado

API de gestión de incidentes

Endpoints protegidos por API key. Incluye el header Authorization: Bearer <STATUS_API_KEY> en cada llamada. Sin token válido la respuesta es 401.

Spec completo: /api/public/openapi.json (OpenAPI 3.1).

POST/api/public/incidents

Crea un incidente y su primer update. Soporta auto_create_participant para descubrir participantes nuevos durante monitoreo.

Body

{
  "title": "Latencia elevada en Bancolombia",
  "component_slug": "bancolombia",
  "severity": "major",
  "status": "investigating",
  "message": "Estamos investigando reportes de latencia elevada.",
  "auto_create_participant": {       // opcional: crea el componente si el slug no existe
    "name": "Bancolombia",
    "description": "Participante Bancolombia"
  }
}

Ejemplo curl

curl -X POST https://status.example.com/api/public/incidents \
  -H "Authorization: Bearer $STATUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"...","component_slug":"bancolombia","severity":"major","status":"investigating","message":"...","auto_create_participant":{"name":"Bancolombia"}}'
GET/api/public/components

Lista todos los componentes (MOL, DICE, nodos, participantes) con su slug. No requiere API key. Acepta ?group=mol|dice|nodo|participante.

Ejemplo curl

curl https://status.example.com/api/public/components
# o filtrando por grupo:
curl "https://status.example.com/api/public/components?group=nodo"
POST/api/public/components

Crea manualmente un participante (group=participante).

Body

{
  "slug": "bancolombia",
  "name": "Bancolombia",
  "description": "Participante Bancolombia"
}

Ejemplo curl

curl -X POST https://status.example.com/api/public/components \
  -H "Authorization: Bearer $STATUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"bancolombia","name":"Bancolombia"}'
POST/api/public/incidents/:id/updates

Agrega una actualización al incidente. Si status='resolved', se marca resolved_at.

Body

{
  "status": "monitoring",
  "message": "Aplicamos un fix y estamos monitoreando."
}

Ejemplo curl

curl -X POST https://status.example.com/api/public/incidents/$INCIDENT_ID/updates \
  -H "Authorization: Bearer $STATUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"monitoring","message":"..."}'
POST/api/public/incidents/:id/resolve

Atajo para resolver un incidente. Body opcional con un mensaje de cierre.

Body

{ "message": "Servicio restablecido por completo." }

Ejemplo curl

curl -X POST https://status.example.com/api/public/incidents/$INCIDENT_ID/resolve \
  -H "Authorization: Bearer $STATUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message":"Servicio restablecido."}'
PATCH/api/public/components/:slug

Cambia manualmente el estado de un componente. Útil para mantenimientos programados.

Body

{
  "current_status": "maintenance"
  // operational | degraded | partial_outage | major_outage | maintenance
}

Ejemplo curl

curl -X PATCH https://status.example.com/api/public/components/mol-system \
  -H "Authorization: Bearer $STATUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"current_status":"maintenance"}'
POST/api/public/maintenances

Crea un mantenimiento programado para un actor. Soporta auto_create_participant.

Body

{
  "title": "Ventana de mantenimiento DICE",
  "description": "Reinicio del servicio de directorio",
  "component_slug": "dice-system",
  "scheduled_start": "2026-06-05T02:00:00Z",
  "scheduled_end": "2026-06-05T04:00:00Z",
  "status": "scheduled"
}

Ejemplo curl

curl -X POST https://status.example.com/api/public/maintenances \
  -H "Authorization: Bearer $STATUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"...","component_slug":"dice-system","scheduled_start":"2026-06-05T02:00:00Z","scheduled_end":"2026-06-05T04:00:00Z"}'
GET/api/public/maintenances

Lista mantenimientos activos (scheduled o in_progress). No requiere autenticación.

Body

// Sin body

Ejemplo curl

curl https://status.example.com/api/public/maintenances
PATCH/api/public/maintenances/:id

Actualiza ventana o estado. status: scheduled | in_progress | completed | cancelled.

Body

{
  "status": "in_progress"
}

Ejemplo curl

curl -X PATCH https://status.example.com/api/public/maintenances/$MAINT_ID \
  -H "Authorization: Bearer $STATUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"in_progress"}'
DELETE/api/public/maintenances/:id

Cancela un mantenimiento (no lo elimina; lo marca como cancelled).

Body

// Sin body

Ejemplo curl

curl -X DELETE https://status.example.com/api/public/maintenances/$MAINT_ID \
  -H "Authorization: Bearer $STATUS_API_KEY"

Slugs de componentes

Identificadores válidos para component_slug y /components/:slug.

ActorSlugNombre
MOLmol-systemMOL
DICEdice-systemDICE
NodoredebanRedeban
NodocredibancoCredibanco
NodovisionamosVisionamos
NodotransfiyaTransfiya
NodoachACH
NodogopaymentsGo Payments
NodoservibancaServibanca
NododrixiDrixi

Feed RSS / Atom

Feed público con los últimos 50 incidentes y sus updates.

GET https://status.example.com/rss.xml