Setup documentation

Docs

Everything you need to connect a project to Status, expose a working /api/health endpoint, and surface the results on your own site.

What Status does

Status is a per-project uptime board. Each monitored project exposes a tiny HTTP health endpoint (usually /api/health). A poller calls that endpoint every 5 minutes, records one result per sub-component, and Status publishes a live page per project (/p/[slug]) with uptime bars, a one-year incident calendar, and a JSON API you can embed anywhere.

Connecting a project is a two-part job:

  1. You expose a working GET /api/health endpoint (see the contract and code examples).
  2. Us register the project (name + slug + health URL) in the Status /admin console — the next poll picks it up automatically.

How a check works

every 5 minutes
  │
  ▼
Cloudflare cron Worker ──POST /api/poll (x-poll-secret)──▶ Status (Vercel)
                                                            │
        loops each enabled project,                        │
        fetch(healthUrl) with a 15s timeout                │
              │                                            │
              ▼                                            ▼
   your store / service                     Supabase „checks" rows
   GET /api/health ──► JSON                        ▲
                                                   │
                              public pages + /api/status/[slug] read this

One checks row is stored per component per poll. The status app is poll-driven — there is no agent, no SDK, and nothing installed on your server.

What you need to provide

RequirementNotes
https:// public URLHealth URLs are enforced to HTTPS. No localhost, no internal IPs.
Responds within 15sAnything slower is treated as unreachable (marked down).
Valid JSON body{ "status": "ok", "results": [...] } — see the contract.
No auth requiredThe endpoint must be callable anonymously (like a status/health check should be).
New to this? Start with Getting started, then Health endpoint contract. If you already have an endpoint pattern in mind, jump straight to Code examples.