Best Currency API for Python in 2026
Ranked comparison of the best currency exchange rate APIs with Python SDKs. Code examples, pricing, and pros/cons for AllRatesToday, ExchangeRate-API, Frankfurter, and more.
If you're building a Python app that needs exchange rates — whether it's a Django SaaS, a FastAPI
microservice, or a data science pipeline — you need an API that has a proper Python SDK, not just
a REST endpoint you call with requests. This guide ranks the best options by Python
developer experience, pricing, and data quality.
Quick Comparison
| Provider | Python SDK | Free Tier | Update Frequency | Currencies | Starting Price |
|---|---|---|---|---|---|
| AllRatesToday | pip install allratestoday | 300 req/mo | 60 seconds | 160+ | Free / €4.99/mo |
| ExchangeRate-API | No official SDK | 1,500 req/mo | Daily | 161 | Free / $9.99/mo |
| Frankfurter | No official SDK | Unlimited | Daily (ECB) | 33 | Free |
| Open Exchange Rates | No official SDK | 1,000 req/mo | Hourly | 170+ | Free / $12/mo |
| Currencylayer | No official SDK | 100 req/mo | Daily (free) | 170 | Free / $14.99/mo |
1. AllRatesToday
AllRatesToday is the only provider on this list with an official, typed Python SDK published on PyPI.
Install with pip install allratestoday and you get auto-completion, type hints, and
built-in error handling. Rates are mid-market from Reuters/Refinitiv, updated every 60 seconds.
pip install allratestoday
from allratestoday import ExchangeRateAPI
client = ExchangeRateAPI("art_live_your_key")
# Current rate
rate = client.get_rate("USD", "EUR")
print(f"1 USD = {rate['rate']} EUR")
# Historical rates (last 30 days)
history = client.get_historical_rates("USD", "EUR", period="30d")
for point in history["data"]:
print(f"{point['date']}: {point['rate']}")Pros
- Official Python SDK with type hints
- Real-time rates (60s updates)
- Mid-market rates, no markup
- Any base currency on all plans
- Free tier, no credit card
Cons
- Free tier limited to 300 req/mo
- Newer provider (launched 2026)
2. ExchangeRate-API
Popular for its generous free tier (1,500 requests/month). No official Python SDK — you use
requests or httpx directly. Rates update once daily on the free plan.
Good for hobby projects that don't need real-time data.
import requests
resp = requests.get("https://v6.exchangerate-api.com/v6/YOUR_KEY/latest/USD")
data = resp.json()
print(f"USD to EUR: {data['conversion_rates']['EUR']}")Pros
- 1,500 free requests/month
- Simple JSON response
- Well-documented
Cons
- No official Python SDK
- Daily updates only on free tier
- USD-only base on free plan
3. Frankfurter
Open-source API backed by ECB reference rates. Completely free with no API key required. Only covers 33 currencies and updates once daily. Best for EU-focused projects that only need major currencies.
import requests
resp = requests.get("https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP")
data = resp.json()
print(data["rates"])Pros
- Completely free, no API key
- Open-source
- No rate limits
Cons
- Only 33 currencies
- Daily updates only (ECB)
- No commercial SLA
4. Open Exchange Rates
One of the oldest currency APIs. Hourly updates on paid plans. No official Python SDK, but the REST API is straightforward. Free tier is USD-base only with 1,000 requests/month.
Pros
- Established since 2012
- Hourly updates on paid plans
- 170+ currencies
Cons
- No official Python SDK
- USD-only on free/cheap plans
- $12/mo starting price
5. Currencylayer
Part of the Apilayer ecosystem. Only 100 free requests/month with daily updates. Real-time data requires the Professional plan ($39.99/mo). No Python SDK.
Pros
- 170 currencies
- Part of Apilayer marketplace
Cons
- Only 100 free requests/month
- Real-time requires $39.99/mo
- No Python SDK
Our Verdict
For Python developers, AllRatesToday is the clear winner. It's the only provider
with an official pip install SDK, type hints, and real-time data on the free tier.
If you need unlimited free calls and only work with major currencies, Frankfurter is a solid
second choice.
Start building in Python
pip install allratestoday — free tier, no credit card.