1. Documentation
  2. HTTP API
  3. Incident endpoints
ReadmeGitHub
  • Introduction
  • Quickstart
  • CLI
  • Configuration
  • Identity
  • Branding
  • Themes
  • Monitors
  • Checks and scheduling
  • Metrics and badges
  • Incidents
  • Maintenance
  • Notifications
  • Subscribers
  • React Router
  • Next.js
  • Astro
  • SQLite
  • Cloudflare D1
  • PostgreSQL
  • Schema and migrations
  • Cloudflare
  • Vercel
  • Self-hosting
  • API overview
  • Status endpoints
  • Incident endpoints
  • Maintenance endpoints
  • Subscriber endpoints
  • Badges, feeds and metrics
  • Admin endpoints
  • The check run
  • Uptime and history
  • Automatic incidents
  • Notification delivery
  • Public subscriptions

Incident endpoints

Read incidents publicly and manage their timelines with an admin token.

Read the incident timeline with /incidents; create and update incidents through /admin/incidents with a bearer token. Public reads need no token. If incidents are disabled, all these routes return 404 { "error": "This feature is disabled." }.

GET /incidents

bash
curl "https://status.acme.com/api/heyo-status/incidents?status=investigating,identified&limit=10"
QueryTypeNotes
statusinvestigating, identified, monitoring, resolvedComma-separated.
severityminor, major, criticalComma-separated.
from, toISO-8601Inclusive bounds.
limit, offsetnon-negative integerPagination.
json
[  {    "id": "inc_2f8c1d",    "title": "Elevated API latency",    "status": "monitoring",    "severity": "major",    "affectedMonitors": ["API"],    "auto": false,    "createdAt": "2026-01-01T10:02:00.000Z",    "updatedAt": "2026-01-01T10:41:00.000Z",    "resolvedAt": null,    "updates": [      {        "id": "upd_91ab3c",        "status": "investigating",        "message": "We are investigating elevated response times.",        "createdAt": "2026-01-01T10:02:00.000Z"      },      {        "id": "upd_a04f7d",        "status": "monitoring",        "message": "A fix is deployed; watching latency.",        "createdAt": "2026-01-01T10:41:00.000Z"      }    ]  }]

GET /incidents/:id

One incident with its timeline, or 404 { "error": "Incident not found." }.

POST /admin/incidents

bash
curl -X POST https://status.acme.com/api/heyo-status/admin/incidents \  -H "authorization: Bearer $ADMIN_TOKEN" \  -H "content-type: application/json" \  -d '{    "title": "Elevated API latency",    "severity": "major",    "affectedMonitors": ["API"],    "message": "We are investigating elevated response times.",    "status": "investigating"  }'
titlestringrequired

Non-empty; trimmed.

severity"minor" | "major" | "critical"required
affectedMonitorsstring[]required

Trimmed and de-duplicated. An empty array means global.

messagestringrequired

The first timeline entry.

status"investigating" | "identified" | "monitoring"optional

Defaults to investigating. Creating one as resolved is rejected.

Returns 201 with the created incident and dispatches incident.created.

POST /admin/incidents/:id/updates

Add a timeline entry when there's news to share. Use this route to move an incident to monitoring or resolved while explaining what changed.

bash
curl -X POST https://status.acme.com/api/heyo-status/admin/incidents/inc_2f8c1d/updates \  -H "authorization: Bearer $ADMIN_TOKEN" \  -H "content-type: application/json" \  -d '{"status":"resolved","message":"Latency is back to normal."}'
FieldRequiredNotes
statusyesAny incident status, including resolved.
messageyesTimeline text.
severitynoChanges severity with this entry.

Dispatches incident.resolved for resolved, otherwise incident.updated.

PATCH /admin/incidents/:id

Edit fields without writing a narrative update. Omitted fields keep their current value, and message defaults to "Incident details updated.".

bash
curl -X PATCH https://status.acme.com/api/heyo-status/admin/incidents/inc_2f8c1d \  -H "authorization: Bearer $ADMIN_TOKEN" \  -H "content-type: application/json" \  -d '{"severity":"critical"}'

DELETE /admin/incidents/:id

Returns 204 on success or 404 for an unknown incident. Deletion removes the timeline too, without sending an event. Resolve an incident instead if you want it to remain in public history and feeds.

Related

  • Configure incidents
  • Automatic incidents
  • Maintenance endpoints
Status endpoints< PreviousMaintenance endpointsNext >

Powered by heyo

On this page

GET /incidentsGET /incidents/:idPOST /admin/incidentsPOST /admin/incidents/:id/updatesPATCH /admin/incidents/:idDELETE /admin/incidents/:id