A currency exchange API returns the current or historical rate between two currencies, and usually converts an amount for you in the same call. You send a request with a base currency and one or more target currencies and get back JSON your app can use to price a cart, an invoice, or a dashboard.
The catch is that most of these products draw on the same handful of upstream feeds. The European Central Bank publishes euro reference rates once each working day; a few dozen other central banks publish their own, and a smaller set of vendors blend interbank and commercial quotes on top. So the real choice is rarely about whose numbers are more accurate. It is about how often the data refreshes, whether the free tier lets you pick your own base currency, how far back the history goes, and what you pay once you outgrow the free plan.
The APIs below are compared on where their data comes from, how fresh it is, the size and limits of the free tier, historical depth, and current US pricing. They range from a free, no-key, open-source option to a streaming feed made for trading screens.
What a currency exchange API gives you
Almost every provider here exposes the same core endpoints: a latest call for current rates, a historical call for a single past date, a time-series or range call for a span of dates, and a convert call that applies a rate to an amount. If you only need to show a price in the visitor’s currency, the latest endpoint is the whole job.
You need to look at data behind those endpoints.
- Reference-rate APIs pass through central-bank rates: accurate, free or cheap, but quoted against one base currency and refreshed about once a day.
- Aggregated APIs blend interbank and commercial sources, which lets them refresh every few minutes and quote against any base you ask for.
- Streaming APIs carry live tick data from trading venues and are priced for that.
One limit trips people up on the free plans. Central-bank data is published against a fixed base (euro for the ECB, and most APIs anchor their free tier to USD), so changing the base currency is almost always a paid feature. If your app needs rates quoted from GBP or AUD, check that the free tier allows it before you build against it.
Currency exchange APIs at a glance
| API | Data type | Free tier | Base currency (free) | Updates (free / paid) | Published price |
|---|---|---|---|---|---|
| Frankfurter | Central-bank reference | Unlimited, no key | Any | ~Daily | Free, open source |
| ExchangeRate-API | Blended, 3+ sources per currency | 1,500 req/mo | Any | Daily / to 5 min | From $10/mo |
| Open Exchange Rates | Blended commercial | 1,000 req/mo | USD only | Hourly / to 5 min | From $12/mo |
| Fixer | ECB + 16 sources | 100 req/mo | EUR only | Hourly / to 60 s | From $14.99/mo |
| CurrencyFreaks | Forex + crypto exchanges, banks | 1,000 req/mo | USD only | Daily / to 60 s | From $9.99/mo |
| currencyapi.com | Providers + banks | 300 req/mo | Any | Daily / to 60 s | From $9.99/mo |
| Abstract API | Central banks, fiat + crypto | 500 req total | Any | 45-60 min / to 60 s | From $12/mo (annual) |
| Finage | Trading venues, streaming | 3-day trial | Any | Real-time | From $599/mo |
| XE | 100+ sources, Rate Blender | Trial only | Any | Daily / minutely | From $799/yr |
I have checked each provider for its documented data sources, the endpoints it exposes, the size of its free tier and whether that tier allows base-currency switching, how often rates refresh on free and paid plans, how far back historical data goes, and its current pricing as published for US customers.
Pure trading terminals, money-transfer APIs that only serve approved partners, and unbranded marketplace listings with no vendor behind them have been left out.
Frankfurter
Frankfurter costs nothing, needs no API key or signup, and serves reference rates from the European Central Bank plus about 84 other central banks. It’s a good starting point for SaaS billing, e-commerce in major currencies, and accounting or reporting tools. Its documentation says plainly that it is not meant for live trading.
Key Features
- Endpoints for the latest rate, a single past date, a date range, and a one-pair lookup.
- Any currency can be the base; the response recalculates from the source data.
- Rates for 201 currencies, with history that the project says reaches back to 1948.
- A Docker image for self-hosting, backed by a small SQLite database.
- Responses can be pinned to one named central bank when you need an auditable source.
Pros & Cons
PROS
CONS
Pricing
Free. Open source under the MIT license, so you can also run your own copy.
– Public instance at api.frankfurter.dev: no key, no signup, no monthly quota (rate-limited only to curb abuse)
ExchangeRate-API
ExchangeRate-API blends central-bank and commercial data, and adds a currency only when it has at least three independent sources for it. For a straightforward integration that has outgrown a once-a-day rate, it is the commercial option with the least setup.

Key Features
- A plain-JSON response from the latest, past-date, and pair-conversion endpoints.
- A separate open-access endpoint serves current rates with no key for basic use.
- About 161 currencies across 200 countries.
- Country codes and currency symbols are added to responses on the paid plans.
Pros & Cons
PROS
CONS
Pricing
A free key covers light use; paid plans add faster refresh and higher volume.
– Free: 1,500 requests per month, once-daily updates, historical data included
– Pro: $10/month or $100/year, 30,000 requests per month, hourly updates
– Business: $30/month or $300/year, 125,000 requests per month, five-minute updates
Open Exchange Rates
Open Exchange Rates has served blended currency data since the early 2010s, covering more than 200 fiat and digital currencies from several providers through a plain JSON API, with time-series and conversion endpoints on top of the basics. That makes it a sound pick for a product that starts small and might need to scale.

