Skip to content

Badges, embed & JSON

Every public status page exposes three free, no-auth outputs on its own host (<your-page>.uptimeglobe.com or your custom domain): a live SVG badge, an embeddable widget, and a CORS-enabled JSON feed. They only ever expose what the status page itself shows, refresh within ~60 seconds, and work on every plan. Copy ready-made snippets from your dashboard under Status pages → your page → Embed & API.

A shields-style badge for READMEs, wikis, and dashboards:

[![Status](https://<your-page>.uptimeglobe.com/badge.svg)](https://<your-page>.uptimeglobe.com/)

They look like this — and they are live: the SVG regenerates from your latest check data on every load (~60s edge cache), so a badge in a README flips to red within a minute of an outage and back on recovery:

Query parameters (all optional; invalid values fall back rather than erroring, so an embedded badge never breaks):

  • type — status (default) shows operational/degraded/outage · uptime shows a percentage
  • window — 24h · 30d · 90d — uptime window (default 30d; an unrecognised value falls back to 30d rather than erroring, so a bad badge URL in a README still renders)
  • monitor — a monitor id from the status JSON — badge for one monitor instead of the whole page
  • label — custom left-side text (up to 32 characters). Defaults to your page’s name (or the monitor’s name for per-monitor badges); long names scroll inside a fixed-width box so the badge never blows out your layout
https://<your-page>.uptimeglobe.com/badge.svg?type=uptime&window=30d&label=api%20uptime

A tiny script that renders a live status pill (or a per-monitor panel) on any website — CMS pages, marketing sites, internal portals. Styles are isolated in a shadow root and it follows the visitor’s light/dark preference. If the status can’t be fetched it renders nothing rather than a misleading error state.

<div data-uptimeglobe-status></div>
<script async src="https://<your-page>.uptimeglobe.com/embed.js"></script>

It renders like this (the full status text sits in the hover tooltip; the card links to your status page):

API99.98%Website · down 12m98.51%

Options via attributes on the div:

  • data-variant — pill (default) · panel — panel lists every monitor with its uptime
  • data-monitor — a monitor id — the pill shows that monitor’s status instead of the page-wide status

Machine-readable status for anything custom — no API key, CORS *, cached ~60s at the edge:

curl https://<your-page>.uptimeglobe.com/api/status.json
{
"version": 2,
"page": { "name": "Acme Status", "url": "https://<your-page>.uptimeglobe.com" },
"overall": "up", // up | degraded | down | unknown | maintenance | paused
"overall_text": "All systems operational",
"updated_at": "2026-07-20T12:00:00.000Z",
"data_unavailable": false, // historical charts unavailable
"current_status_unavailable": false, // current status cannot be confirmed
"monitors": [
{
"id": "0198…", // use as badge.svg?monitor= / data-monitor
"name": "API",
"status": "up", // up | degraded | down | unknown | maintenance | paused
"observed_at": "2026-07-20T11:59:31.000Z", // see note below
"uptime": { "30d": 99.987, "90d": 99.995 } // percent; null = no data yet
}
],
"active_incidents": [
{
"id": "0197…",
"monitor_id": "0198…",
"monitor_name": "API",
"started_at": "2026-07-20T11:40:00.000Z",
"severity": "major"
}
]
}

observed_at is when the status was last confirmed, not the time of the most recent check. It is always a real check timestamp, but it advances when the status changes or once an hour, whichever comes first — so a healthy monitor’s value can sit still for up to an hour. Read it as “since when has this held”, and use it for things like “down for 2 hours”. Don’t use it to decide whether our monitoring is alive: current_status_unavailable answers that, and a frozen observed_at on a healthy monitor is normal.

maintenance and paused are not outages. maintenance means the monitor is inside a window you declared; paused means you switched monitoring off. Code that treats “anything not up” as a failure will report both as incidents.

Windows follow your plan’s history granularity (the same rule as the status page tabs). For richer, authenticated data — raw checks, latency percentiles, certificate details — use the API & MCP server with a scoped key.