---
title: "AllRatesToday vs Frankfurter: When Free ECB Rates Stop Being Enough"
description: "Frankfurter is a genuinely great free exchange rate API — its 2026 v2 even aggregates official rates from 80+ central banks. But five walls remain: daily fixings only, no weekend data, no tax-authority tables, JSON-only output, and no support. An honest comparison of where each API is the right choice."
canonical: https://allratestoday.com/blog/allratestoday-vs-frankfurter-2026/
source: AllRatesToday (https://allratestoday.com/) — Markdown mirror of the page above; index of all pages at https://allratestoday.com/llms.txt
generated: 2026-10-07T00:12:31.890Z
---

![Euro banknotes and currency data, representing ECB reference rates](https://images.pexels.com/photos/10531120/pexels-photo-10531120.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940)

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) | 121 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](https://allratestoday.com/tax-authority-rates-api/) alongside [121 central banks](https://allratestoday.com/central-bank-rates-api/) 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](https://allratestoday.com/blog/tax-authority-exchange-rates/).)

## 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](https://allratestoday.com/blog/best-exchange-rate-api-for-nodejs-2026/), [Python](https://allratestoday.com/blog/best-currency-api-for-python-2026/), PHP and [Rust](https://allratestoday.com/blog/best-exchange-rate-api-for-rust-2026/) remove even that step, and the full mapping lives on our [Frankfurter alternative page](https://allratestoday.com/compare/frankfurter-alternative/).

## 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 121 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 121 central banks and 3 tax authorities — with a free tier and no credit card to start.

 [Get Your Free API Key](https://allratestoday.com/register)

## Related Articles

- [Frankfurter Alternative: Feature-by-Feature Migration Guide](https://allratestoday.com/compare/frankfurter-alternative/)
- [Is the ECB Exchange Rate API Free?](https://allratestoday.com/blog/is-the-ecb-exchange-rate-api-free/)
- [Tax Authority Exchange Rates: Which Rate Do Filings Require?](https://allratestoday.com/blog/tax-authority-exchange-rates/)
- [10 Best Free Currency Exchange APIs](https://allratestoday.com/blog/best-free-currency-exchange-api-2026/)