Key Features
- One consistent JSON schema across the latest, historical, time-series, and convert calls.
- A dashboard with usage analytics and per-app IDs for tracking calls.
- Refresh cadence rises with the plan, from hourly on the free tier to every five seconds.
Pros & Cons
PROS
CONS
Pricing
The free plan is USD-only and hourly; paid plans unlock all base currencies and faster refresh. Annual billing includes two months free.
– Free: 1,000 requests per month, hourly updates, USD base only
– Developer: $12/month, 10,000 requests per month, all base currencies
– Enterprise: $47/month, 100,000 requests per month, 30-minute updates
– Unlimited: $97/month, unmetered requests, five-minute updates
Fixer
Fixer anchors its rates to European Central Bank data, so output is quoted against the euro by default. It covers 170 currencies from 16 sources, with history to 1999. apilayer sells near-identical APIs under other names: currencylayer is the USD-anchored version, and exchangerate.host is a lighter one that used to be free and now needs a key. Choose whichever default base currency saves you a conversion step.

Key Features
- Conversion, time-series, and fluctuation calls join the latest and historical basics on higher plans.
- A quickstart tool in the dashboard fires a test call against each endpoint before you write code.
- The currencylayer sibling adds gold and silver as XAU and XAG.
Pros & Cons
PROS
CONS
Pricing
The free plan is euro-base and hourly. Paid plans add base-currency switching and the conversion endpoint. Prices are close across the apilayer currency brands.
– Free: 100 requests per month, hourly updates
– Basic: $14.99/month, or $13.99/month billed yearly, 10,000 requests per month
– Professional: $59.99/month, 100,000 requests per month, 10-minute updates
– Professional Plus: $99.99/month, 500,000 requests per month, 60-second updates
CurrencyFreaks
CurrencyFreaks covers 166 fiat currencies, 860 cryptocurrencies, and four precious metals, and the free tier includes all of them, far more than any other free plan here. Rates come from forex exchanges, crypto exchanges, and national banks, normalized into one response that returns JSON or XML.

Key Features
- Latest, historical, range, and conversion calls under one API.
- End-of-day historical rates go back to November 1984.
- An IP-to-currency endpoint on mid tiers picks a currency from the visitor’s location.
- No hourly or per-second throttle; the only limit is the monthly quota.
- Usage alerts fire at 80, 90, and 100 percent of the monthly allowance.
Pros & Cons
PROS
CONS
Pricing
The free Developer plan is USD-base and daily; historical data and base-currency switching start on the first paid tier. Annual billing gives two months free.
– Developer: free, 1,000 requests per month, 24-hour updates
– Starter: $9.99/month, 15,000 requests per month, hourly updates
– Growth: $49.99/month, 150,000 requests per month, 10-minute updates
– Professional: $99.99/month, 550,000 requests per month, 60-second updates
currencyapi.com
currencyapi.com covers more than 170 currencies including major cryptocurrencies, refreshes every 60 seconds on paid plans, and reports 99.99 percent uptime over the past year. Its dashboard and predictable limits suit small teams shipping a converter or a pricing feature.

Key Features
- Endpoints for status, currency list, latest, historical, range, and conversion.
- A request playground in the dashboard builds and fires a call without code.
- Multiple API keys per account, so staging and production stay separate.
- The same team also operates freecurrencyapi.com, with a larger free quota and fewer endpoints.
Pros & Cons
PROS
CONS
Pricing
Every plan includes latest and historical rates. Annual billing is 20 percent off.
– Free: 300 requests per month, daily updates
– Small: $9.99/month, 15,000 requests per month, hourly updates, conversion endpoint
– Medium: $39.99/month, 600,000 requests per month, 60-second updates, range endpoint
– Large: $79.99/month, 1,700,000 requests per month, 60-second updates
Abstract API
Abstract API’s exchange rates endpoint draws on several central banks, including the European Central Bank and the Bank of Japan, and returns fiat and major crypto from one call: more than 150 currencies and 10,000 pairs, plus Bitcoin, Ethereum, Litecoin, gold, and silver. Historical data goes back decades, and every response uses 256-bit SSL.

Key Features
- Conversion works fiat-to-crypto and crypto-to-crypto, not only between fiat pairs.
- Data refreshes every 60 seconds on paid plans, and every 45 to 60 minutes on the free tier.
- SOC 2 Type II and GDPR, with a public status page.
- Prebuilt connectors for Zapier, AWS, Google Cloud, and others.
Pros & Cons
PROS
CONS
Pricing
Free access is a one-time batch of calls; the Standard plan is much cheaper billed annually.
– Free: 500 requests total, one request per second
– Standard: $19/month, or $12/month paid annually, with the annual plan allowing 120,000 requests per year
– Enterprise: custom, adds an uptime SLA, SSO, and a dedicated account manager
Finage
Finage streams live data for more than 3,500 currency pairs over WebSocket with millisecond latency, and carries the last price, OHLCV bars, aggregates, and level 1 and level 2 market depth a trading screen needs. Priced as a market-data feed, it is far more than a converter or a checkout calls for.

