Probe every endpoint — no probe config required.
Toggle monitoring per endpoint and Outworx probes every 10 minutes from the edge, recording latency + status. Each version gets its own status page so staging and production never share an incident dashboard. GraphQL specs use a single introspection probe instead of one query per operation.
Acme API
v2Live status for the v2 branch. Updates every 10 minutes.
All systems operational
POST /v2/users
Last checked 2m ago · 132ms
100.0%
24h
GET /v2/users/{id}
Last checked 2m ago · 64ms
100.0%
24h
POST /v2/checkout
Last checked 2m ago · 210ms
97.5%
24h
Powered by Outworx Docs
10 min
Probe interval, every endpoint
14 days
Check history retention
60 / min
Per-project rate limit
GraphQL
Introspection-based, not per-query
Spec-driven probes
Toggle on. The spec defines what to probe.
Most uptime tools probe a single /health endpoint and call it a day. Outworx flips the granularity — the spec defines what your API is, so probes run per endpoint.
- GET
/v1/users - POST
/v1/users - GET
/v1/users/{id} - POST
/v1/checkout/sessions - GET
/v1/orders
Toggle in the dashboard
The Monitoring tab lists every operation in the spec. Flip the toggle on the ones you want probed; the rest stay unmonitored. Adding a new endpoint to the spec auto-adds it to the list.
pg_cron schedules the run
Supabase pg_cron fires /api/cron/uptime every 10 minutes with the CRON_SECRET Bearer fetched from Vault. Runs on the existing Vercel function infrastructure — no separate scheduler to provision.
Edge probes record
Each enabled monitor gets a probe to the configured base URL + path. Status code + latency + a 1KB-truncated response snippet are written to monitor_checks. 14-day retention; older rows are truncated by a daily cron.
Status page renders
Public projects expose /status/<slug> and /status/<slug>/<version>. The page reads monitor_checks + the OverallBanner-state computed across all monitors. Updates every 10 minutes.
Per-version dashboards
Staging and production never share an incident page.
Default version still serves at /status/<slug>. Every other version gets its own URL at /status/<slug>/<version>. Customers on v1 don't see your v2 churn.
Public projects auto-expose the page. Private projects stay dashboard-only — same scoping as the docs site.
Brandable: logo, accent colour, favicon — all read from `projects.branding`. Same source of truth the docs header uses.
Version switcher in the header lets visitors flip between active branches. Subdomain routing on Business plans.
/status/acmeDefault versionFalls through to whichever version is marked default. Existing customer bookmarks keep working when you re-default.
/status/acme/v2Production · v2Per-version monitor scope. Customers on v2 see only v2 incidents.
/status/acme/v3-rcPre-release · v3-rcA staging branch's monitors live here. Public if the project's public, otherwise dashboard-only.
Monitor row
What each row shows on the public page.
POST /v2/checkout
Last checked 2m ago · 210ms
97.5%
24h
Status dot
Green for 2xx; amber for 4xx/5xx; muted dot if there's no check yet.
Method + path
Mono, with the method greyed out so the path is visually primary.
Last checked + latency
Relative time + raw ms. Both come from the most recent monitor_checks row.
24h uptime %
Computed across the rolling 24-hour window of checks. One number, decimal precision.
Continuous uptime bar
One segment per check, oldest → newest. 1px background-coloured dividers separate segments.
State palette
Emerald = ok, amber = degraded (4xx/5xx), destructive = down (no response).
Plan tiers
Monitoring + status pages on every paid plan.
Free
—
- No monitor toggles
- No public status page
- Upgrade to enable
Pro
10-min probes
- Per-endpoint monitor toggles
- 14-day check retention
- Public /status/<slug> page
- Per-version status pages
- GraphQL introspection probes
Business
10-min probes
- Everything in Pro
- Custom domain on the docs
- Priority support
- SLA on probe delivery
Pairs well with
Spec Diff
When the diff flags a removed endpoint, monitoring auto-stops probing it. No alarms on operations you intentionally killed.
Webhooks playground
Pipe an outbound alert webhook to your Slack inbox URL when a monitor flips down. Sign + replay any captured incident notification.
Docs page builder
Status URL is a one-line markdown intro on your top-level page — visitors get a live health pill on every visit.
The status page customers will actually bookmark.
Pro plan turns on per-endpoint probes and a brandable public status page at /status/<slug>. $9/month flat.