AllRatesToday vs Open Exchange Rates: The 2026 Exchange Rate API Comparison
Open Exchange Rates has been a staple currency API for more than a decade. It's reliable, well-documented, and the 1,000-request free tier is generous on paper. But talk to developers shipping payments, invoicing, and multi-currency checkouts in 2026 and you hear the same five complaints repeatedly: USD-only base currency on the free tier, hourly updates, no official SDKs, time-series queries burn the quota, and the conversion endpoint is paid-only.
This article compares Open Exchange Rates against AllRatesToday across the criteria that actually matter, and explains where AllRatesToday was built specifically to fix each of those pain points.
TL;DR — Side-by-side
| Feature | AllRatesToday | Open Exchange Rates |
|---|---|---|
| Update frequency | 60 seconds | Hourly (free/Dev/Enterprise), 10 min (Unlimited $97/mo) |
| Free tier requests | 300/month | 1,000/month |
| Base currency (free) | Any | USD only |
| Multiple base currencies | All plans | Developer plan ($12/mo) and above |
| Historical data (free) | Yes, cheap | Yes, but each day = 1 request |
| Conversion endpoint | Free | Paid only |
| Official SDKs | JS, Python, PHP | None (community-maintained only) |
| MCP / AI integrations | Yes (Claude Code, Cursor, DeepSeek) | No |
| Data source | Reuters/Refinitiv + interbank | "Blended" (undisclosed) |
| HTTPS on free | Yes | Yes |
| CORS | Yes | Yes |
Update frequency: real-time vs hourly
This is the single biggest technical difference.
- AllRatesToday refreshes rates every 60 seconds from Reuters (Refinitiv) and interbank market feeds.
- Open Exchange Rates refreshes hourly on its free, Developer ($12/mo), and Enterprise ($47/mo) tiers. Only the Unlimited plan ($97/mo) updates every 10 minutes — and that's still not real-time.
For anything where the exchange rate affects the amount of money changing hands — checkout pricing, cross-border quotes, treasury dashboards — hourly data can be 1% off the market during a volatile session. That 1% comes out of your margin.
OpenExchangeRates' hourly cadence made sense in 2012. In 2026, real-time rates are available for free from several providers, and your users will notice the difference.
Base currency: USD-only is a 2012-era constraint
Open Exchange Rates' free plan only supports USD as a base currency. If you're building anything with a non-USD home market — a European SaaS, an Indian fintech, a Southeast Asian marketplace — you have two options:
- Fetch USD-based rates and do cross-rate math in application code (extra code, rounding risk).
- Upgrade to the Developer plan ($12/mo) or higher to get flexible base currencies.
AllRatesToday lets you pass any base currency on any plan, including the free tier:
GET /api/v1/rates?source=EUR&target=USD,GBP,CHF Done. No workarounds, no upgrade required.
Historical data: watch the quota burn
OpenExchangeRates does include historical data on the free plan — but with a catch. The time-series.json endpoint counts one request per day of data returned. A 30-day query uses 30 of your 1,000 monthly requests. A one-year backfill (365 days) uses 36.5% of your quota in a single call.
AllRatesToday's historical endpoint returns the entire range as one request:
GET /api/historical-rates?source=USD&target=EUR&from=2025-04-01&to=2026-04-01 One request, one year of data, no quota multiplier.
Conversion: free vs paid
Open Exchange Rates exposes a dedicated /api/convert.json endpoint — but it's paid-only. On the free tier you have to fetch rates and do the multiplication in your own code.
With AllRatesToday's official SDKs, convert() is a one-liner on every plan:
const result = await client.convert('USD', 'EUR', 1000);
// { from: 'USD', to: 'EUR', amount: 1000, rate: 0.9234, result: 923.4 } Official SDKs
OpenExchangeRates' own documentation says it plainly: they don't maintain official SDKs. There are "several hundred" community integrations, but the company "isn't able to provide support for any of these libraries, except those they actively maintain or contribute to." In practice, that means picking a third-party library on GitHub, auditing it yourself, and hoping the maintainer is still active.
AllRatesToday ships first-party SDKs for three languages:
npm install @allratestoday/sdk(JavaScript/TypeScript)pip install allratestoday(Python)composer require allratestoday/sdk(PHP)
Plus an MCP server for AI coding tools (Claude Code, Cursor, Claude Desktop) and a DeepSeek function-calling package — integrations Open Exchange Rates doesn't ship at all.
Data source transparency
OpenExchangeRates describes its data as "blended" from multiple sources, but doesn't disclose which sources. That's fine for shopping-cart-accurate rates, but it's not enough for a regulated environment where auditors ask where the number came from.
AllRatesToday publishes its sources: Reuters (Refinitiv) and interbank market feeds. These are the same feeds used by Bloomberg terminals and enterprise treasury systems.
When Open Exchange Rates is still the right call
- You already have a working integration and don't want to touch it.
- You need 1,000+ requests/month on a free tier and can tolerate hourly data.
- Your use case is USD-only accounting or price display where base flexibility doesn't matter.
When AllRatesToday is the better choice
- You need real-time (60-second) rates without paying.
- You need any-base-currency flexibility on a free plan.
- You want official SDKs instead of community libraries.
- You want MCP or DeepSeek tool-calling for AI assistants.
- You need transparent data sources for compliance or audit.
Migration is a one-afternoon job
The two APIs share the same JSON shape for the core "get rates" call. In most projects, swapping the client is a handful of lines. We've written a full migration guide that covers every endpoint.
Ready to switch?
Real-time rates, any base currency, free historical data, and official SDKs. No credit card required.
Get your free API key