---
title: Status badge & embed
description: Add a live status badge to your site, docs or README, read your status as CORS-enabled JSON, and subscribe by RSS.
canonical: https://watchfor.io/docs/status-pages/embed
---

# Status badge & embed

Add a live status badge to your site, docs or README, read your status as CORS-enabled JSON, and subscribe by RSS.

Put your current status where your users already are — your marketing site,
docs, dashboard or GitHub README — with a small **status badge** that links
back to your status page and refreshes on its own. For custom widgets, the
same data is available as JSON, and the page has an RSS feed.

All three are available on **public** pages only. A private or
password-protected page exposes none of them, because they would leak your
status to anyone with the link — see [Visibility](/docs/status-pages/visibility).

## Get the embed code

In the dashboard, open the status page and scroll to the **Status badge**
card. The snippet is pre-filled with your page's address:

1. Pick a **theme** — **auto** (follows each visitor's light/dark preference),
   dark, or light.
2. Check the **live preview**, then **Copy** and paste the code into your
   site's HTML.

The badge is a single SVG image wrapped in a link:

```html
[![Your Company status badge](https://watchfor.io/stats/yourname/badge.svg?theme=auto)](https://watchfor.io/stats/yourname)
```

It shows the same overall status as your page — *All systems operational*,
*Some systems degraded*, *Major outage* or *Scheduled maintenance* — and is
cached for about a minute, so it updates on its own.

## Status as JSON

Every public status page also serves its current status as JSON:

```
https://watchfor.io/stats/yourname/status.json
```

```json
{
  "page": {
    "name": "Your Company",
    "url": "https://watchfor.io/stats/yourname",
    "status": "operational",
    "label": "All systems operational",
    "color": "#22c55e"
  },
  "components": [
    { "name": "API", "status": "operational" },
    { "name": "Dashboard", "status": "degraded" }
  ],
  "activeIncidents": [
    {
      "name": "Elevated API error rate",
      "started": "2026-08-03T09:02:00.000Z",
      "status": "investigating",
      "impact": "minor",
      "url": "https://yourname.watchfor.io/incidents/abc123"
    }
  ],
  "activeMaintenances": [],
  "updated": "2026-08-03T09:12:00.000Z"
}
```

- `page.status` is one of `operational`, `degraded`, `major_outage` or
  `maintenance`, with a human `label` and matching `color`.
- `components` lists each component's current status; `activeIncidents` and
  `activeMaintenances` carry anything currently open (empty arrays otherwise).
- The endpoint is **CORS-enabled** (`Access-Control-Allow-Origin: *`) and
  cached for about a minute, so you can fetch it straight from the browser to
  build your own badge, banner or dashboard widget — no API key needed.

## RSS feed

Public pages publish an RSS feed of incidents and maintenance notices at:

```
https://watchfor.io/stats/yourname/feed.xml
```

Point a feed reader, a Slack RSS app or an automation at it to follow changes
without polling the page.

> **Also via API**
>
> `status.json` and the badge are public, keyless endpoints for your page. To
> read your own organization's internal state — every monitor, incident and
> uptime number — use the authenticated [REST API](/docs/api) instead.

---

Canonical page: https://watchfor.io/docs/status-pages/embed · All docs: https://watchfor.io/docs · Site guide: https://watchfor.io/llms.txt
