← all 90 tracked mock & placeholder APIs
UP right now — answered HTTP 200 in 90 ms.
Last checked 2026-09-26T01:00:49Z · checked every hour (a timeout/TLS/DNS blip on an otherwise-up service is confirmed with a same-run retry before it counts) · OK-rate 24h: 100% · 7d: 100% · raw JSON · Atom feed of its down/recovered events
Context: Keyless, fast, and stable for 15+ years — one of the nicest free APIs there is. The trap is CORS: the comic JSON sends no Access-Control-Allow-Origin header and preflight answers 405 (verified Sep 2026), so every in-browser fetch is blocked and tutorials reach for third-party CORS proxies. This probe runs server-side, so UP here does NOT mean browser-callable. Bonus traps: no search/list endpoint (an archive is one request per comic), and comic #404 genuinely doesn't exist — /404/info.0.json answers HTTP 404 with an HTML body.
What we check: GET https://xkcd.com/info.0.json — a plain, keyless request from Cloudflare's network with an honest bot UA, exactly what a tutorial curl or an <img> tag experiences. OK = HTTP 2xx/3xx within 8s. No retries, no cookies, no API keys.
If xkcd.com is failing (or you're tired of finding out mid-demo), Mockbird gives you a seeded, persistent REST API for your tutorial or side project — pick a preset (ecommerce/blog/saas) or import any JSON/CSV as your own dataset; writes persist, CORS on, no signup — free, no signup:
curl https://mockbird.mockbird.workers.dev/m/demo/products/1
# create your own in one click (no terminal): https://mockbird.mockbird.workers.dev/app#new=ecommerce
Read the honest xkcd JSON API (xkcd.com/info.0.json) migration guide → (it also says when xkcd JSON API (xkcd.com/info.0.json) is the better tool) or create your own mock API in one click.
Does your project's test suite or tutorial depend on xkcd.com? Embed a live status badge — it re-renders from our latest check (cached 5 min):
<!-- Markdown -->
[](https://mockbird.mockbird.workers.dev/status/xkcd)
<!-- HTML -->
<a href="https://mockbird.mockbird.workers.dev/status/xkcd"><img src="https://mockbird.mockbird.workers.dev/status/xkcd/badge.svg" alt="xkcd.com status"></a>
Green = answering plain GETs, red = network-dead, amber = answering but with an error status. Every tracked service has one; there's also a summary badge for all 90.
Subscribe any webhook URL — no account needed. One message when xkcd.com goes down, one when it recovers (debounced: two consecutive hourly checks must agree, so a single blip never fires). Slack and Discord incoming-webhook URLs get a formatted message; anything else gets an HMAC-signed JSON POST.
Or from a terminal / CI script:
curl -X POST https://mockbird.mockbird.workers.dev/api/status/watch \
-H "content-type: application/json" \
-d '{"service": "xkcd", "url": "https://hooks.slack.com/services/T000/B000/XXXX"}'
Use "service": "*" to watch all 90 tracked services at once. The response includes an unsubscribe curl; 5 consecutive failed deliveries auto-unsubscribe. No webhook? Omit "url" to get a pollable subscription instead — GET the returned poll URL anytime for the transitions since your last poll. Full API details →
The same checker can watch your own URL: POST /api/status/monitor {"url": "https://api.example.com/health", "notify": "<webhook>"} — every 30 minutes, alert on down + recovery, free, no account. Monitor API →
| Checked at (UTC) | Result | Time |
|---|---|---|
| 2026-09-26T01:00:49Z | OK 200 | 90 ms |
| 2026-09-26T00:00:51Z | OK 200 | 71 ms |
| 2026-09-25T23:00:52Z | OK 200 | 17 ms |
| 2026-09-25T22:00:52Z | OK 200 | 86 ms |
| 2026-09-25T21:01:06Z | OK 200 | 65 ms |
| 2026-09-25T20:00:58Z | OK 200 | 85 ms |
| 2026-09-25T19:01:18Z | OK 200 | 108 ms |
| 2026-09-25T18:01:13Z | OK 200 | 73 ms |
| 2026-09-25T17:01:12Z | OK 200 | 78 ms |
| 2026-09-25T16:01:04Z | OK 200 | 88 ms |
| 2026-09-25T15:01:10Z | OK 200 | 73 ms |
| 2026-09-25T14:01:24Z | OK 200 | 113 ms |
| 2026-09-25T13:01:16Z | OK 200 | 75 ms |
| 2026-09-25T12:01:07Z | OK 200 | 152 ms |
| 2026-09-25T11:01:18Z | OK 200 | 130 ms |
| 2026-09-25T10:01:01Z | OK 200 | 44 ms |
| 2026-09-25T09:00:56Z | OK 200 | 136 ms |
| 2026-09-25T08:01:13Z | OK 200 | 72 ms |
| 2026-09-25T07:01:06Z | OK 200 | 87 ms |
| 2026-09-25T06:01:08Z | OK 200 | 67 ms |
| 2026-09-25T05:00:49Z | OK 200 | 96 ms |
| 2026-09-25T04:00:47Z | OK 200 | 149 ms |
| 2026-09-25T03:00:57Z | OK 200 | 82 ms |
| 2026-09-25T02:00:53Z | OK 200 | 162 ms |
| 2026-09-25T01:00:48Z | OK 200 | 72 ms |
| 2026-09-25T00:00:52Z | OK 200 | 70 ms |
Bias disclosure: this page is run by Mockbird, a free hosted mock-API service. The status data is real and logged verbatim (pull it yourself), and the linked guides say when the incumbent wins.