← all 71 tracked mock & placeholder APIs

Is CoinDesk Bitcoin Price Index (api.coindesk.com) down?

FAILING right now — answering HTTP 530 to plain requests.

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

Failing streak began 2026-08-31T15:30:00Z or earlier (11 days — dead, not a blip) · last successful check: none in the last 7 days

Context: The classic keyless BTC-price API from a decade of crypto tutorials is gone — api.coindesk.com no longer resolves (direct curls fail DNS with NXDOMAIN; checks from Cloudflare's network get HTTP 530), so every v1/bpi/currentprice.json call in those tutorials fails. CoinDesk's current data API lives on a different host (developers.coindesk.com).

What we check: GET https://api.coindesk.com/v1/bpi/currentprice.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.

Need reference data you own?

If api.coindesk.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 CoinDesk Bitcoin Price Index (api.coindesk.com) migration guide → (it also says when CoinDesk Bitcoin Price Index (api.coindesk.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 api.coindesk.com? Embed a live status badge — it re-renders from our latest check (cached 5 min):

api.coindesk.com status badge

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

<!-- HTML -->
<a href="https://mockbird.mockbird.workers.dev/status/coindesk-bpi"><img src="https://mockbird.mockbird.workers.dev/status/coindesk-bpi/badge.svg" alt="api.coindesk.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 api.coindesk.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": "coindesk-bpi", "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-11T20:30:46ZHTTP 5306 ms
2026-09-11T20:30:22ZHTTP 53022 ms
2026-09-11T19:30:44ZHTTP 53010 ms
2026-09-11T19:30:23ZHTTP 53094 ms
2026-09-11T18:30:12ZHTTP 53010 ms
2026-09-11T17:30:24ZHTTP 53015 ms
2026-09-11T16:30:20ZHTTP 53017 ms
2026-09-11T13:30:57ZHTTP 53033 ms
2026-09-11T12:30:46ZHTTP 5308 ms
2026-09-11T11:30:46ZHTTP 5306 ms
2026-09-11T10:30:46ZHTTP 5308 ms
2026-09-11T09:30:46ZHTTP 5308 ms
2026-09-11T08:30:46ZHTTP 5305 ms
2026-09-11T07:30:46ZHTTP 53016 ms
2026-09-11T06:30:46ZHTTP 53081 ms
2026-09-11T05:31:09ZHTTP 5304 ms
2026-09-11T04:31:08ZHTTP 5305 ms
2026-09-11T03:31:03ZHTTP 5306 ms
2026-09-11T02:31:07ZHTTP 5303 ms
2026-09-11T01:31:05ZHTTP 5305 ms
2026-09-11T00:31:07ZHTTP 5304 ms
2026-09-10T23:31:04ZHTTP 5304 ms
2026-09-10T22:31:05ZHTTP 5304 ms
2026-09-10T21:31:05ZHTTP 53016 ms
2026-09-10T20:30:24ZHTTP 5307 ms
2026-09-10T19:30:24ZHTTP 5308 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.