Observer
Observer

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:

[![status](https://demo.use.observer/badge.svg)](https://demo.use.observer)

Parameters#

ParameterValuesEffect
styleflat (default), flat-square, for-the-badgeVisual style, matching the shields.io names. for-the-badge renders the tall uppercase variant.
metricuptimeShow 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.
labelany short textReplace the left segment (default status or uptime 30d).

Examples:

![status](https://demo.use.observer/badge.svg?style=for-the-badge)
![uptime](https://demo.use.observer/badge.svg?metric=uptime&label=api%20uptime)

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.

Was this page helpful?