Base URL: https://uptimecove.com
Public. Returns status page and monitors with daily uptime. Cache-Control: no-store
{
"page": "default",
"monitors": [{ "id": 1, "name": "API", "status": "up", "dailyUptime": [...] }]
}Auth required. Create monitor. Body: name, url, method?, expected_status?, interval_seconds?, timeout_ms?, body_must_contain?, body_must_not_contain?, max_response_time_ms?, custom_headers? (JSON)
Form posts redirect to /dashboard, JSON returns 201.
Update monitor. Same fields as create, partial allowed.
Pause/resume or delete. Returns 204 or 404.
Auth required. Forces checked batch for due monitors. Returns { checked, failed }
List/create status pages. Fields: title, slug, description, branding_logo_url, branding_theme, custom_domain, is_public
Update/delete page. Default page protected if sole page.
Set ordered monitor ids: { monitorIds: [1,2] }
Types: email, webhook, slack, discord. Config: url/webhook_url, to, endpoint etc.
Resolve incident or add timeline update (message, author).
Maintenance windows to suppress alerts. Fields: title, monitor_id (null=global), start_at, end_at (unix sec or ISO), description.
Single admin token via ADMIN_TOKEN. Login POSTs to /api/auth/login sets uc_session HttpOnly session cookie (7d, Secure in prod, Lax). All /dashboard and /api/* except /api/status/* and /api/auth/* require it. Sessions table validates and revokes on token rotation.
See repo for OpenAPI JSON when available. PRs to improve docs welcome.