Status Service API

The Status Service API provides public status-page endpoints for subscribers and integrations. Authenticated Status Service customers also get management endpoints for their own status pages. Most endpoints return JSON and use standard HTTP methods; feed endpoints such as /api/v1/rss return RSS XML.

Base URL: https://statuspage.cloudsigma.com/api/v1

Authentication

Public status-page endpoints do not require authentication. Subscriber actions such as subscribe/unsubscribe use email verification tokens. Management endpoints require an authenticated status-service customer session or API key with appropriate scopes.

Option A — Bearer Token:
Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx
Option B — API Key Header:
X-API-Key: sk_live_xxxxxxxxxxxxxxxx

API-key support is endpoint-specific. Management endpoints currently accept bearer credentials broadly; X-API-Key is accepted where the endpoint uses the shared API-key authentication dependency. Prefer Bearer unless an endpoint explicitly documents X-API-Key support.

Management API

Management API examples below require a signed-in customer session or API credentials with the listed scopes.

Interactive API docs, ReDoc, and the OpenAPI JSON are public at /api/docs, /api/redoc, and /api/openapi.json. Sign in as a status-service customer to view the management examples on this human-facing reference page.

Error Handling

Most errors return a JSON object with a detail field. Management scope/RBAC failures may return structured detail with code, message, and scope metadata such as organization_id or domain_id.

StatusMeaning
400Bad Request — invalid parameters
401Unauthorized — missing or invalid API key
403Forbidden — insufficient permissions
404Not Found — resource doesn't exist
422Validation Error — check request body
500Server Error — try again or contact support

GET Global Status

/api/v1/status

Returns the overall system status with component counts by status category and active incident/maintenance counts. No authentication required.

Response Fields
FieldTypeDescription
statusstringOverall status: operational, degraded_performance, partial_outage, major_outage, under_maintenance
indicatorsobjectCount of components per status category
active_incidentsintegerNumber of unresolved incidents
scheduled_maintenanceintegerNumber of active maintenance windows
last_updatedstringISO 8601 timestamp
cURL
Python
JavaScript
# Get global status
curl https://statuspage.cloudsigma.com/api/v1/status
import requests

response = requests.get(
    "https://statuspage.cloudsigma.com/api/v1/status"
)
data = response.json()
print(data["status"])  # "operational"
const response = await fetch(
  "https://statuspage.cloudsigma.com/api/v1/status"
);
const data = await response.json();
console.log(data.status); // "operational"
Response · 200
{
  "status": "operational",
  "indicators": {
    "operational": 18,
    "degraded_performance": 0,
    "partial_outage": 0,
    "major_outage": 0,
    "under_maintenance": 0
  },
  "active_incidents": 0,
  "scheduled_maintenance": 1,
  "last_updated": "2026-02-28T06:30:00+00:00"
}

GET List Components

/api/v1/components

Returns all components (cloud locations, services, regions) with their current status. No authentication required.

Query Parameters
ParameterTypeDescription
status_filterstringFilter by lowercase status values such as operational, degraded_performance, partial_outage, major_outage, or under_maintenance
pageintegerPage number (default: 1)
per_pageintegerResults per page (default: 100)
cURL
Python
JavaScript
# List all components
curl https://statuspage.cloudsigma.com/api/v1/components
import requests

response = requests.get(
    "https://statuspage.cloudsigma.com/api/v1/components"
)
components = response.json()
for c in components:
    print(f"{c['name']}: {c['status']}")
const response = await fetch(
  "https://statuspage.cloudsigma.com/api/v1/components"
);
const components = await response.json();
components.forEach(c =>
  console.log(`${c.name}: ${c.status}`)
);
Response · 200
[
  {
    "id": "a1b2c3d4-...",
    "name": "Zurich (ZRH)",
    "code": "zrh",
    "status": "operational",
    "description": "Zurich, Switzerland",
    "position": 1
  },
  ...
]

GET Detailed Status

/api/v1/status/detailed

Returns the global status fields plus components, incidents, and maintenance arrays. No authentication required.

Top-level fields

status, indicators, active_incidents, scheduled_maintenance, last_updated, components, incidents, maintenance

curl https://statuspage.cloudsigma.com/api/v1/status/detailed

GET List Incidents

/api/v1/incidents

Returns a paginated object, not a plain array. No authentication required.

Response wrapper fields: items, total, page, per_page, total_pages.

{
  "items": [],
  "total": 0,
  "page": 1,
  "per_page": 20,
  "total_pages": 0
}

POST Subscribe

/api/v1/subscribe

Creates an unverified public subscriber. If the request host maps to a status-page domain, organization_id must match that host and component_ids/event_ids must belong to the same host domain.

Subscribers verify by email token before receiving notifications. Token-based verify and unsubscribe routes do not expose sibling-domain selectors.

organization_idoptional on mapped hosts; required for generic API callers
emailrequired for email subscriptions
component_ids / event_idsmust belong to the resolved status-page domain
curl -X POST https://statuspage.cloudsigma.com/api/v1/subscribe \
  -H "Content-Type: application/json" \
  -d '{"organization_id":"...","email":"[email protected]"}'

GET RSS Feed

/api/v1/rss

Returns RSS 2.0 XML for recent incidents and maintenance. No authentication required. On a mapped status-page host, the feed is scoped to that public domain; generic API callers may pass domain_id.

curl -H "Accept: application/rss+xml" \
  https://statuspage.cloudsigma.com/api/v1/rss?domain_id=...