Unstatus API

Status Pages

Manage public status pages.

Status pages display monitor health publicly on a custom domain or slug-based URL.

List Status Pages

GET/api/v1/status-pagesFree

Returns all status pages with their linked monitors.

curl https://unstatus.app/api/v1/status-pages \
  -H "Authorization: Bearer usk_your_key"
Response
{
  "data": [
    {
      "id": "sp_...",
      "name": "Acme Status",
      "slug": "acme",
      "isPublic": true,
      "brandColor": "#000000",
      "monitors": [
        {
          "id": "spm_...",
          "monitorId": "clx1abc...",
          "displayName": "API",
          "sortOrder": 0,
          "monitor": { "id": "clx1abc...", "name": "API Server" }
        }
      ]
    }
  ],
  "pagination": { "total": 1, "limit": 20, "offset": 0, "hasMore": false }
}

Get Status Page

GET/api/v1/status-pages/:idFree

Create Status Page

POST/api/v1/status-pagesAuthenticated
FieldTypeRequiredDescription
namestringYesPage name
slugstringYesURL slug (unique)
isPublicbooleanNoPublicly visible (default true)
customDomainstringNoCustom domain
brandColorstringNoHex color (default #000000)
logoUrlstringNoLogo URL
headerTextstringNoHeader text/HTML
footerTextstringNoFooter text/HTML
customCssstringNoCustom CSS
showResponseTimesbooleanNoShow response times (default true)
curl -X POST https://unstatus.app/api/v1/status-pages \
  -H "Authorization: Bearer usk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Status",
    "slug": "acme",
    "brandColor": "#4f46e5"
  }'

Update Status Page

PATCH/api/v1/status-pages/:idAuthenticated

Only include the fields you want to change.


Delete Status Page

DELETE/api/v1/status-pages/:idAuthenticated

Permanently deletes a status page, its monitor links, and all subscribers.

On this page