Use the Frankfurter API (https://api.frankfurter.app) for free, no-auth-required exchange rate data sourced from the European Central Bank; no API key or registration is needed.
Fetch the latest rates by GETting https://api.frankfurter.app/latest?from=USD&to=EUR,GBP,JPY; the response contains the base currency, date, and rates object.
Fetch historical rates for a specific date by GETting https://api.frankfurter.app/{YYYY-MM-DD}?from=EUR, substituting a past date; dates before 1999-01-04 are not available as ECB data starts from that date.
Fetch a range of historical rates by GETting https://api.frankfurter.app/{start_date}..{end_date}?from=USD&to=EUR; the response contains a rates object keyed by date.
For the ECB directly, the Statistical Data Warehouse API (https://data-api.ecb.europa.eu) provides exchange rate series but requires constructing a structured SDMX query and parsing XML or JSON responses, which is more complex than Frankfurter.
Known gotchas
ECB/Frankfurter rates are reference rates published on business days around 16:00 CET; they are not real-time market rates and should not be used for financial transactions or anything requiring intraday accuracy.
Frankfurter is a community-maintained open-source project, not an official ECB or commercial service; it has no SLA, and while it is generally reliable, production systems requiring high availability should proxy and cache the data or use a commercial provider.
The available currency list is limited to currencies tracked by the ECB (major currencies and some others); exotic or emerging market currencies are absent, and requests for unsupported currencies return a 404 or empty rates rather than a graceful error in all clients.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp