← all 71 tracked mock & placeholder APIs

Is exchangerate.host down?

FAILING right now β€” answering HTTP 200 to plain requests: body is a missing_access_key error envelope β€” keyless access is gone.

Last checked 2026-09-11T19:00:22Z Β· checked every hour Β· OK-rate 24h: 0% Β· 7d: 0% Β· raw JSON Β· Atom feed of its down/recovered events

Failing streak began 2026-08-29T06:30:44Z or earlier (14 days β€” dead, not a blip) Β· last successful check: none in the last 7 days

Context: The once-keyless exchange-rates API now requires an access_key (it moved under apilayer): keyless requests answer HTTP 200 with success:false and no rates β€” old tutorial curls fail silently.

What we check: GET https://api.exchangerate.host/latest β€” 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 api.exchangerate.host 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 exchangerate.host migration guide β†’ (it also says when exchangerate.host 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 api.exchangerate.host? Embed a live status badge β€” it re-renders from our latest check (cached 5 min):

api.exchangerate.host status badge

<!-- Markdown -->
[![api.exchangerate.host status](https://mockbird.mockbird.workers.dev/status/exchangerate-host/badge.svg)](https://mockbird.mockbird.workers.dev/status/exchangerate-host)

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

Get pinged when it goes down

Subscribe any webhook URL β€” no account needed. One message when api.exchangerate.host 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": "exchangerate-host", "url": "https://hooks.slack.com/services/T000/B000/XXXX"}'

Use "service": "*" to watch all 71 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-11T19:00:22ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone343 ms
2026-09-11T19:00:14ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone288 ms
2026-09-11T18:00:27ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone736 ms
2026-09-11T17:00:33ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone739 ms
2026-09-11T16:00:24ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone715 ms
2026-09-11T15:13:33ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone879 ms
2026-09-11T14:00:57ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone788 ms
2026-09-11T12:00:45ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone111 ms
2026-09-11T11:00:45ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone126 ms
2026-09-11T10:00:45ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone145 ms
2026-09-11T09:00:45ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone142 ms
2026-09-11T08:00:45ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone134 ms
2026-09-11T07:00:45ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone134 ms
2026-09-11T06:01:09ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone272 ms
2026-09-11T05:01:08ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone256 ms
2026-09-11T04:01:10ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone266 ms
2026-09-11T03:01:09ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone266 ms
2026-09-11T02:01:05ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone265 ms
2026-09-11T01:01:07ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone279 ms
2026-09-11T00:01:08ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone254 ms
2026-09-10T23:01:07ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone265 ms
2026-09-10T22:01:06ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone273 ms
2026-09-10T21:00:26ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone746 ms
2026-09-10T20:00:28ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone764 ms
2026-09-10T19:00:33ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone761 ms
2026-09-10T18:00:39ZHTTP 200 body is a missing_access_key error envelope β€” keyless access is gone785 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.