REST API for uptime monitoring

Automate monitor creation, trigger incidents and manage status pages — from your CI/CD pipeline or scripts. The interactive reference lives at /api/docs.

Authentication — session tokens

Log in with POST /api/auth/login to receive a JWT, then pass it as a Bearer token on every request (the dashboard uses the same token as an HTTP-only cookie). Tokens are valid for 7 days and are scoped to your organization — one token manages all your monitors and status pages.

Quick start — 5 minutes to full monitoring

  1. Create a monitor. POST /api/monitors with a URL, check type (http, tcp or keyword) and interval.
  2. Let it confirm downtime. Two consecutive failures open an incident automatically; you can also post one yourself with POST /api/incidents.
  3. Resolve it. PATCH /api/incidents/:id moves an incident through investigating → identified → monitoring → resolved, and the status page is re-rendered on every change.

Full API surface

Monitors: GET /api/monitors, POST /api/monitors, GET /api/monitors/:id, PATCH /api/monitors/:id, DELETE /api/monitors/:id, GET /api/monitors/:id/checks.

Incidents: GET /api/incidents, POST /api/incidents, GET /api/incidents/:id, PATCH /api/incidents/:id, POST /api/incidents/:id/updates.

Status pages: GET /api/status-pages, GET /api/status-pages/:id, PUT /api/status-pages/:id/monitors.

Maintenance: GET /api/maintenance-windows, POST /api/maintenance-windows, PATCH /api/maintenance-windows/:id, DELETE /api/maintenance-windows/:id.

Public (no auth): the status page JSON feed at /status/<slug> and the SVG uptime badge at /badge/<slug>.svg.

Open the interactive API reference

UptimeCrow — open-source status pages with built-in uptime monitoring. AGPL-3.0. Privacy · Terms · llms.txt