Open Exchange Rates Free Plan vs AllRatesToday Free Tier: What You Actually Get
"Free" does a lot of work in API pricing pages. Two providers can both claim a free tier and deliver wildly different value. Open Exchange Rates' headline number — 1,000 requests/month — looks more generous than AllRatesToday's 300 requests/month until you put the feature matrices side by side.
This article walks through what each free tier actually gives you, and explains why more requests per month isn't the right metric for most apps.
Side-by-side feature matrix
| Feature | AllRatesToday Free | OpenExchangeRates Free |
|---|---|---|
| Monthly requests | 300 | 1,000 |
| Update frequency | 60 seconds | 60 minutes |
| Base currency | Any | USD only |
| Multiple targets per call | Yes | Yes |
| Historical data | Yes (one request per range) | Yes (one request per day) |
| Conversion endpoint | Yes | Paid plans only |
| Time-series endpoint | Yes | Yes but burns quota |
| HTTPS | Yes | Yes |
| CORS | Yes | Yes |
| Official SDKs | JS, Python, PHP | None |
| MCP / DeepSeek integrations | Yes | No |
| Credit card required | No | No |
Request quota: the number everyone looks at
1,000 vs 300 monthly requests. Numerically, Open Exchange Rates wins here.
But — critically — request count is not the same as data coverage. If you query Open Exchange Rates 1,000 times per month on the free tier, you're getting the same hourly snapshots over and over. Rates only change once per hour on their free plan.
With AllRatesToday's 60-second cadence:
- You can poll once per minute and always get fresh data (1,440 new snapshots per day available, you fetch what you need).
- A typical single-page app that fetches one rate on page load serves 300 unique users per month on the free plan — and each of them sees a rate that's at most 60 seconds old.
With Open Exchange Rates' 60-minute cadence:
- The data only updates 24 times per day.
- You can fire 1,000 requests per month, but anything above 24 × 30 = 720 requests fetches duplicate data.
- For serving page loads, the cap-per-month number dominates; for serving fresh data, the cadence does.
Update frequency: 60x difference
This is the biggest real gap between the two free tiers.
- AllRatesToday Free: 60-second updates from Reuters/Refinitiv and interbank feeds.
- OpenExchangeRates Free: 60-minute updates, sourced from a blended feed (providers not publicly disclosed).
For anything involving money — checkout, invoicing, treasury, payments — 60-second beats 60-minute every time. We break down the cost of hourly staleness in a separate article.
Base currency: USD-only is a wall
Open Exchange Rates' free plan only supports USD as a base. Want EUR-based rates? Upgrade to Developer ($12/mo). Want INR? Same. Want GBP? Same.
AllRatesToday's free tier accepts any supported currency as the source:
GET /api/v1/rates?source=EUR&target=USD,GBP,CHF
GET /api/v1/rates?source=INR&target=USD,EUR,AED
GET /api/v1/rates?source=AUD&target=NZD,USD,EUR If your product's home currency isn't USD, this single difference can decide which API you pick.
Historical data: quota-friendly vs quota-burning
Both providers include historical data on the free tier — but they count it differently.
OpenExchangeRates:
historical/{date}.json— one request per specific date.time-series.json— one request per day returned. A 30-day range uses 30 requests. A one-year backfill uses 365 requests (36.5% of your monthly quota in a single call).
AllRatesToday:
historical-rates?from=X&to=Y— one request per range, regardless of how many days. A one-year backfill is one request, not 365.
If you're doing any kind of analytics, charting, or backtesting, this is a significant free-tier advantage.
Conversion endpoint: free vs paid
Open Exchange Rates has a dedicated /api/convert.json endpoint for "convert 1,000 USD to EUR" — but it's paid plans only. On the free tier, you fetch rates and do the multiplication client-side.
AllRatesToday ships conversion on every plan. With the SDK:
const result = await client.convert('USD', 'EUR', 1000);
// { from: 'USD', to: 'EUR', amount: 1000, rate: 0.9234, result: 923.4 } For typical shopping-cart and invoicing flows, this alone saves a fair amount of glue code.
SDKs and AI integrations
Open Exchange Rates' free tier gives you raw HTTP access. AllRatesToday's free tier includes:
- Official JavaScript/TypeScript SDK.
- Official Python SDK.
- Official PHP SDK.
- MCP server for Claude Code, Cursor, Claude Desktop, ChatGPT Desktop.
- DeepSeek function-calling package.
None of these incur extra cost — they're tools for working with the free tier.
When to pick each free tier
Pick OpenExchangeRates Free when:
- You need 500+ rate lookups per month and hourly data is fine and USD-only base works and you don't need the conversion endpoint.
- You already have a working integration and switching isn't worth the effort.
Pick AllRatesToday Free when:
- You need real-time (60-second) rates — the top reason.
- Your product isn't USD-centric (EUR, GBP, INR, AUD, SGD, BRL, etc.).
- You want historical data without burning quota.
- You want the conversion endpoint.
- You want an official SDK.
- You want MCP or DeepSeek support for AI tools.
The bigger picture
Free tiers are marketing. The numbers on the pricing page are chosen to make the provider look good on a comparison chart. Look at what each free tier enables — fresh data, flexible queries, real endpoints — and the gap narrows or reverses.
For most non-US products, AllRatesToday's free tier is the more useful one even though the request cap is lower. For USD-only products on hourly data, Open Exchange Rates works.
Get the fresher free tier
60-second rates, any base currency, free historical, conversion endpoint, official SDKs. No credit card.
Get your free API key