← all 71 tracked mock & placeholder APIs

Is REST Countries (restcountries.com) down?

FAILING right now — answering HTTP 200 to plain requests: body is the legacy-API deprecation envelope (success:false, data:null).

Last checked 2026-09-11T19:30:44Z · 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: Retired every legacy version (/v1–/v4) in 2026: those URLs now answer HTTP 200 with an error envelope — res.ok passes, data is null. The current v5 requires an API key (free tier 1,000 req/month).

What we check: GET https://restcountries.com/v3.1/all?fields=name,cca2 — 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 restcountries.com 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 REST Countries (restcountries.com) migration guide → (it also says when REST Countries (restcountries.com) 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 restcountries.com? Embed a live status badge — it re-renders from our latest check (cached 5 min):

restcountries.com status badge

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

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

Get pinged when it goes down

Subscribe any webhook URL — no account needed. One message when restcountries.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": "restcountries", "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:30:44ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)40 ms
2026-09-11T19:30:23ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)231 ms
2026-09-11T18:30:12ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)24 ms
2026-09-11T17:30:24ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)49 ms
2026-09-11T16:30:20ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)28 ms
2026-09-11T13:30:56ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)87 ms
2026-09-11T12:30:46ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)59 ms
2026-09-11T11:30:46ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)44 ms
2026-09-11T10:30:46ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)61 ms
2026-09-11T09:30:46ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)56 ms
2026-09-11T08:30:46ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)162 ms
2026-09-11T07:30:46ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)46 ms
2026-09-11T06:30:46ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)141 ms
2026-09-11T05:31:09ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)24 ms
2026-09-11T04:31:08ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)27 ms
2026-09-11T03:31:03ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)31 ms
2026-09-11T02:31:07ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)22 ms
2026-09-11T01:31:04ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)36 ms
2026-09-11T00:31:07ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)25 ms
2026-09-10T23:31:04ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)27 ms
2026-09-10T22:31:05ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)25 ms
2026-09-10T21:31:05ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)44 ms
2026-09-10T20:30:24ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)42 ms
2026-09-10T19:30:24ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)32 ms
2026-09-10T18:30:27ZHTTP 200 body is the legacy-API deprecation envelope (success:false, data:null)46 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.