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
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
title | string | No | - | Shown on the page and in every message (1-200 chars). |
description | string|null | No | - | What happens and what visitors notice (max 5000 chars). |
scheduledFor | string | No | - | Start, ISO 8601 with offset (Z or +01:00); stored and returned in UTC. |
scheduledUntil | string | No | - | End, after scheduledFor. |
statusPageIds | array | No | - | Status pages (id or publicId, 1-10) that show the maintenance. |
componentIds | array | No | - | 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. |
notifyOnSchedule | boolean | No | - | Announce to subscribers when saved, and again when an upcoming start is moved. |
reminderMinutesBefore | number|null | No | - | Remind subscribers this many minutes (5-10080) before the start; null sends no reminder. |
notifyOnStart | boolean | No | - | Notify subscribers when the maintenance starts. |
notifyOnComplete | boolean | No | - | 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.issuesnames the field400 Bad Request(invalidDateRange) whenscheduledUntilis not afterscheduledFor400 Bad Request(invalidIdentifier) when an id is neither a number nor a UUID400 Bad Request(statusPageComponentNotOnPage) when a component does not belong to one ofstatusPageIds401 Unauthorizedwhen you are not logged in403 Forbidden(forbidden) when your role may not do this, or for a customer-scoped caller on a page without a customer or of another customer403 Forbidden(statusPagesModuleDisabled) when the status pages module is not activated404 Not Found(statusPageMaintenanceNotFound) when the maintenance does not exist or belongs to another organization404 Not Found(statusPageNotFound) when a status page does not exist or belongs to another organization404 Not Found(statusPageComponentNotFound) when a component does not exist409 Conflict(statusPageMaintenanceClosed) when the maintenance was cancelled