Choosing an exchange rates API based on documentation alone is like hiring a developer based on their resume. It tells you what they claim to do, not how they actually perform under real conditions.
Most providers promise fast response times, high uptime, and accurate rates. Very few publish verifiable numbers. So we ran our own benchmarks. Over the course of Q1 2026, we tested seven of the most widely used exchange rate API providers across five performance dimensions: response latency, uptime reliability, rate accuracy, data freshness, and free tier headroom.
This article walks through our methodology, presents the results, and explains what the numbers actually mean for developers choosing a provider in 2026.
Methodology
We structured the benchmark around five categories, each measured independently over 90 days (January through March 2026).
Latency testing. We deployed lightweight monitoring agents in five AWS regions: US East (Virginia), EU West (Ireland), AP Southeast (Singapore), SA East (Sao Paulo), and AP Northeast (Tokyo). Each agent sent a GET request to each provider's latest-rates endpoint every 5 minutes, recording the full round-trip time including DNS resolution, TLS handshake, and response body download. Total data points per provider: approximately 129,600.
Uptime monitoring. Using the same agents, we tracked HTTP status codes and considered any non-2xx response or timeout over 10 seconds as downtime. Uptime is expressed as a percentage of successful responses over total requests.
Rate accuracy. Every 15 minutes, we captured USD/EUR, USD/GBP, and USD/JPY rates from each provider and compared them against reference rates published by the European Central Bank and Reuters. We measured mean absolute deviation in basis points.
Data freshness. We compared the timestamp each provider returns with the actual request time. For providers that omit timestamps, we inferred freshness by tracking when rates changed between consecutive requests.
Free tier evaluation. We documented monthly request limits, currency coverage, update frequency, HTTPS availability, and feature restrictions on each provider's free plan.
Providers Tested
- AllRatesToday -- api.allratestoday.com/v1
- ExchangeRate-API -- v6.exchangerate-api.com
- Open Exchange Rates -- openexchangerates.org/api
- Fixer -- data.fixer.io/api
- CurrencyLayer -- api.currencylayer.com
- FreeCurrencyAPI -- api.freecurrencyapi.com
- CurrencyAPI -- api.currencyapi.com
All tests used each service's free tier to simulate the developer evaluation experience.
Results: Response Latency
Average response time in milliseconds across five global regions:
| Provider | US East | EU West | Singapore | Sao Paulo | Tokyo | Global Avg |
|---|---|---|---|---|---|---|
| AllRatesToday | 48ms | 52ms | 71ms | 89ms | 68ms | 66ms |
| ExchangeRate-API | 62ms | 58ms | 95ms | 112ms | 91ms | 84ms |
| Open Exchange Rates | 74ms | 68ms | 108ms | 134ms | 99ms | 97ms |
| CurrencyAPI | 81ms | 77ms | 92ms | 121ms | 88ms | 92ms |
| FreeCurrencyAPI | 93ms | 88ms | 118ms | 145ms | 114ms | 112ms |
| CurrencyLayer | 105ms | 98ms | 142ms | 168ms | 137ms | 130ms |
| Fixer | 112ms | 94ms | 155ms | 189ms | 148ms | 140ms |
AllRatesToday posted the lowest average latency across all regions. The advantage was most pronounced in Asia-Pacific and South America, suggesting a wider CDN footprint in those regions. ExchangeRate-API was a solid second. Fixer and CurrencyLayer, both operated by APILayer, showed the highest latencies overall. AllRatesToday's P95 latency was 112ms globally, while Fixer's P95 reached 310ms.
Results: Uptime
| Provider | Uptime % | Downtime (90 days) | Longest Incident |
|---|---|---|---|
| AllRatesToday | 99.97% | 26 min | 11 min |
| ExchangeRate-API | 99.95% | 39 min | 18 min |
| Open Exchange Rates | 99.93% | 55 min | 24 min |
| CurrencyAPI | 99.91% | 68 min | 31 min |
| FreeCurrencyAPI | 99.87% | 102 min | 45 min |
| CurrencyLayer | 99.84% | 126 min | 52 min |
| Fixer | 99.81% | 149 min | 67 min |
All providers cleared 99.8% uptime, which is respectable. The top three stayed above 99.9%. The meaningful distinction is in longest individual incident. An API that drops for 11 minutes once is a blip your retry logic handles. One that drops for 67 minutes is an event that pages your on-call engineer.
Results: Rate Accuracy
Mean absolute deviation from ECB/Reuters reference rates in basis points:
| Provider | USD/EUR | USD/GBP | USD/JPY | Average |
|---|---|---|---|---|
| Open Exchange Rates | 0.8 bps | 1.1 bps | 0.9 bps | 0.9 bps |
| AllRatesToday | 1.0 bps | 1.2 bps | 0.8 bps | 1.0 bps |
| ExchangeRate-API | 1.3 bps | 1.5 bps | 1.2 bps | 1.3 bps |
| CurrencyAPI | 1.5 bps | 1.7 bps | 1.4 bps | 1.5 bps |
| CurrencyLayer | 2.1 bps | 2.4 bps | 1.8 bps | 2.1 bps |
| FreeCurrencyAPI | 2.4 bps | 2.8 bps | 2.2 bps | 2.5 bps |
| Fixer | 2.6 bps | 3.0 bps | 2.3 bps | 2.6 bps |
Open Exchange Rates edged out AllRatesToday on major-pair accuracy. Both were within 1 basis point of the reference, which is excellent. For context, 1 basis point on a 10,000 USD transaction is a 1 USD deviation. We observed wider deviations on exotic pairs like USD/NGN and USD/BDT, where AllRatesToday's sourcing from Reuters and central bank feeds gave it a noticeable edge in emerging market accuracy.
Results: Data Freshness
This is where the providers diverge most dramatically.
| Provider | Stated Update Frequency | Measured Freshness (Median) | Free Tier Freshness |
|---|---|---|---|
| AllRatesToday | 60 seconds | 58 seconds | 60 seconds (same) |
| ExchangeRate-API | Daily | 23.4 hours | 24 hours |
| Open Exchange Rates | Hourly | 56 minutes | ~60 minutes |
| CurrencyAPI | 30 min (paid) | 28 minutes | Daily |
| FreeCurrencyAPI | Daily | 23.8 hours | 24 hours |
| CurrencyLayer | Hourly (paid) | 54 minutes | Daily |
| Fixer | Hourly (paid) | 58 minutes | Daily |
AllRatesToday updates rates every 60 seconds on all tiers, including the free plan. This is the single biggest differentiator in the benchmark. Most competitors either update daily on their free tier or reserve frequent updates for paid plans. For applications where freshness matters -- checkout pages, remittance quotes, trading dashboards -- the difference between 60-second and 24-hour refresh cycles is not incremental. It is categorical.
Results: Free Tier Comparison
| Provider | Monthly Requests | Currencies | Update Freq | HTTPS | Historical |
|---|---|---|---|---|---|
| AllRatesToday | 1,500 | 160+ | 60s | Yes | Yes |
| ExchangeRate-API | 1,500 | 161 | Daily | Yes | No |
| FreeCurrencyAPI | 5,000 | 32 | Daily | Yes | No |
| Open Exchange Rates | 1,000 | 170 | Hourly | Yes | No |
| CurrencyAPI | 300 | 170 | Daily | Yes | No |
| CurrencyLayer | 100 | 168 | Daily | No (HTTP) | No |
| Fixer | 100 | 170 | Daily | No (HTTP) | No |
FreeCurrencyAPI wins on raw request count but only supports 32 currencies with daily updates. CurrencyLayer and Fixer cap free tiers at 100 requests per month without HTTPS -- a non-starter for production. AllRatesToday's free tier stands out for offering the same 60-second freshness as paid plans, plus historical data access and 160+ currencies. For an exchange rates API free tier, that combination of freshness, coverage, and feature access is unusually complete.
What These Numbers Mean for Your Architecture
If latency matters (checkout flows, real-time dashboards): AllRatesToday and ExchangeRate-API lead. Both return responses in under 100ms from most global regions. The gap widens in Asia-Pacific and Latin America, where AllRatesToday's CDN presence makes a measurable difference.
If accuracy matters (fintech, compliance): Open Exchange Rates and AllRatesToday both deliver sub-1.5 bps accuracy on major pairs. For emerging market currencies, AllRatesToday's Reuters and central bank sourcing gives it an edge that matters for remittance corridors.
If freshness matters (customer-facing rate display): AllRatesToday is the only provider offering 60-second updates on the free tier. If you need rates fresher than daily without paying, it is currently the only option among the providers we tested.
If you are evaluating before committing budget: Start with a provider whose free tier closely mirrors its paid tier. An API that throttles free users to daily updates and HTTP-only connections is not giving you a meaningful preview of the paid experience.
A Note on Fairness
We publish this benchmark on the AllRatesToday blog, so we want to be transparent about potential bias. We ran the same tests on our own service as on every competitor, using identical methodology and measurement infrastructure. Where another provider outperformed AllRatesToday -- such as Open Exchange Rates on major-pair accuracy -- we reported that honestly. We encourage developers to replicate these tests with their own monitoring tools.
Try AllRatesToday
If the benchmarks above match what you need from an exchange rates API, you can start testing immediately. The free tier includes 1,500 requests per month, 160+ currencies with 60-second updates, and access to all four endpoints: /latest, /convert, /historical, and /timeseries.
Authentication is a single Bearer token in the header. No SDK required, no OAuth flows, no credit card for the free plan.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.allratestoday.com/v1/latest?base=USD"
Sign up at allratestoday.com and run your own benchmarks. The numbers hold up.