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-pages

Lists 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/announcements
POST/api/v1/status-pages/:statusPage/announcements
GET/api/v1/status-pages/:statusPage/announcements/:announcement
PATCH/api/v1/status-pages/:statusPage/announcements/:announcement
DELETE/api/v1/status-pages/:statusPage/announcements/:announcement

Announcements 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/maintenances
GET/api/v1/status-pages/:statusPage/maintenances/ongoing
GET/api/v1/status-pages/:statusPage/maintenances/future
POST/api/v1/status-pages/:statusPage/maintenances
GET/api/v1/status-pages/:statusPage/maintenances/:maintenance
PATCH/api/v1/status-pages/:statusPage/maintenances/:maintenance
DELETE/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

FieldTypeDescription
titlestringRequired on create. Up to 140 characters.
contentstringRequired on create. Up to 5000 characters. The alias body is also accepted.
monitorIdsstring[]Optional list of monitors linked to the status page. Use an empty array for page-wide updates.
startTimeISO string | nullOptional for announcements, required for maintenance routes.
endTimeISO string | nullOptional 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"
  }'