Endpoint reference
Status page announcements
Read and manage status page announcements and maintenance windows with an API key. The :statusPage path value can be either the page ID or slug.
Status pages
GET
/api/v1/status-pagesLists status pages owned by the API key account. Use the returned ID or slug with the announcement and maintenance routes.
Announcements
GET
/api/v1/status-pages/:statusPage/announcementsPOST
/api/v1/status-pages/:statusPage/announcementsGET
/api/v1/status-pages/:statusPage/announcements/:announcementPATCH
/api/v1/status-pages/:statusPage/announcements/:announcementDELETE
/api/v1/status-pages/:statusPage/announcements/:announcementAnnouncements accept a title, content, optional monitor IDs, and optional start/end times. If monitor IDs are omitted, the announcement applies to the whole status page.
Maintenance Windows
GET
/api/v1/status-pages/:statusPage/maintenancesGET
/api/v1/status-pages/:statusPage/maintenances/ongoingGET
/api/v1/status-pages/:statusPage/maintenances/futurePOST
/api/v1/status-pages/:statusPage/maintenancesGET
/api/v1/status-pages/:statusPage/maintenances/:maintenancePATCH
/api/v1/status-pages/:statusPage/maintenances/:maintenanceDELETE
/api/v1/status-pages/:statusPage/maintenances/:maintenance Maintenance routes store the same status page record type as announcements, but require startTime and only return records with a maintenance window.
The future list accepts includeOngoing=true to include active maintenance windows alongside scheduled future windows.
Request Body
| Field | Type | Description |
|---|---|---|
| title | string | Required on create. Up to 140 characters. |
| content | string | Required on create. Up to 5000 characters. The alias body is also accepted. |
| monitorIds | string[] | Optional list of monitors linked to the status page. Use an empty array for page-wide updates. |
| startTime | ISO string | null | Optional for announcements, required for maintenance routes. |
| endTime | ISO string | null | Optional end of the announcement or maintenance window. Must be after startTime. |
Examples
curl https://xuptimemonitor.com/api/v1/status-pages \
-H "Authorization: Bearer $XUPTIME_API_KEY"curl -X POST https://xuptimemonitor.com/api/v1/status-pages/main-status/maintenances \
-H "Authorization: Bearer $XUPTIME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Database migration",
"content": "Read-only mode while we migrate the primary database.",
"monitorIds": ["8b0a86d1-3f5b-4a0e-8e61-3c2c50d24711"],
"startTime": "2026-05-20T01:00:00.000Z",
"endTime": "2026-05-20T02:00:00.000Z"
}'