If you've ever needed historical exchange rates for backtesting a trading algorithm, or wanted to convert currencies in an app without worrying about API limits, you know the pain of finding a reliable free currency API.
Most free APIs give you current rates. Some give you a few years of history. Almost none give you 57 years.
Here's the rundown of the top free currency converter APIs available in 2025.
1. UniRateAPI — 57 Years of Historical Data
What makes it different: UniRateAPI has exchange rate data going back to 1967. That's the Bretton Woods era. No other free API comes close.
Base URL: https://api.unirateapi.com
Free tier: 2,000 requests/day
Currencies: 593 (including crypto + precious metals)
Historical data: 1967–present
from unirate import UnirateClient
client = UnirateClient('your_api_key')
# Current rate
rate = client.get_rate('EUR', 'USD')
# Historical rate from 2008
result = client.get_historical_rate('2008-09-15', 100, 'EUR', 'USD')
# Black Monday: €100 = $68.25
Perfect for: Trading bot backtesting, financial research, historical analysis.
Website: https://unirateapi.com
2. Frankfurter — Open Source, No Account Required
What makes it different: Frankfurter is completely open source and doesn't require an API key. Data comes from the European Central Bank.
Base URL: https://api.frankfurter.app
Free tier: Unlimited (no auth required)
Currencies: ~30
Historical data: 1999–present (4 years)
// No API key needed
fetch('https://api.frankfurter.app/latest?from=USD&to=EUR')
.then(r => r.json())
.then(d => console.log(d.rates.EUR))
Perfect for: Quick prototypes, small projects, open source projects.
3. ExchangeRate-API — Generous Free Tier
What makes it different: 1,500 requests/month on the free plan with 160+ currencies.
Base URL: https://v6.exchangerate-api.com
Free tier: 1,500 requests/month
Currencies: 160+
Historical data: Not on free tier
Sign up at https://www.exchangerate-api.com
4. Open Exchange Rates — The Old Standard
What makes it different: One of the original currency API services. 1,000 requests/month free.
Base URL: https://openexchangerates.org/api/
Free tier: 1,000 requests/month
Currencies: 200+
Historical data: Extra cost
Requires API key. Historical data requires paid plan.
5. CurrencyLayer — Professional Features
What makes it different: Bank-level accuracy and time-zone aware queries.
Base URL: http://api.currencylayer.com
Free tier: 100 requests/month
Currencies: 170+
Historical data: Extra cost
Which Should You Choose?
| API | Currencies | Historical | Free Tier |
|---|---|---|---|
| UniRateAPI | 593 | 57 years | 2000/day |
| Frankfurter | ~30 | 4 years | Unlimited |
| ExchangeRate-API | 160+ | No | 1500/mo |
| Open Exchange Rates | 200+ | Extra cost | 1000/mo |
If you need historical data, UniRateAPI is the only choice that gives you decades of data on the free tier. If you're just doing current conversions and don't want to sign up for an API key, Frankfurter is solid.
For most developer use cases, I'd start with UniRateAPI's free tier — the 2000 requests/day is generous, and the 57-year historical dataset is genuinely unique.testSTART123
Top comments (0)