β all 71 tracked mock & placeholder APIs
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.
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.
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):
<!-- Markdown -->
[](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.
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 β
| Checked at (UTC) | Result | Time |
|---|---|---|
| 2026-09-11T19:00:22Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 343βms |
| 2026-09-11T19:00:14Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 288βms |
| 2026-09-11T18:00:27Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 736βms |
| 2026-09-11T17:00:33Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 739βms |
| 2026-09-11T16:00:24Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 715βms |
| 2026-09-11T15:13:33Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 879βms |
| 2026-09-11T14:00:57Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 788βms |
| 2026-09-11T12:00:45Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 111βms |
| 2026-09-11T11:00:45Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 126βms |
| 2026-09-11T10:00:45Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 145βms |
| 2026-09-11T09:00:45Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 142βms |
| 2026-09-11T08:00:45Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 134βms |
| 2026-09-11T07:00:45Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 134βms |
| 2026-09-11T06:01:09Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 272βms |
| 2026-09-11T05:01:08Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 256βms |
| 2026-09-11T04:01:10Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 266βms |
| 2026-09-11T03:01:09Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 266βms |
| 2026-09-11T02:01:05Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 265βms |
| 2026-09-11T01:01:07Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 279βms |
| 2026-09-11T00:01:08Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 254βms |
| 2026-09-10T23:01:07Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 265βms |
| 2026-09-10T22:01:06Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 273βms |
| 2026-09-10T21:00:26Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 746βms |
| 2026-09-10T20:00:28Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 764βms |
| 2026-09-10T19:00:33Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 761βms |
| 2026-09-10T18:00:39Z | HTTP 200 body is a missing_access_key error envelope β keyless access is gone | 785β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.