Frankfurter
Central-bank FX rates. MIT-licensed, self-hostable, commercial-safe.
Frankfurter tracks reference exchange rates from the European Central Bank and friends. It is the rare free API with zero strings attached: MIT-licensed code, self-hostable via Docker, explicit yes to commercial use, and no quotas beyond abuse-prevention rate limiting. The gold standard for what a free API should be.
GET https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP,JPY
{
"amount": 1,
"base": "USD",
"date": "2026-07-03",
"rates": {
"EUR": 0.9207,
"GBP": 0.7811,
"JPY": 158.42
}
}curl "https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP,JPY"const res = await fetch("https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP,JPY");
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP,JPY")
print(res.json())/latest?base=USD&symbols=EUR,GBP,JPYPROBEDLatest reference FX rates from ECB sources — commercial-safe.
/2024-01-15?base=USD&symbols=EURHistorical rates for a specific ISO date.
/currenciesList all supported currency codes.
We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.
Stable. No schema drift observed since monitoring began — the response shape has not changed under our checks.
Frankfurter: common questions
Is Frankfurter free to use?
Yes — Frankfurter is a free finance API. Free tier: Unlimited — abuse-rate-limited only. Commercial use is allowed on the free tier.
Does Frankfurter need an API key?
No — Frankfurter needs no API key or signup. You can call it straight away; rate limits still apply (Unpublished, generous).
Can I call Frankfurter from the browser?
Yes — Frankfurter 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 Frankfurter up right now?
As of our last scheduled check, Frankfurter is healthy. We re-probe it every sweep — the status badge and uptime chart above always show the latest.