API
Read live status and history as JSON. Results come from stored checks, so requests are fast and cheap. You need a key: create one free.
Try it
curl https://deadoralive.site/api/v1/sites/x \ -H "Authorization: Bearer dk_live_your_key"
You can also send the key as an X-API-Key header. The response looks like this:
{
"slug": "x",
"name": "X",
"domain": "x.com",
"group": "social",
"status": "up",
"status_label": "Up",
"response_ms": 412,
"http_status": 200,
"last_checked": "2026-09-30T12:41:07.120Z",
"state_since": "2026-09-29T08:02:11.400Z",
"uptime": { "24h": 100, "7d": 99.94, "30d": 99.97, "90d": 99.96 }
}Endpoints
GET /api/v1/sites- Every monitored site with its current status. Filter with ?group= or ?status=up|degraded|down|unverified.
GET /api/v1/sites/{slug}- One site, with uptime over 24 hours, 7, 30 and 90 days.
GET /api/v1/sites/{slug}/history- Response times and outages. ?range=24h (10 minute points), 7d (hourly) or 90d (daily uptime).
GET /api/v1/groups- The groups and which sites belong to each.
GET /api/v1/incidents- Recent outages, newest first.
The machine-readable spec is at /api/v1/openapi.json. It needs no key.
Adult sites are left out unless you add ?include_adult=true.
Statuses
up, degraded (slow), down, and unverified (the site blocked our check). Read how it works before building alerts on unverified.
Limits
Free keys: 30 requests a minute, 1,000 a day, 2 keys per account. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Over the limit you get 429 with a Retry-After header. Need more? Higher plans are coming.
Errors
Errors are JSON with an error code and a message: missing_api_key and invalid_api_key (401), not_found (404), rate_limited and quota_exceeded (429).