DEV Community

Madhushan
Madhushan

Posted on • Originally published at allratestoday.com

Open Exchange Rates Free Plan vs AllRatesToday Free Tier: What You Actually Get

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
Enter fullscreen mode Exit fullscreen mode

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.jsonone 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=Yone 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 }
Enter fullscreen mode Exit fullscreen mode

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 your free AllRatesToday API key — 60-second rates, any base currency, free historical, conversion endpoint, official SDKs. No credit card.

Top comments (0)