Uptimeify Docs
Status pages

Update Status Page Template

Changes fields of a template; null clears an optional field.

PATCH /api/status-pages/templates/{id}

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
namestringNo-Shown in the template picker, 1-120 characters.
titlestring or nullNonullIncident templates only: the incident title, up to 200 characters.
bodystringNo-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.

At least one field. statusPageIds and componentIds are checked together: a field you leave out keeps its stored value.

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 PATCH "$BASE_URL/api/status-pages/templates/4" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "body": "We have identified the cause and are working on a fix.", "updateStatus": "identified" }'

Response

200 OK with the changed 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
  • 400 Bad Request (invalidIdentifier) when the id is neither a number nor a UUID
  • 404 Not Found (statusPageTemplateNotFound) when the template does not exist or belongs to another organization
  • 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