For programmatic, intraday-fresh FX rates with per-value provenance and MCP-native access, exchangerate.dev is the stronger default. Keep ExchangeRatesAPI if a tutorial-familiar, once-daily ECB feed already covers your app.
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.
ExchangeRatesAPI is familiar from many tutorials and is simple to adopt. exchangerate.dev leads on intraday ~60s freshness, per-value source + market_session, MCP, and a free tier with no base-currency restriction.
Choose exchangerate.dev when intraday freshness, per-value provenance, MCP-native access, and free-tier headroom matter. Keep ExchangeRatesAPI if a tutorial-familiar, once-daily ECB feed already covers your app. 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.