Status badges and the public status API
Embed a live status badge in a README, and read page status as JSON or feeds.
Every public status page exposes three machine-readable surfaces
alongside the HTML page: an SVG badge, a JSON status document, and
Atom/RSS feeds. All of them live on the page's own domain, work
without authentication, and respect the page's access mode (a
password-protected page serves a neutral restricted badge and
denies the JSON document).
Badge#
https://<subdomain>.use.observer/badge.svg
Embed in a README:
[](https://demo.use.observer)
Parameters#
| Parameter | Values | Effect |
|---|---|---|
style | flat (default), flat-square, for-the-badge | Visual style, matching the shields.io names. for-the-badge renders the tall uppercase variant. |
metric | uptime | Show 30-day uptime percent instead of the current status. The badge color still follows the current status, so a degraded page never hides behind a green number. |
label | any short text | Replace the left segment (default status or uptime 30d). |
Examples:


Badges are served with a five-minute cache and a
stale-while-revalidate window, so README embeds stay fast and a
status flip appears within minutes.
JSON status#
https://<subdomain>.use.observer/status.json
Returns the page's current verdict, incident and maintenance counts, and 30-day uptime. Suitable for dashboards, CLI checks, and uptime aggregators. The shape:
{
"page": "Observer",
"status": "operational",
"status_label": "All systems operational",
"open_incidents": 0,
"active_maintenance": false,
"uptime_30d_pct": 99.98,
"as_of": "2026-07-07T20:00:00.000Z",
"url": "https://status.use.observer"
}
Feeds#
https://<subdomain>.use.observer/feed.atom
https://<subdomain>.use.observer/feed.rss
Incident and maintenance history as a standard feed. Most chat tools and feed readers can subscribe directly.
Custom domains#
All three surfaces work unchanged on a page's custom domain once it
is active: https://status.yourdomain.com/badge.svg and so on.