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.
message string
Initial status update message (shown to subscribers).
monitor_ids string[]
IDs of affected monitors.
Request
curl -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."
}'happy incidents create \
--title "Database connectivity issues" \
--severity major \
--message "We are investigating slow database queries."const 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.