Short answer: yes. Several reputable providers offer free plans for currency conversion — but "free" comes in different flavors. Some cap you at 100 requests a month, some restrict the base currency, some only return daily snapshots, and some require a credit card to sign up.
This guide walks through the free currency conversion APIs that actually exist in 2026, what each one gives you for free, and how to pick the right one for your project.
TL;DR — The Best Free Currency Conversion APIs
| API | Free Tier | Base Currency | Update Frequency | Credit Card |
|---|---|---|---|---|
| AllRatesToday | 300 req/month | Any | Real-time on paid, daily on free | No |
| ExchangeRate-API | 1,500 req/month | Any | Daily | Yes (for upgrades) |
| Open Exchange Rates | 1,000 req/month | USD only | Hourly | Yes |
| CurrencyLayer | 100 req/month | USD only | Daily | Yes |
| Fixer.io | 100 req/month | EUR only | Hourly | Yes |
| Frankfurter | Unlimited | Any | Daily (ECB) | No |
What "Free" Actually Means
Before picking a free API, understand the common trade-offs:
- Request cap — how many API calls per month.
- Update frequency — daily, hourly, or real-time (60s).
- Base currency lock — Fixer's free tier is EUR-only, CurrencyLayer's is USD-only. You can convert through the base, but you can't ask for "GBP to JPY" directly.
- Historical rates — most providers paywall past data. AllRatesToday includes it free.
- HTTPS — Fixer's free tier is HTTP-only. Browsers on HTTPS will throw mixed-content errors.
- CORS — without it, you must call the API from your backend, not the browser.
A "free" API that locks out HTTPS and caps you at 100 calls is functionally useless for a real product. Check the fine print before integrating.
AllRatesToday — Free With the Fewest Trade-offs
AllRatesToday offers a free plan with 300 requests/month, access to every endpoint (including historical rates), any base currency, HTTPS, CORS, and no credit card required.
curl -X GET "https://allratestoday.com/api/v1/rates?source=USD&target=EUR" \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"source": "USD",
"target": "EUR",
"rate": 0.9234,
"time": "2026-04-14T12:00:00Z"
}
Data is sourced from Reuters/Refinitiv and interbank feeds. Paid plans drop to 60-second updates; the free tier refreshes less often but uses the same feeds.
ExchangeRate-API — Highest Free Quota
ExchangeRate-API's free plan gives you 1,500 requests/month — the highest in this list — with 161 currencies and any base currency. The catch: updates are daily, not real-time, which makes it unsuitable for trading or anything with live pricing.
Good for: internal dashboards, casual currency converters, low-volume accounting scripts.
Open Exchange Rates — Hourly Updates on Free
OER's free tier gives you 1,000 requests/month at hourly update cadence — the fastest update on a free plan among the larger providers. Base is locked to USD; you do cross-rate math in code.
Good for: USD-centric products that need hourly freshness without paying.
Frankfurter — Truly Unlimited But Daily
Frankfurter is an open-source wrapper around the ECB daily reference feed. No API key, no rate limit, but rates update once a day around 16:00 CET and only ~30 currencies are covered.
Good for: accounting, tax reporting, any use case where "end-of-day ECB rate" is the right answer.
Fixer.io and CurrencyLayer — Tight Free Tiers
Both cap at 100 requests/month on free, both restrict the base currency (Fixer: EUR only; CurrencyLayer: USD only), and Fixer's free tier is HTTP-only. They're fine for testing, not for production.
How to Pick
- Need real-time updates for free: None of the options above give genuine real-time for free. AllRatesToday's paid plans start cheapest if you eventually need 60s updates.
- Need high request volume: ExchangeRate-API (1,500/mo).
- Need historical rates for free: AllRatesToday is the only mainstream provider that includes historical on the free tier.
- Need any-base currency: AllRatesToday, ExchangeRate-API, or Frankfurter.
- Need HTTPS: Everything except Fixer's free tier.
- Need no credit card: AllRatesToday or Frankfurter.
A Minimal Integration Example
Here's a complete JavaScript example using AllRatesToday's free tier:
const res = await fetch(
'https://allratestoday.com/api/v1/rates?source=USD&target=EUR',
{ headers: { Authorization: 'Bearer YOUR_API_KEY' } }
);
const { rate } = await res.json();
const usd = 100;
const eur = (usd * rate).toFixed(2);
console.log(`$${usd} = €${eur}`);
Cache the response for 1 hour on your server. That one call a week keeps you well under any free-tier cap.
FAQ
Is Google Currency Converter API free?
Google retired its public currency conversion API in 2013. Google Finance results on search pages are not officially accessible via an API. For developer use, pick one of the APIs above.
Is Fixer free?
Yes, with 100 requests/month, EUR-only base, HTTP-only, and hourly updates. Usable for prototypes.
Can I get real-time rates for free?
Not genuinely. Free plans across the industry update hourly or daily. "Real-time" (60s) is a paid feature on every major provider. The closest free option is Open Exchange Rates at hourly.
Do I need an API key?
Every provider above except Frankfurter requires a key. Keys are free to generate and take a minute; they're a rate-limiting mechanism, not a commercial barrier.
Which free API is best for e-commerce?
If rates will affect prices customers pay, use a provider with hourly or better updates. AllRatesToday (paid upgrade to 60s) or Open Exchange Rates (hourly free) are the usable options. Daily rates can drift 1–2% during volatile sessions, which comes out of your margin.
Ready to try it? Get your free AllRatesToday API key — 300 requests/month, historical rates included, no credit card required.
Top comments (0)