Exchangerate.dev

Exchangerate.dev — Live & historical FX, 168 pairs back to 1999, Frankfurt…

📈 FinanceDYINGchecked 11h ago
AUTH NONECORS AGENT HTTPS COMMERCIAL ?

Exchangerate.dev exposes live & historical FX, 168 pairs back to 1999, Frankfurter-compatible, free 10k/mo We verified a keyless GET endpoint returning JSON (Currency Exchange). Check the provider docs for rate limits and terms before production use.

63HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: 63 · dying
Uptime history
71.6%90 days
51.7%30 days
336P50 · ms
807P95 · ms
operationalpartialdownno data
Response time · last 48 checks
Fastest 135 ms, slowest 636 ms, most recent 182 ms.
Live response samplecaptured by our last successful check
GET https://api.exchangerate.dev/v1/latest/USD

{
  "result": "success",
  "base": "USD",
  "source": "fred_daily",
  "sources": {
    "AUD": "live",
    "BGN": "ecb_daily",
    "BRL": "ecb_daily",
    "CAD": "live",
    "CHF": "live",
    "CNY": "ecb_daily",
    "CZK": "ecb_daily",
    "DKK": "ecb_daily"
  },
  "market_session": "weekend",
  "timestamp": "2026-07-05T14:52:56Z",
  "data_updated_at": "2026-06-26T00:00:00Z",
  "rates": {
    "AUD": 1.4415,
    "BGN": 1.70842,
    "BRL": 5.19619,
    "CAD": 1.42104,
    "CHF": 0.80358,
    "CNY": 6.78145,
    "CZK": 21.1338,
    "DKK": 6.52918
  }
}
Call itcurl · fetch · python
curl "https://api.exchangerate.dev/v1/latest/USD"
const res = await fetch("https://api.exchangerate.dev/v1/latest/USD");
const data = await res.json();
console.log(data);
import requests

res = requests.get("https://api.exchangerate.dev/v1/latest/USD")
print(res.json())
Endpoints · 6DyingFULL DOCS ↗
Dying — error rate climbing on GET /v1/latest/USD336 mschecked 11h ago
GET/v1/latest/USDPROBED

Exchangerate.dev — Live & historical FX, 168 pairs back to 1999, Frankfurt…

GET/v1

V1 — documented GET route.

GET/v1/1

V1 details by ID (example: 1).

GET/v1?limit=10

V1 — documented GET route.

GET/v1/search?q=test

Search by query parameters.

GET/v1/

V1 — documented GET route.

Machine-readable spec

We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.

Response-shape history

Stable. No schema drift observed since monitoring began — the response shape has not changed under our checks.

Exchangerate.dev: common questions

Is Exchangerate.dev free to use?

Yes — Exchangerate.dev is a free finance API. Free tier: Free — limits not published. Whether the free tier allows commercial use is unclear — check the provider docs.

Does Exchangerate.dev need an API key?

No — Exchangerate.dev needs no API key or signup. You can call it straight away; rate limits still apply (12 req/window · 11 remaining · resets 1783515720).

Can I call Exchangerate.dev from the browser?

Yes — Exchangerate.dev returns CORS headers over HTTPS, so front-end code can fetch it directly with no backend proxy. Use the fetch snippet on this page, or hit "Run live" to try it now.

Is Exchangerate.dev up right now?

As of our last scheduled check, Exchangerate.dev is dying with 71.6% uptime over 90 days and a 336 ms median response. We re-probe it every sweep — the status badge and uptime chart above always show the latest.