← all 90 tracked mock & placeholder APIs

Is Open Library API (openlibrary.org) down?

FAILING right now — answering HTTP 422 to plain requests.

Last checked 2026-09-26T01:30:50Z · 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: 0% · 7d: 0% · raw JSON · Atom feed of its down/recovered events

Failing streak began 2026-09-19T02:30:27Z or earlier (7 days — dead, not a blip) · last successful check: none in the last 7 days

Context: The Internet Archive's open book catalog — keyless, free, tens of millions of records, and the API behind most book-search tutorials. A nonprofit treasure that behaves like one: in our timed runs (Sep 2026) searches took 2–5s when healthy and ~1 in 6 calls hung ~15s then dropped at the TLS handshake with no HTTP status (fetch throws TypeError). Their docs ask for 1 req/sec (3/sec with an identifying User-Agent). Shape traps: description is a plain string on some works and {type,value} on others; works list authors as bare keys (N+1 for names).

What we check: GET https://openlibrary.org/search.json?q=the&limit=1 — 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.

Need reference data you own?

If openlibrary.org is failing (or you're tired of finding out mid-demo), Mockbird gives you your own copy of the reference data — 250 countries (names, ISO codes, capitals, regions, currencies, flags) or 170+ currencies with dated sample rates — served as a queryable REST API in one pipe, no key, no monthly cap — free, no signup:

curl -s https://mockbird.mockbird.workers.dev/data/countries.db.json \
| curl -s -X POST 'https://mockbird.mockbird.workers.dev/api/projects/import?name=countries' \
    --data-binary @-
# then e.g. ?region=Europe or ?code=FR on /m/YOUR_ID/countries
# currencies + sample rates: /data/currencies.db.json (see /guides/mock-exchange-rates-api)

Read the honest Open Library API (openlibrary.org) migration guide → (it also says when Open Library API (openlibrary.org) is the better tool) or create your own mock API in one click.

README badge

Does your project's test suite or tutorial depend on openlibrary.org? Embed a live status badge — it re-renders from our latest check (cached 5 min):

openlibrary.org status badge

<!-- Markdown -->
[![openlibrary.org status](https://mockbird.mockbird.workers.dev/status/openlibrary/badge.svg)](https://mockbird.mockbird.workers.dev/status/openlibrary)

<!-- HTML -->
<a href="https://mockbird.mockbird.workers.dev/status/openlibrary"><img src="https://mockbird.mockbird.workers.dev/status/openlibrary/badge.svg" alt="openlibrary.org 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.

Get pinged when it goes down

Subscribe any webhook URL — no account needed. One message when openlibrary.org 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": "openlibrary", "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 →

Recent checks

Checked at (UTC)ResultTime
2026-09-26T01:30:50ZHTTP 422849 ms
2026-09-26T00:30:43ZHTTP 422741 ms
2026-09-25T23:30:44ZHTTP 422732 ms
2026-09-25T22:30:45ZHTTP 422877 ms
2026-09-25T21:30:48ZHTTP 4227366 ms
2026-09-25T20:30:50ZHTTP 422953 ms
2026-09-25T19:30:59ZHTTP 422998 ms
2026-09-25T18:30:53ZHTTP 4222408 ms
2026-09-25T17:30:56ZHTTP 422985 ms
2026-09-25T16:30:55ZHTTP 4222329 ms
2026-09-25T15:30:54ZHTTP 4221519 ms
2026-09-25T14:31:04ZHTTP 4225082 ms
2026-09-25T13:31:10ZHTTP 422875 ms
2026-09-25T12:31:05ZHTTP 422879 ms
2026-09-25T11:31:02ZHTTP 4221813 ms
2026-09-25T10:30:54ZHTTP 4221575 ms
2026-09-25T09:30:52ZHTTP 4221440 ms
2026-09-25T08:31:02ZHTTP 4221313 ms
2026-09-25T07:30:56ZHTTP 4223594 ms
2026-09-25T06:30:51ZHTTP 422889 ms
2026-09-25T05:30:48ZHTTP 422669 ms
2026-09-25T04:30:47ZHTTP 422642 ms
2026-09-25T03:30:42ZHTTP 4221070 ms
2026-09-25T02:30:42ZHTTP 422993 ms
2026-09-25T01:30:43ZHTTP 422940 ms
2026-09-25T00:30:45ZHTTP 4221862 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.