Is-it-down API
Everything this site shows is available as JSON from the same endpoints the pages use. No API key, no cookies, CORS enabled, checks run from an independent server in Singapore. There is also an MCP server so AI assistants can run the same checks.
Check a website
GET https://downforjustmeoreveryone.com/api/check?domain=reddit.com Returns the live verdict. The domain is normalised (scheme, path, port and query are ignored; the host is checked as given, so www.example.com and example.com are two checks).
{
"domain": "reddit.com",
"up": true,
"state": "up",
"status": 200,
"latencyMs": 412,
"checkedAt": "2026-09-11T14:02:11.938Z",
"reason": "200 OK",
"ip": "151.101.1.140",
"scheme": "https",
"finalUrl": "https://www.reddit.com/",
"redirected": true,
"server": "snooserv",
"tls": null
} | Field | Meaning |
|---|---|
up | true when the host answered with anything below HTTP 500. Bot-blocks and auth walls (401/403/429…) still count as up — the site is alive, it just refused an automated request. |
state | One of up, slow (answered, but over 4 s), error (answered with a genuine 4xx such as 404), maintenance (503), down. |
status | Final HTTP status after redirects, or null when the connection failed. |
latencyMs | Total time for the probe, including redirects and any retry as a browser. |
reason | Human-readable explanation (200 OK, Timed out, Domain not found…). |
checkedAt | ISO timestamp. Results are cached for 30 s per domain, so two calls inside that window return the same check. |
ip, scheme, finalUrl, redirected, server | Diagnostics: resolved address, protocol that worked, where redirects ended, and the Server header. |
Errors come back as { "error": "…" } with HTTP 400 (bad domain) or 429 (rate limit).
TLS certificate
GET https://downforjustmeoreveryone.com/api/cert?domain=reddit.com
→ { "domain": "reddit.com", "tls": { "daysRemaining": 61, "validTo": "…", "issuer": "…" } } Status badge and feed
GET https://downforjustmeoreveryone.com/badge/reddit.com.svg— an SVG badge that says up/down, for READMEs and status pages. Link it tohttps://downforjustmeoreveryone.com/reddit.com.GET https://downforjustmeoreveryone.com/feed/reddit.com.xml— RSS of up/down transitions for a curated domain over the last 7 days.https://downforjustmeoreveryone.com/reddit.com/outages— the human-readable outage timeline.
MCP server (for AI assistants)
The same checks are available to Claude, ChatGPT, Cursor and any other Model Context Protocol client as a remote server. No key, no sign-up, read-only.
https://downforjustmeoreveryone.com/mcp | Tool | What it returns |
|---|---|
check_site | Live verdict for any public domain: the one-sentence answer, status, latency, redirect target, the other region's view, user reports in the last hour. |
list_outages | Monitored sites confirmed down right now (two consecutive failed checks, no region seeing them up), optionally by category. |
site_history | Uptime over 24 h and up to 7 days, every outage in the window, last seen down, current state — for monitored sites. |
check_certificate | TLS expiry: days remaining, expiry date, issuer. |
list_monitored_sites | The monitored list by category or text query. |
Add it to your assistant:
# Claude Code
claude mcp add --transport http is-it-down https://downforjustmeoreveryone.com/mcp
# Claude.ai / Claude Desktop: Settings → Connectors → Add custom connector → paste the URL
# Cursor, Windsurf, VS Code and most others (mcp.json)
{ "mcpServers": { "is-it-down": { "url": "https://downforjustmeoreveryone.com/mcp" } } } Streamable HTTP transport, stateless, JSON responses (no event streams), same limits as the REST API. Try it by hand:
curl -s https://downforjustmeoreveryone.com/mcp -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_site","arguments":{"domain":"github.com"}}}' Examples
curl -s "https://downforjustmeoreveryone.com/api/check?domain=github.com" | jq .state const r = await fetch('https://downforjustmeoreveryone.com/api/check?domain=github.com');
const { up, state, latencyMs } = await r.json(); Limits and terms
- Rate limit: 20 requests per minute per IP across all endpoints. Need more? Get in touch.
- Be kind to the target: we cache each domain for 30 s so nobody can use this to hammer a third-party site.
- Attribution: free for personal and commercial use; please link to Is This Site Down? where you show the result. Every response also carries an
X-Attributionheader. - No guarantees: best-effort service, no SLA. A verdict is one HTTP probe from Singapore — a regional block or a slow route can differ from what you see.
- Privacy: the API sets no cookies and stores no IP addresses; see the privacy policy.