AllRatesToday vs Frankfurter: When Free ECB Rates Stop Being Enough
Let's start with something most API comparisons won't say: Frankfurter is genuinely good — and getting better. It's free, open-source, keyless and unlimited. Its classic v1 API serves the European Central Bank's daily reference table, and in 2026 its v2 grew into an aggregator of official rates from 80+ central banks. If a once-daily official fixing covers your needs, use Frankfurter and don't look back.
This comparison is for the moment that stops being true. Developers don't leave Frankfurter because something better is advertised — they leave because they hit a wall its official-fixings-only architecture cannot cross. Even after the v2 expansion there are five of them, and which one you hit first depends on what you're building.
At a glance
| Frankfurter | AllRatesToday | |
|---|---|---|
| Price | Free (open source) | Free tier; paid from €4.99/mo |
| Real-time market rates | No — official daily fixings only | Yes — 160+ currencies, every 60 seconds |
| Weekends & holidays | No publication | Market rates always current |
| Official central-bank rates | 80+ banks (v2; v1 is ECB-only) | 93 central banks |
| Tax-authority rates | Not offered | HMRC, US Treasury, Swiss BAZG |
| Rate types | One official rate per pair | Mid-market + official buy/sell where published |
| History | ECB from 1999 | ECB 1999, SNB 1914, HKMA 1981, RBI 2003… |
| Formats | JSON | JSON, CSV, XML, XLSX + no-code downloads |
| AI/agent tooling | — | MCP servers, SDKs (JS/Python/PHP/Rust) |
| Support | Community, best-effort | Support with a company behind it |
Frankfurter details are based on its public documentation at frankfurter.dev and may change. Check the project's site for the latest.
Wall 1: Everything is a once-a-day fixing
This is the architectural wall the 2026 v2 expansion didn't touch: every number Frankfurter serves — v1's ECB table and v2's 80+ central-bank aggregation alike — is an official rate published at most once per working day. If your checkout reprices in near real time, if you're monitoring a moving market, or if a user asks "what's the rate right now?" at 9am, yesterday afternoon's fixing is the wrong answer, from any of its 80 sources.
AllRatesToday serves real-time mid-market rates for 160+ currencies fetched live on each request — alongside the official tables, on the same key. The difference isn't academic: on a volatile day a currency pair can move well over a percent between two daily fixings.
Wall 2: Weekends don't exist
Official publishers don't publish on Saturdays, Sundays, or holidays — so neither does Frankfurter. Your app doesn't get weekends off: an e-commerce site sells all weekend, and "rate as of Friday afternoon" silently drifts from the market until Monday. AllRatesToday's market rates update every day of the year, and its official-rates endpoints handle non-publication days properly: they return the most recent published table with the publisher's own rate_date and an explicit flag, which is exactly what compliance rules expect.
Wall 3: Weekends don't exist
No ECB publication means no Frankfurter data on Saturdays, Sundays, or ECB holidays. Your app doesn't get weekends off — an e-commerce site sells all weekend, and "rate as of Friday afternoon" silently drifts from the market until Monday. AllRatesToday serves current rates every day of the year, and its official-rates endpoints handle non-publication days properly: they return the most recent published table with the bank's own rate_date and an explicit flag, which is exactly what compliance rules expect.
Wall 4: Tax authorities aren't central banks
Frankfurter's v2 aggregates central banks — but official-rate requirements are often written around a different publisher entirely. A UK customs declaration cites HMRC's monthly rate; a US government filing cites the US Treasury's quarterly table; Swiss customs cite BAZG. None of those tables are in Frankfurter's catalog.
AllRatesToday serves all three tax authorities alongside 93 central banks through one API — with the publication-calendar endpoints, CSV/Excel output, and an in-force view that handles the US Treasury's between-quarter amendments, because a quarterly table that gets amended mid-quarter is exactly the kind of trap a generic aggregator misses. Over a recent year, the widest gap between the live GBP/USD market rate and HMRC's official rate-in-force was 3.7% — real money on a real invoice. (More in our tax authority rates guide.)
Wall 5: Nobody is on the hook
Frankfurter is a volunteer-run open-source project. That's admirable — and fine for a side project. But when a business books revenue, closes months, or settles invoices off a rate feed, someone needs to be answerable when the feed misbehaves. "Self-host it if you need an SLA" converts a €4.99/month problem into an ops responsibility with pager duty. Paid infrastructure exists precisely because accountability is a feature.
What switching looks like
The APIs are close enough that migration is usually under an hour. A Frankfurter call:
GET https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP becomes:
GET https://allratestoday.com/api/v1/rates?source=USD&target=EUR,GBP
Authorization: Bearer art_live_your_key Response shapes differ slightly (Frankfurter returns a rates map; AllRatesToday returns an array of rate objects with timestamps), but the concepts — base, targets, historical dates — map one to one. Official SDKs for JavaScript, Python, PHP and Rust remove even that step, and the full mapping lives on our Frankfurter alternative page.
The honest verdict
Use Frankfurter if once-daily official fixings cover your needs — the free v2 catalog of 80+ central banks is genuinely impressive for prototypes, research, and any project where a day-old or weekend-stale rate costs you nothing.
Use AllRatesToday when you hit any of the five walls: real-time freshness, weekend coverage, tax-authority tables (HMRC, US Treasury, BAZG), spreadsheet formats and no-code downloads, or a business that needs someone accountable behind the feed. The free tier means testing that claim costs nothing.
Frequently Asked Questions
Is Frankfurter a good exchange rate API?
Yes — for what it covers. Frankfurter is a free, open-source, keyless API. Its classic v1 serves the ECB's ~30-currency daily reference table, and its 2026 v2 aggregates official rates from 80+ central banks. For prototypes and any app where a once-daily official fixing is enough, it is an excellent choice.
What are Frankfurter's limitations?
Everything Frankfurter serves is an official rate published at most once per working day — there are no real-time market rates and no weekend data. It carries no tax-authority tables (HMRC, US Treasury), outputs JSON only (no CSV or Excel), and is a volunteer-run project with no support or SLA.
When should I switch from Frankfurter to a paid API?
When you hit one of five walls: you need real-time market rates rather than a once-daily official fixing; you need weekend availability; your filings cite a tax authority (HMRC, US Treasury) rather than a central bank; you need CSV/Excel output or no-code downloads for a finance team; or your business needs support and accountability behind the feed.
Does Frankfurter cover central bank rates other than the ECB?
Yes, as of its 2026 v2 API, which aggregates official rates from 80+ central banks (its v1 remains ECB-only). What it does not carry: tax-authority tables such as HMRC's monthly customs rates and the US Treasury's quarterly reporting rates, real-time market rates, or spreadsheet output — which is where AllRatesToday's 93 central banks + 3 tax authorities catalog differs.
Is AllRatesToday free like Frankfurter?
AllRatesToday has a free tier (no credit card) with real-time rates, conversion, and historical data, plus a keyless public endpoint for official ECB pairs. Paid plans start at €4.99/month. Frankfurter is entirely free but limited to once-daily official fixings.
Outgrown the ECB List?
160+ currencies in real time, plus official rates from 93 central banks and 3 tax authorities — with a free tier and no credit card to start.
Get Your Free API Key