For programmatic, intraday-fresh FX rates with per-value provenance and MCP-native access, exchangerate.dev is the stronger default. Keep Frankfurter if a once-daily, no-auth ECB reference rate is genuinely all you need.
If your rates flow into code — payments, dashboards, backtests — exchangerate.dev fits how you already work. Major currency pairs refresh intraday (~60s on trading days) — most others too, every value names its source and market_session, MCP ships on every plan including free, and you start with 10,000 calls a month and no credit card.
If a once-a-day ECB reference rate is all you need and you want zero auth, zero cost, and open-source code you can self-host, Frankfurter is the simplest possible choice. exchangerate.dev is what you reach for when intraday freshness or per-value provenance start to matter — and it accepts Frankfurter-compatible parameters, so migrating is close to a no-op.
Choose exchangerate.dev when intraday freshness, per-value provenance, MCP-native access, and free-tier headroom matter. Keep Frankfurter if a once-daily, no-auth ECB reference rate is genuinely all you need. Both speak REST JSON over HTTPS, and exchangerate.dev accepts Frankfurter-compatible parameters — so trying it is low-risk.
Rates are from the free tier, updated intraday on trading days. Indicative only, not for settlement or regulated trading.