Exchangerate.dev

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

📈 FinanceHEALTHYchecked 10h 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.

66HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: 66 · healthy
Uptime history
74.7%90 days
86.2%30 days
224P50 · ms
810P95 · ms
operationalpartialdownno data
Response time · last 48 checks
Fastest 100 ms, slowest 770 ms, most recent 255 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 · 6HealthyFULL DOCS ↗
Monitored path responding — GET /v1/latest/USD224 mschecked 10h 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 healthy with 74.7% uptime over 90 days and a 224 ms median response. We re-probe it every sweep — the status badge and uptime chart above always show the latest.