Build a status page
From new schedule to public URL in 3 minutes.
Build a status page
Create the page
Dashboard → Status Pages → + New page. Pick a template (minimal, brand, terminal), name it, choose a slug. The slug becomes the URL: happyuptime.com/status/{slug}.
Add components linked to monitors
Status pages display components, each typically backed by a monitor. Click + Add component, name it ("API", "Web App"…), and pick the monitor it tracks. The component's status auto-derives from the monitor.
Add 5–10 components to start. Bulk add via POST /status-pages/:id/components/bulk.
(Optional) Group components
Once you have 8+ components, add groups (Frontend / Backend / Infrastructure) so the page collapses cleanly. Settings → Groups → + Add group.
Brand it
Settings → Branding:
- Logo (light + dark)
- Brand color
- Custom CSS injection
- "Hide branding" — Pro+
Pages render server-side and are cached at the edge for 30s — changes go live within a minute.
What's included on every page
- 90-day uptime bars per component
- Active and recent incidents (auto-fed from
/incidents) - Subscriber form (double-opt-in email)
- RSS / Atom feed at
/<slug>/feed.xml - Auto-refresh, dark mode toggle
- SEO meta tags + OG image
Programmatic access
Anyone can hit:
GET /api/status-pages/public/{slug}→ JSONGET https://{slug}.statuspage.url/api.md→ markdown (for LLMs)GET https://{slug}.statuspage.url/llms.txt→ LLM-friendly summary