Uptimeify Docs
Monitoring

Create Manual Incident

Creates a manual incident on a customer's status pages or on chosen status pages and components.

POST /api/incidents

Creates a manual incident: an announcement on status pages, written by you rather than detected by a monitor. With customerId it appears on every status page of that customer, as before. Since 27 October 2026 customerId is optional: with statusPageIds the incident appears on those pages, page-wide or on the components in componentIds, also on a page without a customer or without a single monitor. Subscribers of every page the incident appears on are notified.

Authentication

Requires role admin or editor (or an organization API token). Without customerId the incident belongs to the organization, like a status page without a customer: a customer-scoped login or token gets 403 forbidden. Every page in statusPageIds must belong to your organization (otherwise 404 statusPageNotFound) and be within your customer scope.

  • Header: Authorization: Bearer <token>

Request Body

FieldTypeRequiredDescription
customerIdintegerNo*Customer whose status pages show the incident. *Either customerId or statusPageIds is required.
websiteIdintegerNoA website of customerId the incident is about. Needs customerId.
titlestringYesHeadline, 1 to 200 characters.
severitystringYesminor, major, critical or maintenance.
summarystringNoUp to 5,000 characters.
startedAtstringNoISO 8601 time, default now.
updateStatusstringNoFirst timeline update together with updateBody: investigating, identified, monitoring or resolved (opens the incident resolved).
updateBodystringNoText of the first update, up to 5,000 characters.
statusPageIdsarrayNo*Status pages (id or publicId), at most 10. A page without one of componentIds gets the incident page-wide. With customerId, only pages without a customer or of that customer.
componentIdsarrayNoAffected components (id or publicId), at most 100; each must belong to one of statusPageIds. While the incident is open, these manual components take its impact.
impactstringNodegraded, partial_outage, major_outage or maintenance. Default from severity: minor = degraded, major = partial_outage, critical = major_outage, maintenance = maintenance.

Example (cURL)

curl -X POST "$BASE_URL/api/incidents" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Card payments failing",
    "severity": "major",
    "statusPageIds": ["2b9c7d1e-5f3a-4c8b-9e0d-1a2b3c4d5e6f"],
    "componentIds": [8],
    "updateStatus": "investigating",
    "updateBody": "We are looking into failed card payments."
  }'

Response

201 Created

{
  "incident": {
    "id": 5121,
    "publicId": "8d1f0c2e-6a2b-4f1e-9b7c-2e5a1d3c4b5a"
  }
}

Common Errors

  • 400 Bad Request (incidentTargetRequired) when neither customerId nor statusPageIds is given
  • 400 Bad Request (statusPageIdsRequired) when componentIds is given without statusPageIds
  • 400 Bad Request (statusPageComponentNotOnPage) when a component belongs to a page that is not in statusPageIds
  • 400 Bad Request (statusPageCustomerMismatch) when a page belongs to another customer than customerId
  • 400 Bad Request (invalidWebsite) when the website does not belong to customerId, or websiteId is given without customerId
  • 400 Bad Request (invalidRequestBody) when a field is missing or has the wrong type or value
  • 401 Unauthorized when not authenticated
  • 403 Forbidden (forbidden) when your role cannot write status pages, or a customer-scoped caller creates an incident without a customer or on a page outside its scope
  • 403 Forbidden (statusPagesModuleDisabled) when statusPageIds is non-empty and the status pages module is not activated for your organization; incidents without status pages are not affected
  • 404 Not Found (statusPageNotFound, statusPageComponentNotFound, customerNotFound) when a page, component or customer does not exist in your organization

On this page