Status pages
Post Status Page Maintenance Update
Publishes an update to a maintenance on the page and to subscribers.
POST /api/status-pages/maintenances/{id}/updates
Adds a public update to a maintenance, before, during or after it.
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 |
|---|---|---|---|---|
body | string | Yes | - | The update text (1-5000 chars), shown on the public page. |
notifySubscribers | boolean | No | true | Send it to subscribers as maintenance_update. The same text twice on the same maintenance is sent once. |
Example (cURL)
BASE_URL="https://uptimeify.io"
TOKEN="<your-api-token>"
curl -X POST "$BASE_URL/api/status-pages/maintenances/12/updates" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"body": "The upgrade takes 20 minutes longer than planned."}'Response
201 Created:
{
"id": 31,
"publicId": "7c2d4e6f-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
"body": "The upgrade takes 20 minutes longer than planned.",
"createdAt": "2026-11-03T22:40:00.000Z"
}Common errors
400 Bad Request(invalidRequestBody) when a field is missing, has the wrong type or is unknown;data.issuesnames the field400 Bad Request(invalidIdentifier) when an id is neither a number nor a UUID401 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 organization409 Conflict(statusPageMaintenanceClosed) when the maintenance was cancelled