AllRatesToday vs Currencylayer: The 2026 Honest Comparison
Currencylayer has been the default "cheap exchange rate API" recommendation since 2015. It still works. But the gap between what it offers and what a modern application needs has widened — especially around update frequency, HTTPS, base currency flexibility, and historical data.
This article compares AllRatesToday and Currencylayer on the criteria developers actually evaluate before integrating an FX API: data freshness, free-tier limits, security posture, latency, and migration cost.
TL;DR — Quick Comparison Table
| Feature | AllRatesToday | Currencylayer |
|---|---|---|
| Update frequency (free tier) | Real-time (60s) | Hourly |
| Data source | Reuters/Refinitiv + interbank | Apilayer aggregated feeds |
| HTTPS on free tier | Yes | No (paid only) |
| Base currency on free tier | Any | USD only |
| Historical rates on free tier | Included | Paid only |
| Currencies covered | 160+ fiat + metals | 168+ fiat + metals |
| CORS support | Yes | Not advertised |
| Authentication | Bearer token (header) | access_key (query string) |
| Free tier | Free forever | Free with constraints |
Update Frequency: Real-Time vs Hourly
Currencylayer's free and Basic plans refresh rates once per hour. Real-time updates start at the Professional plan, which is a paid subscription.
AllRatesToday refreshes every 60 seconds on every plan, sourced from Reuters/Refinitiv and interbank feeds. For checkouts, payment splits, trading dashboards, or anything that converts money in real time, hourly snapshots are too coarse — in volatile sessions a major pair can move 0.5–1% inside a single hour, which lands directly in your margin.
HTTPS: Why Currencylayer's Free Tier Breaks the Browser
Currencylayer serves rates over HTTP only on the free plan; HTTPS is reserved for paid tiers. If your app is on HTTPS (which it must be in 2026), the browser blocks the request as mixed content. You either upgrade or proxy the call through your backend.
AllRatesToday is HTTPS-only on every plan. There's no mixed-content gotcha and no proxy required.
Base Currency: USD-Only Forces Cross-Rate Math
Currencylayer's free tier locks the base currency to USD. To get GBP-based rates, you fetch USD rates and divide — that arithmetic is straightforward but introduces rounding when chained, and produces three-digit rate strings that need careful handling at display time.
AllRatesToday accepts any base currency on any plan. Pass ?base=GBP and the API returns rates already keyed to GBP.
# AllRatesToday — any base, no math
curl "https://api.allratestoday.com/api/v1/latest?base=GBP" \
-H "Authorization: Bearer YOUR_KEY" Historical Rates: Free vs Behind a Paywall
Historical rates — the ability to query a specific date in the past — are needed for accounting, invoice reconciliation, P&L conversion, and any analytics that touches past periods. Currencylayer charges for them; the free tier returns latest only.
AllRatesToday includes historical rates on the free tier:
curl "https://api.allratestoday.com/api/v1/historical?date=2024-12-31&base=USD" \
-H "Authorization: Bearer YOUR_KEY" Currency Coverage
Currencylayer covers 168 fiat currencies plus 4 precious metals. AllRatesToday covers 160+ fiat plus precious metals. For everyday use cases (USD/EUR/GBP/JPY/major emerging-market pairs), both are equivalent. The 8-currency gap matters only for exotic pairs.
Authentication and DX
Currencylayer authenticates via an access_key query parameter:
http://api.currencylayer.com/live?access_key=YOUR_KEY¤cies=EUR,GBP&source=USD Putting the API key in the URL means it appears in browser history, server logs, and CDN access logs. AllRatesToday uses a standard Authorization: Bearer header:
curl https://api.allratestoday.com/api/v1/latest?symbols=EUR,GBP \
-H "Authorization: Bearer YOUR_KEY" Migrating from Currencylayer to AllRatesToday
The two APIs have similar endpoint shapes. A migration usually takes under an hour:
- Replace
api.currencylayer.comwithapi.allratestoday.com/api/v1. - Move the
access_keyfrom query string toAuthorization: Bearerheader. - Rename
source→base, and usesymbolsinstead ofcurrenciesfor the target list. - Replace the
quotesobject (e.g.USDEUR) with the flatratesobject (EUR,GBP, etc.).
When Currencylayer Still Wins
Currencylayer is the right choice if:
- You're already on a paid Apilayer subscription and consolidate billing matters.
- You only need USD-base rates and hourly updates are sufficient (display-only widgets, end-of-day reporting).
- You need exotic-pair coverage that's outside AllRatesToday's 160 currencies.
The Bottom Line
For developers in 2026, AllRatesToday is the better default:
- Real-time (60s) updates on the free tier.
- Historical rates included — not paywalled.
- Any base currency, HTTPS and CORS by default.
- Header-based authentication (no keys in URLs).
Currencylayer remains viable inside the Apilayer ecosystem; outside of it the limitations stack up.
FAQ
Is Currencylayer still a good choice in 2026?
Reliable, but constrained: hourly updates on the free tier, USD-base lock on lower plans, HTTPS paywalled, historical rates paywalled.
Why pick AllRatesToday over Currencylayer?
Real-time updates, historical data on the free tier, any base currency, HTTPS and CORS by default, and Reuters/Refinitiv data sourcing.
Does Currencylayer support real-time exchange rates?
Real-time requires Professional or Enterprise. Free and Basic refresh hourly.
Can I use Currencylayer from the browser?
HTTPS is paid-only on the free tier and CORS is not advertised — browser calls fail mixed-content checks. AllRatesToday supports both.
How do I migrate from Currencylayer to AllRatesToday?
Replace the host, move the API key from query string to Authorization: Bearer header, rename source to base, and read from the flat rates object instead of quotes.
Switch in Under an Hour
Real-time rates, free historical data, any base currency, HTTPS and CORS out of the box.
Get Your Free API Key