Fixer, Currencylayer, and Exchange Rates Data API cost the same. $0 for 100 requests a month, $14.99 for 10,000, $59.99 for 100,000, $99.99 for 500,000.
Coverage is nearly identical too. Each publishes a symbol list in the 168 to 170 range, and all three include Bitcoin, gold (XAU), and silver (XAG).
Price and coverage will not decide this for you. The response shape and the error handling will.
Table of Contents
Which currency conversion API should you use in 2026?
Pick Fixer if you want the widest published symbol list and the most useful free tier. Its free plan refreshes hourly, where the other two refresh daily.
Pick Exchange Rates Data API if you want standard HTTP semantics. It returns a real 401 on an auth failure instead of a 200 with an error body.
Pick Currencylayer if you want quotes keyed as currency pairs relative to USD by default, which maps cleanly onto ledgers that already store pairs.
Currency conversion API pricing and features compared
Fixer | Currencylayer | Exchange Rates Data API | |
Currency coverage | 170 currencies, includes BTC, XAU, XAG | 168 currencies and precious metals | 168 currencies and precious metals |
Update frequency | Hourly (Free, Basic), 10 min (Professional), 60 sec (Professional Plus) | Daily (Free), hourly (Basic), 10 min (Enterprise), 60 sec (Enterprise+) | Daily (Free), hourly (Basic), 10 min (Professional), 60 sec (Business) |
Historical data | Yes, on every plan including Free | Yes, back to 1999, on every plan including Free | Yes, back to 1999, on every plan including Free |
Free tier | 100 calls/month, no base switching, no convert endpoint | 100 calls/month, no source switching, no convert endpoint | 100 calls/month, no base switching, no convert endpoint |
Paid tiers | $14.99 / $59.99 / $99.99 per month, plus custom | $14.99 / $59.99 / $99.99 per month, plus custom | $14.99 / $59.99 / $99.99 per month, plus custom |
Annual billing takes the entry tier to $13.99 per month and the top tier to $84.99 per month on all three. Overage pricing per call is also identical across the three.
How do the response formats differ?
This is the real fork in the road. Fixer and Exchange Rates Data API return a rates object keyed by plain currency code. Currencylayer returns a quotes object keyed by concatenated pair.
Fixer, on the latest endpoint:
{
"success": true,
"timestamp": 1710856983,
"base": "USD",
"date": "2024-03-19",
"rates": {
"INR": 83.01835
}
}
Currencylayer, on the live endpoint:
{
"timestamp": 1786037225,
"source": "USD",
"quotes": {
"USDCAD": 1.432064,
"USDCHF": 0.819637,
"USDEUR": 0.815762,
"USDGBP": 0.732957
}
}
Currencylayer uses source where the other two use base, and USDCAD where the other two use CAD. If you are switching between them, that is the part of your parsing layer that breaks.
How do these APIs handle errors?
Fixer and Currencylayer return HTTP 200 on a failed call. The failure is in the body:
{
"success": false,
"error": {
"code": 101,
"type": "invalid_access_key",
"info": "You have not supplied a valid API Access Key."
}
}
Exchange Rates Data API returns HTTP 401 for the same condition, with a different envelope and no success field:
{
"error": {
"code": "invalid_access_key",
"message": "You have not supplied a valid API Access Key."
}
}
That difference matters in production. If your HTTP client, retry logic, or alerting keys off status codes, Fixer and Currencylayer failures will pass through as successes until something downstream chokes on a missing rates key. Check success in the body on those two.
What do you actually get on the free tier?
100 requests a month on all three, which is a development budget and not a production one.
Base currency switching and the convert endpoint start at the $14.99 tier on all three. On the free plan you get rates relative to the default base only, and you do the arithmetic yourself. Fixer and Exchange Rates Data API default to EUR, Currencylayer defaults to USD.
Historical rates are included on every plan, including free, which is unusual at this price point.
Which endpoints are gated behind which tier?
The gating is the same on all three, priced at the same three thresholds. Only the endpoint names change.
- $14.99 tier: direct conversion and base currency switching. Fixer and Exchange Rates Data API call it convert. Currencylayer calls it convert and lists base switching as source currency switching.
- $59.99 tier: daily series between two dates, capped at 365 days. Fixer and Exchange Rates Data API expose this as timeseries. Currencylayer calls it a time frame query.
- $99.99 tier: day-over-day change, returning start rate, end rate, absolute change, and percentage change. Fixer and Exchange Rates Data API expose this as fluctuation. Currencylayer calls it a currency change query.
If you are building rate trend charts or a reporting view, you are on the $59.99 plan at minimum, whichever you pick. Budget for that before you prototype against the free tier.
Make your first call
Fixer’s latest endpoint on the current API version, with an access key passed as a query parameter:
import requests
resp = requests.get(
"https://data.fixer.io/api/latest",
params={
"access_key": "YOUR_API_KEY",
"base": "USD",
"symbols": "EUR,GBP,INR",
},
timeout=10,
)
payload = resp.json()
# Fixer returns 200 even when the call fails, so check the body.
if not payload.get("success"):
raise RuntimeError(payload["error"]["info"])
print(payload["rates"]["INR"])
The base parameter needs a paid plan. Drop it on the free tier and you will get rates relative to EUR.
Full endpoint references: Fixer, Currencylayer, Exchange Rates Data API.
How accurate are the rates?
All three source spot rates from a broad set of commercial providers and banks, weighted toward commercial sources for major currencies, and run a validation and fallback pass that queries the next-priority source when one fails to deliver a quote. Rates are published to six decimal places.
All three also collect spot data within a 60-second market window. Your plan does not change how often the data is gathered. It changes how often the gathered data is published to you.
That distinction is the whole accuracy story. A rate refreshed daily is up to a day stale no matter how good the underlying feed is, and six decimal places on a stale number is false precision. If you are converting at checkout or pricing a cart in a volatile pair, budget for the 10 minute or 60 second tier and treat the free plan as a development key.
These are reference rates, not executable ones. Currencylayer and Exchange Rates Data API both document that they return the most representative market value available, generally the midpoint. If you need a rate you can actually trade on, you need a trading venue rather than any of these.
Get started
Sign up, grab your API key, and make your first currency conversion call in minutes. Start here: https://fixer.io/
Fixer, Currencylayer, and Exchange Rates Data API are APILayer products. You can browse the wider APILayer catalog for adjacent data APIs.
Explore APILayer Products
Discover APIs for geolocation, finance, aviation, weather, web scraping, AI, and more. Browse APILayer's product catalog to find the right APIs for your application and integrate the data and functionality your project needs.
Explore APILayer ProductsFind the right tools to start building.
FAQ
What is the best currency conversion API in 2026?
Fixer, for the widest published symbol list and an hourly free tier. Choose Exchange Rates Data API instead if standard HTTP status codes matter to your error handling.
How accurate are currency conversion APIs?
All three publish rates to six decimal places from validated multi-source feeds. Staleness is the bigger risk, and that is set by your plan’s refresh interval.
Which currency API has the most currency coverage?
Fixer publishes 170. The other two publish 168. The lists overlap almost entirely, so coverage is rarely the deciding factor.
Is there a free currency conversion API?
All three have a free plan with 100 requests a month and historical rates. Base switching and the convert endpoint require a paid plan.
How often do currency APIs update exchange rates?
Daily or hourly on free plans, every 10 minutes on mid tiers, every 60 seconds on top tiers.

