Public endpoints
The visitor-facing surfaces a published status page exposes on its mounted host - the rendered page, the status.json feed, and the embeddable SVG badge.
Public endpoints
A published status page exposes three unauthenticated surfaces on its mounted host. None take an API key; access is governed by the page row (published, not suspended, not expired). Replace <your-domain> below with your mounted host (your custom domain or <slug>.hep.gg).
The rendered page
https://<your-domain>/PublicThe status page itself: a dark, mobile-friendly render with an overall status hero, a color legend, the component tree with 90-day uptime bars, and the incident timeline.
- No body, no query parameters. The page is driven entirely by the
Hostheader. - Returns
200withContent-Type: text/html; charset=utf-8andCache-Control: no-store. - If no published page matches the host, the request falls through (404, or a redirect to
hep.ggfor unmatched custom domains).
Status JSON
https://<your-domain>/status.jsonPublicA compact JSON snapshot of the page, suitable for dashboards, uptime bots, or your own integrations.
- Returns
200withCache-Control: no-store. status.indicatoris the worst component status;componentslists each leaf component;incidentslists currently-active (unresolved) incidents.
{
"page": { "name": "Acme", "url": "https://status.acme.example" },
"status": { "indicator": "operational", "description": "All Systems Operational" },
"components": [
{ "id": "c_api", "name": "API", "status": "operational", "label": "Online" }
],
"incidents": [
{
"id": "i_123",
"name": "Elevated API latency",
"impact": "minor",
"state": "monitoring",
"startedAt": "2026-05-30T18:00:00.000Z",
"latestUpdate": "We are monitoring the fix."
}
]
}curl https://your-domain.example/status.jsonconst res = await fetch("https://your-domain.example/status.json");
const status = await res.json();
console.log(status.status.indicator); // "operational"Status badge
https://<your-domain>/badge.svgPublicA shields-style SVG badge showing the page's overall status, colored to match. Drop it in a README or site footer.
- Returns
200withContent-Type: image/svg+xml; charset=utf-8and a short cache (max-age=60). - The label reads the overall summary (e.g. "All Systems Operational"); the color follows the worst component status.
[](https://your-domain.example)