Frankfurter Alternative: AllRatesToday Currency API

Frankfurter is a great free open-source ECB API — until you need more than ~30 currencies, one daily update, or weekend rates. AllRatesToday adds real-time data, 160+ currencies, and 54 central banks.

Let's start with credit where it's due: Frankfurter (frankfurter.dev) is one of the best free developer tools in the currency space. It's open source, keyless, well documented, and it serves the European Central Bank's reference rates reliably. If ECB daily reference rates for ~30 currencies are all you need, keep using it — genuinely. But Frankfurter is a window onto one dataset: the ECB publishes once per working day around 16:00 CET, quotes everything against EUR, skips weekends and holidays, and covers only a few dozen currencies. When your product needs real-time market rates, exotic currencies, or the official rates of central banks beyond the ECB, that's where AllRatesToday picks up.

At a glance

AllRatesToday Frankfurter
PriceFree tier; paid from €4.99/moFree, open source
Currencies160+~30 (ECB reference set)
Update cadenceReal-time, every 60 secondsOnce per working day (~16:00 CET)
Weekend / holiday ratesYes — market rates update continuouslyNo — last working day's rate carries over
Reference currencyAny base currencyEUR-reference dataset
DataMarket rates + official rates from 54 central banksECB reference rates only
Support / SLAEmail support on paid plans; 99.99% availability targetCommunity; self-host for guarantees
API keyFree key (open ECB endpoint stays keyless)None needed

Pricing and feature details are based on each provider's public pages and may change. Check the vendor's site for the latest figures.

When teams outgrow Frankfurter

1. You need more than ~30 currencies

The ECB reference set covers the majors and larger emerging markets, but not the long tail. If a customer pays you in NGN, VND, or any of a hundred other currencies outside the ECB table, Frankfurter has no rate to give you. AllRatesToday covers 160+ currencies from institutional interbank market data.

2. One daily update isn't enough

ECB reference rates are published once per working day, around 16:00 CET, and there is nothing on weekends or ECB holidays. For accounting that references the ECB rate, that's exactly right. For a checkout, a pricing engine, or anything user-facing, a Friday-afternoon rate shown on Sunday can be visibly off. AllRatesToday updates every 60 seconds, seven days a week.

3. Rates that aren't EUR-derived

Frankfurter's dataset is EUR-referenced; USD/GBP is a cross computed through EUR. That's fine for display, but if you want a directly sourced market rate — or the official rate a specific central bank publishes for a pair — you need a broader source.

4. You want the ECB and 53 other central banks

Frankfurter serves one institution's rates. AllRatesToday's central bank rates API serves the official published rates of 54 central banks — ECB included — plus three tax authorities (HMRC, US Treasury, Swiss BAZG), each under the institution's own publication date, through one endpoint shape and one key. There's even a keyless open ECB endpoint, so the Frankfurter-style use case stays free.

5. Support and an availability target without self-hosting

Frankfurter's honest answer to uptime guarantees is "self-host it" — reasonable for an open-source project, but it makes reliability your ops problem. AllRatesToday runs on Cloudflare's global edge with a 99.99% availability target and email support on paid plans.

Drop-in code example

The request shape will feel familiar to Frankfurter users:

// Before — Frankfurter (ECB daily reference, ~30 currencies)
fetch('https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP')

// After — AllRatesToday (real-time, 160+ currencies)
fetch('https://allratestoday.com/api/v1/rates?source=USD&target=EUR,GBP', {
  headers: { Authorization: 'Bearer art_live_xxxxx' }
})
  .then(r => r.json())
  .then(rows => console.log(rows));

// Still want the official ECB reference table? Keyless:
fetch('https://allratestoday.com/api/open/central-bank/ecb')
  .then(r => r.json())
  .then(console.log);

Honest pros and cons

Where AllRatesToday wins

  • 160+ currencies vs the ~30 in the ECB set
  • Real-time updates, including weekends
  • Official rates from 54 central banks, not just the ECB
  • Support and an availability target without self-hosting
  • Official SDKs for JS, Python, PHP and React

Where Frankfurter may still suit you

  • ECB daily reference rates are exactly what your use case requires
  • You want a fully open-source stack you can self-host
  • Zero budget and zero sign-up are hard requirements
Migration tip: if you're on Frankfurter for compliance reasons (ECB reference rates), don't switch to market rates — switch to our ECB central-bank endpoint, which serves the same official dataset. Use market rates only where a live number is actually what you want.

FAQ

Is Frankfurter bad? Should I stop using it?

Not at all — it's an excellent free project. If ECB daily reference rates cover your needs, stay. This page is for teams that need more currencies, more frequent updates, or more institutions.

Does AllRatesToday serve the same ECB rates Frankfurter does?

Yes. The ECB is one of the 54 central banks in our central-bank API, served under the ECB's own publication date — with a keyless open endpoint for the latest table.

Is there a free tier?

Yes — real-time rates with HTTPS, no credit card required. Historical data and commercial use start on the €4.99/mo plan; see pricing.

Try it in two minutes

Get a free API key — or hit the keyless ECB endpoint right now.

Get free API key See pricing

Compare with other providers