← StatusPages

Status API

Everything the site renders is served as plain, cacheable, CORS-enabled JSON and RSS: no key, no sign-up, no rate limit on reads. Build dashboards, bots, or your own status board on top of it.

All data is aggregated from each provider's own public status page; that page remains the source of truth. Please cache responses (see below) rather than polling tightly.

JSON endpoints

GET /data.json

The home roll-up: one summary per category (overall indicator, provider count, affected count, open incidents).

/data.json ↗

GET /{category}/data.json

Full state for one category: every provider with its indicator, summary, affected components, activeIncidents and recentIncidents. Categories: loading…

/cpaas/data.json ↗

GET /{category}/history.json

90-day per-provider history as day-code strings (o operational, d degraded, m outage, t maintenance, u unconfirmed, - no data), plus the matching date list.

/cpaas/history.json ↗

RSS feeds

GET /{category}/feed.xml?region={region}&providers={id,id}

Incidents as RSS 2.0. Both query params are optional: region keeps only incidents naming that country/region; providers is a comma-separated list of provider ids. Point any reader at it.

/cpaas/feed.xml ↗

Status badges

GET /badge/{category}/{provider}.svg

An embeddable shields-style live status badge (SVG), coloured by indicator. Example: Twilio status

[![Twilio status](https://status-pages.com/badge/cpaas/twilio.svg)](https://status-pages.com/cpaas/twilio)

Alerts (push)

POST /subscribe

Register a Slack incoming-webhook or your own webhook URL to receive new incidents. Body:

{
  "kind": "slack" | "webhook",
  "target": "https://…",        // Slack hook or your https endpoint
  "category": "cpaas",
  "region": "UK",                // optional; "" = all
  "providers": ["sinch","infobip"] // optional; [] = all
}

We send a test ping on sign-up; every payload includes a tokenised /unsubscribe?t=… link. (Sign-ups are lightly rate-limited per IP.) Prefer pull? Use the RSS feed above.

Notes