Skip to main content

Status Badges

A status badge is a small SVG image showing one check's live status — embeddable in a GitHub README, a wiki page, or your own site, the same way the status page badge reflects a whole page. A badge belongs to a check, so the builder lives under the check: open a check, then Badges (/orgs/:org/checks/:check/badges). Toggle the pieces you want, and copy the URL, Markdown, or HTML snippet — or download the SVG/PNG directly.

Components​

A badge is built from one or more components, joined with commas in the URL. Two of them render as a row below the others (a bar/graph); the rest render as text segments on the first row, always in this order:

ComponentShows
statusCurrent up/down status
availabilityUptime percentage over the selected period
durationTime since the last status change
response-timeMean response time over the selected period
uptime-barA horizontal strip showing availability per time bucket
response-time-graphA response-time trend line

status alone is the default. Combine several, e.g. status,availability for a two-segment badge, or add uptime-bar for a second row underneath.

Hover details​

The uptime-bar and response-time-graph rows are interactive, but how much you get depends on how the badge is embedded:

  • <object>, <iframe>, or inline SVG — full interactivity in every browser: hovering a bar segment highlights it and shows a tooltip with the bucket's time range and availability percentage (e.g. Wed Jan 7: 99.8% — including buckets too narrow to print the percentage inside the bar), and hovering the graph shows a vertical highlight with the bucket's average response time (e.g. Wed Jan 7 → 304ms). Use:

    <object type="image/svg+xml" data="https://status.acme.com/api/v1/orgs/acme/checks/my-api/badges/status,uptime-bar">
    <img src="https://status.acme.com/api/v1/orgs/acme/checks/my-api/badges/status,uptime-bar" alt="My API badge" />
    </object>
  • <img> (including GitHub READMEs) — Chrome and Safari render the SVG in a non-interactive "static image" mode where hover never fires; Firefox shows the tooltips. The badge still renders perfectly — it just doesn't react to hover there. This needs no JavaScript in any case, so the interactive embeds above are as safe to use as the plain image.

URL and parameters​

GET /api/v1/orgs/{org}/checks/{checkIdentifier}/badges/{components}

checkIdentifier is the check's UID or slug — a value that parses as a UUID is looked up by UID, anything else by slug; components is the comma-separated token list above. Query parameters:

ParameterValuesDefault
period24h, 7d, 30d, 90d30d
styleflat, flat-squareflat
labelCustom textThe check's name
minWidth0–800 (text-row badges only)0 (auto)
width60–800 (bar/graph badges only)300

Badges are served with Cache-Control: public, max-age=60.

Embedding​

The builder generates ready-to-paste snippets:

![My API badge](https://status.acme.com/api/v1/orgs/acme/checks/my-api/badges/status)
<img src="https://status.acme.com/api/v1/orgs/acme/checks/my-api/badges/status" alt="My API badge" />

Visibility​

A per-check badge URL is public and unauthenticated — anyone who has the URL can view it, regardless of whether the check appears on any status page or whether that status page is public. Treat the URL itself as the only access control: once you publish it (in a README, a public wiki), the check's name and status history become visible to anyone who finds it.

This is different from the status page badge, which reflects a whole status page and follows that page's own visibility setting.