Skip to content

Status endpoint

GET /v1/status returns the public service health snapshot for this API. The response is derived from Uptime Kuma monitor data and heartbeat history.

No authentication is required.

Request

Send a GET request to /v1/status.

bash
curl -sS https://api.example.com/v1/status

Success response (200 OK)

The response always includes status. It may also include disrupted and maintenance, depending on monitor state.

Monitor names inside arrays are sorted alphabetically for stable output.

All systems operational

json
{
  "status": "up"
}

One or more services disrupted

disrupted includes monitors marked as down or pending in Uptime Kuma.

json
{
  "status": "disrupted",
  "disrupted": [
    "Main Website",
    "Celestia [HTTP]"
  ]
}

Maintenance only

json
{
  "status": "maintenance",
  "maintenance": [
    "Clients Area"
  ]
}

Disrupted and maintenance at the same time

If both states exist, status is disrupted. Disruption takes priority.

json
{
  "status": "disrupted",
  "disrupted": [
    "Astra [PING]"
  ],
  "maintenance": [
    "Clients Area"
  ]
}

Error responses

The endpoint can return these non-200 responses:

codebodywhen it happens
405textMethod is not GET
429textRate limit exceeded for client IP
503{"status":"error"}API cannot read Uptime Kuma

Status reference

statusmeaning
upEvery visible monitor is healthy
disruptedAt least one visible monitor is down or pending
maintenanceNo disruptions, but one or more monitors are in maintenance
errorUpstream status source could not be reached

Browser and CORS notes

This endpoint supports CORS for approved origins. OPTIONS preflight requests from approved origins return 204 No Content. For unapproved origins, the API does not return CORS headers, so browser access is blocked by the browser, while server-to-server requests still work.

Local development origins are disabled by default and are only accepted when ALLOW_LOCAL_ORIGINS=true.