Uptimeify Docs
Status pages

Update Status Page Maintenance

Changes, reschedules or extends a maintenance.

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

Changes only the fields you send. Moving the start of an upcoming maintenance announces it again (with notifyOnSchedule); messages for the old times are not sent any more. Extend a running maintenance by moving scheduledUntil; to end it now use Complete Maintenance.

Access

Organization admin and editor. A customer-scoped user or API token only reaches maintenance whose status pages all belong to a customer in its scope; a page without a customer (customerId: null) is for organization-wide roles only. Maintenance of another organization answers 404 (statusPageMaintenanceNotFound). Path ids take the numeric id or the publicId. The change is written to the organization's audit log.

Request Body

FieldTypeRequiredDefaultDescription
titlestringNo-Shown on the page and in every message (1-200 chars).
descriptionstring|nullNo-What happens and what visitors notice (max 5000 chars).
scheduledForstringNo-Start, ISO 8601 with offset (Z or +01:00); stored and returned in UTC.
scheduledUntilstringNo-End, after scheduledFor.
statusPageIdsarrayNo-Status pages (id or publicId, 1-10) that show the maintenance.
componentIdsarrayNo-Affected components (id or publicId, up to 100) of any source: manual, monitor or third-party. Each must belong to one of statusPageIds. A page without a listed component shows the maintenance page-wide.
notifyOnSchedulebooleanNo-Announce to subscribers when saved, and again when an upcoming start is moved.
reminderMinutesBeforenumber|nullNo-Remind subscribers this many minutes (5-10080) before the start; null sends no reminder.
notifyOnStartbooleanNo-Notify subscribers when the maintenance starts.
notifyOnCompletebooleanNo-Notify subscribers when it ends.

statusPageIds replaces the pages; without componentIds they become page-wide. componentIds alone replaces the components on the current pages. At least one field is required; unknown fields are rejected.

Example (cURL)

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

curl -X PATCH "$BASE_URL/api/status-pages/maintenances/12" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"scheduledUntil": "2026-11-04T00:30:00+01:00"}'

Response

200 OK with the whole maintenance, as in Get Status Page Maintenance.

Common errors

  • 400 Bad Request (invalidRequestBody) when a field is missing, has the wrong type or is unknown; data.issues names the field
  • 400 Bad Request (invalidDateRange) when scheduledUntil is not after scheduledFor
  • 400 Bad Request (invalidIdentifier) when an id is neither a number nor a UUID
  • 400 Bad Request (statusPageComponentNotOnPage) when a component does not belong to one of statusPageIds
  • 401 Unauthorized when you are not logged in
  • 403 Forbidden (forbidden) when your role may not do this, or for a customer-scoped caller on a page without a customer or of another customer
  • 403 Forbidden (statusPagesModuleDisabled) when the status pages module is not activated
  • 404 Not Found (statusPageMaintenanceNotFound) when the maintenance does not exist or belongs to another organization
  • 404 Not Found (statusPageNotFound) when a status page does not exist or belongs to another organization
  • 404 Not Found (statusPageComponentNotFound) when a component does not exist
  • 409 Conflict (statusPageMaintenanceClosed) when the maintenance was cancelled

On this page