API Documentation

All endpoints use JSON. Authenticated endpoints require a session cookie (set by login). API key auth coming soon for Pro+ plans.

POST/api/auth/register

Create a new account

{ "email": "you@example.com", "password": "...", "name": "..." }
POST/api/auth/login

Log in and get session cookie

{ "email": "you@example.com", "password": "..." }
GET/api/auth/meAuth required

Get current user info

GET/api/monitorsAuth required

List all your monitors

POST/api/monitorsAuth required

Create a new monitor

{ "name": "My Site", "url": "https://example.com", "method": "GET", "checkInterval": 180 }
GET/api/monitors/:idAuth required

Get monitor details + recent checks

PATCH/api/monitors/:idAuth required

Update monitor settings

{ "name": "Updated Name", "checkInterval": 60 }
DELETE/api/monitors/:idAuth required

Delete a monitor

POST/api/monitors/:id/checkAuth required

Trigger an immediate check

GET/api/monitors/:id/statsAuth required

Get uptime stats (24h, 7d, 30d, 90d)

GET/api/monitors/:id/badge

Get SVG uptime badge (public, no auth)

POST/api/monitors/bulkAuth required

Bulk create monitors from URL list

{ "urls": ["https://example.com", "https://api.example.com"] }
GET/api/status-pagesAuth required

List your status pages

POST/api/status-pagesAuth required

Create a status page

{ "title": "My Status", "slug": "my-status", "monitorIds": ["..."] }
GET/api/status-pages/:slug/public

Get public status page data (no auth)

GET/api/monitors/:id/percentilesAuth required

Response time percentiles (p50, p95, p99)

GET/api/monitors/:id/reportAuth required

Generate uptime report (daily breakdown)

GET/api/monitors/:id/sslAuth required

SSL certificate details for a monitor

POST/api/monitors/:id/duplicateAuth required

Duplicate a monitor with all settings

POST/api/monitors/importAuth required

Import monitors from JSON

{ "monitors": [{ "name": "...", "url": "...", "method": "GET" }] }
GET/api/monitors/searchAuth required

Search monitors by name/URL

POST/api/monitors/pause-allAuth required

Pause or resume all monitors

{ "paused": true }
GET/POST/api/heartbeat/:monitor-id

Receive heartbeat ping from your service (no auth)

POST/api/status-pages/:slug/subscribe

Subscribe to status page notifications (no auth)

{ "email": "user@example.com" }
GET/api/maintenanceAuth required

List maintenance windows

POST/api/maintenanceAuth required

Create maintenance window

{ "title": "...", "startsAt": "...", "endsAt": "...", "monitorIds": ["..."] }
GET/api/dashboard/summaryAuth required

Aggregate dashboard stats (uptime, response times)

GET/api/health

Service health check (no auth)

GET/api/stats/public

Public aggregate stats (no auth)

API access on Pro and Business plans

Full API access is available on Pro ($5/mo) and Business ($15/mo) plans. API key authentication is coming soon — for now, use session cookies.