upok.dev — uptime checks with email alerts GETs a URL every 10 minutes; 2xx = up. Emails you when a check goes down and when it comes back. Every check has a public status page. No signup. QUICKSTART 1. Key: curl -X POST https://upok.dev/v1/keys 2. Check: curl -X POST https://upok.dev/v1/checks -H "Authorization: Bearer KEY" \ -H "Content-Type: application/json" \ -d '{"url":"https://api.example.com/health","email":"you@example.com"}' 3. Status: curl https://upok.dev/v1/checks/ID -H "Authorization: Bearer KEY" ENDPOINTS (auth) = "Authorization: Bearer upok_...". Errors: {"error": "..."} with the matching HTTP status. Timestamps: epoch ms. POST /v1/keys -> 201 {"key"}. Never stored; keep it. POST /v1/checks (auth) body {"url", "email", "name"?} (name <= 80 chars) -> 201 check | 400 invalid | 429 over 100 checks GET /v1/checks (auth) -> {"checks": [check, ...]} GET /v1/checks/:id (auth) -> check | 404 if not yours DELETE /v1/checks/:id (auth) -> 204 GET /c/:id.json -> check without email fields, plus "incidents": [{started_at, ended_at|null, duration_ms|null, error}] "recent": [{ts, ok, latency_ms, status}] (last 144) GET /c/:id status page (HTML) GET /llms.txt this document No auth; reached from mails and the landing form: GET /confirm/:account/:token asks first; POST to the same URL enables alerts GET /c/:id/delete/:token asks first; never deletes on GET POST /c/:id/delete/:token deletes the check POST /new form (url, email): key + check in one step check = { "id", "name", "url", "email", "email_confirmed", "status": "pending" | "up" | "down", "since": , "last_checked_at", "last_status", "last_latency_ms", "last_error", "uptime": {"24h", "7d", "30d"} (ratio of ok results, null without data) "interval_seconds": 600, "status_url", "created_at" } RULES - Every 10 minutes, 10 s timeout, redirects followed. 2xx = up; anything else is retried once and the retry is what gets recorded. - Mail only on change: one when down, one when back up. - Alerts need the address confirmed once per key. The first check for an address sends a confirmation link; until it is confirmed, checks run but no mail is sent (email_confirmed: false). - Alert mails carry the status page link and a delete link. - History: 30 days.