Uptimeify Docs
Status pages

Create Status Page Template

Creates an incident or update template.

POST /api/status-pages/templates

A template pre-fills the form for a new public incident (kind: incident) or for an update on a running one (kind: update). It publishes nothing by itself; incidents are still created with Create Manual Incident.

Access

Organization admin and editor with an unrestricted scope: a customer-scoped user or API token gets 403 (customerScopedTokenForbidden), because a template belongs to the whole organization. A template of another organization answers 404 (statusPageTemplateNotFound). Path ids take the numeric id or the publicId. The change is written to the organization's audit log.

Request Body

FieldTypeRequiredDefaultDescription
kindstringYes-incident (a new incident) or update (an update on a running one). Cannot be changed later.
namestringYes-Shown in the template picker, 1-120 characters.
titlestring or nullNonullIncident templates only: the incident title, up to 200 characters.
bodystringYes-The update text, 1-5,000 characters.
updateStatusstringNoinvestigatingPhase the update starts with: investigating, identified, monitoring or resolved.
severitystring or nullNonullIncident templates only: minor, major, critical or maintenance.
impactstring or nullNonullIncident templates only: degraded, partial_outage, major_outage or maintenance.
statusPageIdsarray or nullNonullIncident templates only: status pages (id or publicId) preselected in the form, at most 10. Each must belong to your organization.
componentIdsarray or nullNonullIncident templates only: components (id or publicId), at most 100; each must belong to one of statusPageIds.

An update template (kind: update) takes only name, body and updateStatus; the incident-only fields stay null.

Example (cURL)

BASE_URL="https://uptimeify.io"
TOKEN="<your-api-token>"

curl -X POST "$BASE_URL/api/status-pages/templates" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "kind": "incident", "name": "Payment provider down", "title": "Card payments failing", "body": "We are looking into failed card payments.", "severity": "major", "statusPageIds": [2], "componentIds": [8] }'

Response

201 Created with the new template:

{
  "id": 4,
  "publicId": "3f6c2a1b-8d4e-4b7a-9c1d-2e3f4a5b6c7d",
  "kind": "incident",
  "name": "Payment provider down",
  "title": "Card payments failing",
  "body": "We are looking into failed card payments.",
  "updateStatus": "investigating",
  "severity": "major",
  "impact": "partial_outage",
  "statusPageIds": [2],
  "componentIds": [8],
  "createdAt": "2026-10-27T09:00:00.000Z",
  "updatedAt": "2026-10-27T09:00:00.000Z"
}

Common errors

  • 400 Bad Request (invalidRequestBody) when a field is invalid, or an update template gets an incident-only field
  • 400 Bad Request (statusPageIdsRequired) when componentIds is sent without statusPageIds
  • 400 Bad Request (statusPageComponentNotOnPage) when a component belongs to a page that is not in statusPageIds
  • 404 Not Found (statusPageNotFound, statusPageComponentNotFound) when a page or component does not exist in your organization
  • 409 Conflict (statusPageLimitReached, with data.max) when the organization already has 200 templates
  • 401 Unauthorized when you are not logged in
  • 403 Forbidden (statusPagesModuleDisabled) when the status pages module is not activated
  • 403 Forbidden (forbidden) when your role may not write
  • 403 Forbidden (customerScopedTokenForbidden) for a customer-scoped user or token

On this page