Key Features
- A REST forex endpoint alongside the stream, on public, VPS, or dedicated servers.
- Around 12 to 13 years of historical OHLCV data for backtesting.
- Separate real-time trade, daily, changes, and tick data feeds.
- A three-day free trial covering real-time and delayed data across every market.
Pros & Cons
PROS
CONS
Pricing
Priced as a market-data feed, not a per-call API.
– Real-Time Forex Data Feed: from $599/month
– Forex and Crypto bundle: from $949/month
– Free trial: three days across all markets
XE
XE is a platform I have personally used for a long time. Its Currency Data API pulls from more than 100 sources through the Rate Blender, covers 220-plus currencies including selected cryptocurrencies, and has history to 1998. Finance and operations teams reach for it because they already know the XE brand, and it goes behind an ERP, a billing system, or an accounting workflow.

Key Features
- Latest and historical rates, plus a monthly average rate field.
- The Rate Blender filters out anomalous quotes before they reach the response.
- Official SDKs for Java, Node.js, PHP, and Python.
- Plans are sized by request volume and by the number of business entities on the key.
Pros & Cons
PROS
CONS
Pricing
Annual billing only. The entry plan is daily rates; hourly and faster refresh start one tier up.
– Lite: $799/year, 10,000 requests per month, one entity, daily rates
– Intermediate: $1,799/year, 50,000 requests per month, up to five entities, hourly and daily rates
– Prime: $4,499/year, 150,000 requests per month, up to 10 entities, 15-minute rates
– Add-ons: live minutely rates and alternative source rates are priced separately
Other options worth knowing
A few more are worth a look if your situation is narrower or your budget is different.
The fawazahmed0 exchange-api project is the most generous free option after Frankfurter: static JSON served from a public CDN, no key, no rate limits, 200-plus currencies including crypto and metals, updated once a day, released into the public domain. It has no company or support behind it, so treat it as you would any free CDN dependency.
Xignite, long a fixture in FX-data roundups, is now part of QUODD after a 2023 acquisition. Its FX catalog lives on inside QUODD’s enterprise market-data suite, sold through sales conversations rather than a signup form, so it no longer fits a developer who wants to start today.
Wise exposes a mid-market rate endpoint and a transfer-cost comparison feed, which is the right data if you are showing users what a real transfer would cost. Access is gated: you apply to the Wise Platform or affiliate program, and Wise issues credentials after a review.
If you already pull equities or fundamentals data, Financial Modeling Prep and multi-asset market-data APIs such as Twelve Data and Polygon.io include forex quotes and a conversion endpoint in their plans. They make sense when currency data is a small part of a larger market-data need, not when it is the whole requirement.
How to choose
Start with what the data is for. Displaying a localized price, billing a subscription, or booking an invoice needs an accurate daily rate and nothing more, so a free reference-rate API like Frankfurter or a low-tier commercial plan covers it. A currency converter that users watch move wants a 60-second refresh, which puts you on a mid-paid tier. Only a trading or treasury screen needs the live tick data that Finage or an enterprise feed provides.
Check the base-currency limit on the free tier before you write any code. If your app quotes in USD, most free plans work as they are. If it quotes from euros, sterling, or anything else, either budget for the paid plan that unlocks base switching or pick one of the few that allow it for free: Frankfurter, ExchangeRate-API, currencyapi.com, and Abstract API.
Then weigh history and support. Backtesting or trend analysis rewards the deep archives at CurrencyFreaks and XE. A production system that cannot tolerate a silent outage is worth a paid plan with a named contact rather than a community project. And since so many of these resell the same central-bank and interbank data, the quota, the refresh rate, the support, and the price are usually what actually separate them.
Frequently Asked Questions
Yes. Frankfurter and the fawazahmed0 exchange-api project are free with no API key and no monthly cap, both serving reference rates that refresh about once a day. Most commercial providers also have a free tier, typically 300 to 1,500 requests a month with once-daily updates and the base currency locked to USD.
Central-bank data is published against one base: the European Central Bank quotes against the euro, and most APIs anchor their own free tier to USD. Recalculating rates against an arbitrary base is a paid feature on Fixer, currencylayer, Open Exchange Rates, and CurrencyFreaks, though a handful of others allow it for free.
Reference-rate feeds from central banks update roughly once per working day and skip weekends and holidays. Commercial APIs refresh anywhere from every 60 minutes down to every 60 seconds, depending on the plan. Only streaming APIs such as Finage carry live tick data.
Not the reference-rate APIs. They give you an official daily or hourly rate, not the live bid and ask a trade executes against. For that you need a streaming feed like Finage, an enterprise provider that offers bid-ask pricing, or your broker’s own data.
Most of it traces back to the European Central Bank and several dozen other central banks, which publish official reference rates. Vendors like Open Exchange Rates, XE, and CurrencyFreaks blend those with interbank and commercial quotes to refresh more often and cover more currencies.
