> ## Documentation Index
> Fetch the complete documentation index at: https://docs.happyuptime.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Status JSON

Public JSON endpoint for live status of a monitor or status page.

# Widget status JSON

Public, CORS-enabled JSON API for embedding live status in your own dashboards or sites.

## Monitor status

GET `/widgets/status/monitor/{monitor_id_or_slug}`

```json
{
  "monitor": {
    "id": "mon_abc",
    "name": "API",
    "status": "up",
    "uptime_24h": 100.0,
    "uptime_7d": 99.97,
    "uptime_30d": 99.94,
    "response_time_p50_ms": 287,
    "response_time_p95_ms": 412,
    "last_check_at": "2026-04-17T20:01:23Z"
  },
  "incidents": []
}
```

## Status page status

GET `/widgets/status/page/{slug}`

```json
{
  "page": { "name": "Acme Status", "slug": "acme" },
  "overall_status": "operational",
  "components": [
    { "name": "Web App", "status": "operational" },
    { "name": "API", "status": "degraded_performance" }
  ],
  "active_incidents": [
    {
      "id": "inc_xyz",
      "title": "API latency",
      "severity": "minor",
      "started_at": "2026-04-17T19:50:00Z",
      "url": "https://status.acme.com/incidents/inc_xyz"
    }
  ]
}
```

## Status values

| Value | Meaning |
| --- | --- |
| `operational` | All checks passing |
| `degraded_performance` | Some checks slow or partial failures |
| `partial_outage` | Some regions failing |
| `major_outage` | All regions failing |
| `under_maintenance` | Planned maintenance window active |

## Caching + rate limiting

- Cached at edge for 30 seconds
- Rate limited to 60 requests/min/IP (use server-side polling, not per-pageview)

## CORS

`Access-Control-Allow-Origin: *` — safe to call from browser JS.

```javascript
fetch("https://happyuptime.com/api/v1/widgets/status/page/acme")
  .then(r => r.json())
  .then(data => render(data.overall_status));
```