Create incident
Open a new incident with an initial severity, status, and message.
Create incident
POST /incidents
Create a new incident.
Auth: Bearer token (write scope)
Body parameters
Incident title.
Severity: critical, major, minor.
Initial status.
Initial status update message (shown to subscribers).
IDs of affected monitors.
Request
bashcurl -X POST https://happyuptime.com/api/v1/incidents \ -H "Authorization: Bearer hu_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "title": "Database connectivity issues", "severity": "major", "status": "investigating", "message": "We are investigating slow database queries." }'
bashhappy incidents create \ --title "Database connectivity issues" \ --severity major \ --message "We are investigating slow database queries."
javascriptconst res = await fetch("https://happyuptime.com/api/v1/incidents", { method: "POST", headers: { "Authorization": "Bearer " + process.env.HAPPYUPTIME_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ title: "Database connectivity issues", severity: "major", status: "investigating", message: "We are investigating slow database queries.", }),});
Response
json{ "data": { "id": "inc_848", "project_id": "proj_xyz", "title": "Payment processing delays", "status": "investigating", "severity": "major", "started_at": "2026-03-07T16:00:00Z", "resolved_at": null, "created_at": "2026-03-07T16:00:00Z", "updated_at": "2026-03-07T16:00:00Z" }}
Happy Uptime also creates incidents automatically when monitors go down. Severity is derived from how many regions are affected: all regions = critical, some regions = major, one region = minor.