Exchange Rate API
Exchange Rate API for Developers
Real-time currency exchange data and historic rates, updated every 60 seconds. Integrate easily with our JSON and XML API to power your app, website, or tool.
{
"valid": "",
"updated": "",
"base": "USD",
"rates": {
"AED": "Try it below",
"AFN": "Try it below",
"ALL": "Try it below",
"AMD": "Try it below",
// ... loads more
}
}Why Choose Our Exchange Rate API?
Our Exchange Rate API provides instant access to live currency rates from global sources including central banks and financial institutions. Whether you're building a financial application, an e-commerce platform, or a mobile app, we deliver reliable currency data with high accuracy, updated every 60 seconds.
With support for over 166 currencies, including cryptocurrencies and precious metals, our API lets you stay informed with the latest exchange rates and historical forex data, all accessible in JSON or XML formats.
Real-time Updates: Currency rates are updated every 60 seconds, ensuring data accuracy for critical decisions.
Wide Range of Currencies: Over 166 world currencies, including cryptocurrencies and precious metals.
Developer-friendly Integration: Simple JSON and XML responses for easy integration across platforms.
Historical Data Access: Gain insights with exchange rate data dating back to 2000.
Reliable Data Sources: Sourced from central banks and top financial institutions worldwide.
How Our Exchange Rate API Works
Sign Up
Create a free account to get started. Paid plans start at just $9.99/month, providing additional features and a higher request limit.
Get Your API Key
After signing up, you'll receive an API key. Use this key to authenticate requests to our API endpoints and start accessing exchange rate data.
Integrate the API
Use our SDKs or code samples in various languages to quickly integrate the API. You'll be able to access real-time and historical exchange rates in minutes.
Exchange Rate API Plans & Pricing
Choose the perfect plan for your needs and access reliable exchange rate API data for your applications. We offer a free exchange rate API for small personal projects, or paid plans for production application utilising live and historical exchange rate data with flexible options to suit any requirement.
Free
$0/month
Free forever.
- 500 monthly requests
- Updated every 60 minutes
- Includes Live Rates
- Secured using HTTPS
- No Historical Rates
- No Slack Notifications
- Fixed base currency
- No team management
- 10 requests per min
- Only 1 API key
- No IP whitelisting/blacklisting
- No technical support
- Personal use only
Essential
$9.99/month
$24 with annual billing.
- 20,000 monthly requests
- Updated every 60 minutes
- Includes Live Rates
- Includes Convert Rates
- Includes Historical Rates
- Change base currency
- Slack Notifications
- No rate limits
- Secured using HTTPS
- Technical email support
- Commercial Use
- No team management
- Only 1 API key
- No IP whitelisting/blacklisting
Bonus Perks
- $20 Railway hosting credit*
StartUp
$34.99/month
$84 with annual billing.
- 125,000 monthly requests
- Updated every 60 seconds
- Includes Live Rates
- Includes Convert Rates
- Includes Historical Rates
- Includes Timeframe Endpoint
- Team management
- 2 API keys
- Change base currency
- Slack Notifications
- No rate limits
- Secured using HTTPS
- Technical email support
- Commercial Use
- No IP whitelisting/blacklisting
Bonus Perks
- $20 Railway hosting credit*
Professional
$74.99/month
$180 with annual billing.
- 10,000,000 monthly requests
- Updated every 60 seconds!
- Includes Live Rates
- Includes Convert Rates
- Includes Historical Rates
- Includes Timeframe Endpoint
- Includes OHLC Endpoint
- Team management
- 5 API keys
- IP whitelisting/blacklisting
- Change base currency
- Slack Notifications
- No rate limits
- Secured using HTTPS
- Technical email support
- Commercial Use
Bonus Perks
- $20 Railway hosting credit*
Core API Endpoints
/api/v2/rates
Get the latest exchange rates for over 166 currencies, updated every minute (based on plan).
/api/v2/convert
Convert an amount from one currency to another in real-time, with up-to-the-minute exchange rates.
/api/v2/history
Get historic exchange rates for a specific currency pair and date range.
/api/v2/timeframe
Get exchange rates for a specific date range and period.
/api/v2/currencies
Get a comprehensive list of all 166 supported currencies, cryptos, and metals.
Use Cases for Our Exchange Rate API
Currency Converter Apps
Integrate real-time exchange rates into mobile and web apps, enabling users to convert currencies quickly and accurately.
Example: Travel apps, budgeting tools
E-commerce Platforms
Display prices in multiple currencies to reach a global audience, with exchange rates updated in real-time to reflect accurate pricing.
Example: Shopify, WooCommerce
Financial Analysis Tools
Access historical exchange data to analyze market trends and generate forecasts, helping users make informed decisions.
Example: Investment platforms, portfolio trackers
Invoicing Systems
Generate invoices with accurate conversion rates for international clients, eliminating manual calculations and errors.
Example: FreshBooks, Xero
Crypto Wallets
Provide users with up-to-date exchange rates for cryptocurrencies, allowing real-time monitoring of asset values.
Example: Coinbase, MetaMask
Admin Dashboards
Display live exchange rates in admin panels for quick reference, helping business owners track and manage currency fluctuations.
Example: Internal dashboards, financial CRMs
How Do I Get Started?
Getting started with our Exchange Rate API is straightforward. Follow these three steps to go from sign-up to live data in minutes.
- Sign Up and get your API key.
- Integrate our API into your application using our SDKs or code examples.
- Make requests and receive currency data in JSON or XML.
50+ Million Monthly Requests
We are already serving millions of requests per month.
10,000+ Customers
Trusted by thousands of developers and businesses worldwide.
~50ms Avg. Response Time
Providing swift data retrieval for seamless user experiences.
330 Edge Locations
Leveraging a global network to ensure optimal performance and reliability.
Live & Real-Time Exchange Rate API
Our real-time exchange rate API delivers live FX data directly from central banks and global financial institutions. Rates for 166 ISO 4217 currencies — including fiat, cryptocurrencies, and precious metals — are refreshed on a continuous basis so your application always reflects the current mid-market rate.
Rate freshness depends on your plan: Professional and StartUp subscribers receive updates every 60 seconds, while Essential and Free plans receive updates every 60 minutes. All plans share the same endpoint structure and JSON/XML response format.
60-second updates on Professional and StartUp plans — suitable for trading dashboards and live pricing engines.
166 currencies including fiat, crypto (BTC, ETH, XRP, and more), and precious metals (XAU, XAG).
Single endpoint — GET /api/v2/rates — returns all rates in one call or filtered to a specific base currency.
Low latency (~50 ms avg.) via 330 edge locations worldwide.
Example request:
GET https://currencyapi.net/api/v2/rates?key=YOUR_API_KEY&base=USD
This returns the live mid-market rate for every supported currency relative to USD. Specify base to change the base currency, or add output=XML to switch the response format.
The same endpoint powers the live rates playground above — so you can test with a real API key before you write a line of code.
JSON & XML Response Format
The API returns JSON by default. Append output=XML to any request to receive the same data as XML — no other change needed.
{
"valid": true,
"updated": 1768586454,
"base": "USD",
"rates": {
"ADA": 2.5907865154,
"AED": 3.6725,
"AFN": 65.5,
"ALL": 83.149975586,
"AMD": 379.9899999999,
"ANG": 1.7889087657,
"AOA": 918.6679999999,
"ARS": 1429.127762223,
"AUD": 1.4966549074,
"AWG": 1.79,
"AZN": 1.7,
// ... loads more
}
} The response shape is consistent across all plans. The updated field is a Unix timestamp indicating when the rates were last refreshed. The base field reflects the currency all rates are expressed relative to (default: USD). Each rate in the rates object is the amount of that currency equal to 1 unit of the base.
To switch to XML, append &output=XML to your request URL — for example: https://currencyapi.net/api/v2/rates?key=YOUR_API_KEY&output=XML. The XML response wraps the same fields in a element and individual child nodes.
Explore More API Capabilities
The Exchange Rate API is the foundation. These dedicated API pages cover specific use cases in depth.
Currency Conversion API
Convert any amount between 166 currencies server-side with a single REST call to /api/v2/convert. Ideal when you need the converted amount directly rather than the raw rate.
Cryptocurrency Exchange Rate API
Access live and historical rates for Bitcoin, Ethereum, XRP, and 9 more crypto assets alongside 150+ fiat currencies — all from the same endpoint.
Historical Exchange Rate API
Query daily exchange rates back to January 2000 via /api/v2/history (single day) or /api/v2/timeframe (date range). Built for reporting, backtesting, and compliance.
Frequently Asked Questions
Below are some of our most asked questions. Get in touch if you have more questions.
Is there any sample JSON (or XML) data that shows the response from your API?
Although most requests made to our application request a JSON response, we also have the ability to return XML from our JSON API. This option is available on all subscription plans.
Its super easy to change the output of the response when calling our exchange rate XML API. All that's needed is adding or modifying the output parameter in the URL and as long as you apply a correct value and a valid API key, you will get the response your looking for.
An example request to our rates API would look like this:
https://currencyapi.net/api/v2/rates?key=YOUR_API_KEY&output=XML
This will return reliable currency exchange rate data from our exchange rate XML API. Developers will then be able to parse this XML response and convert it into something your application can read.
Is there example code available?
Getting started with our currency exchange rate API can be done in seconds. We supply example exchange rate code so developers can get reliable currency data straight away.
So which languages do you supply example code? Python, NodeJs, GoLang / Go, PHP, cUrl, Ruby, Java, jQuery and Javascript.
To see how this works, head over to our documentation page and using the tabs, select which language you want to see the example exchange rate code. Within minutes, you will have access to real time, accurate and reliable exchange rate data. Because our application is a JSON API by default, it doesn't matter which programming language or framework your application uses, your application will be able to work with the response easily.
We also supply example code when using our premade packages in both PHP and NodeJs. Using composer or NPM you get access to our premade methods making it even easier to interact with our API.
Is the exchange rate data live?
Yes. Exchange rates are updated every 1 minute on Professional and StartUp plans, and every 60 minutes on Essential and Free plans. Data is sourced from central banks and financial institutions worldwide, covering 166 ISO 4217 currency codes including cryptocurrencies and precious metals.
• Professional and StartUp Plans — updated every 1 minute
• Essential & Free Plans — updated every 60 minutes
Is the API for exchange rates free?
Yes. CurrencyAPI offers a free exchange rate API with 500 requests/month — no credit card required. The free plan provides live rates updated every 60 minutes and is intended for personal, non-commercial projects.
Paid plans start at $9.99/month (Essential) and go up to $74.99/month (Professional), unlocking faster updates (down to 1 minute), historical data back to the year 2000, higher request limits, and commercial usage rights.
How far back does the historical exchange rate data go?
Historical exchange rate data goes back to January 1, 2000 — over 25 years of daily rates sourced from central banks and financial institutions globally. Data is available for all fiat currencies supported at the time; cryptocurrencies such as Bitcoin are available from their respective launch dates.
Historical data is accessible on Essential plans and above via two dedicated endpoints:
• /api/v2/history — rates for a specific date
• /api/v2/timeframe — rates across a date range in a single call
Do you offer support for the exchange rate API?
Yes. Email support is available on all paid plans. Free plan users can access our full documentation and FAQ.
• Email support (paid plans)
• Comprehensive documentation with code examples in 7 languages (Python, Node.js, PHP, Go, Ruby, Java, cURL)
What is a currency exchange rate API?
A currency exchange rate API provides programmatic access to real-time and historical exchange rates across world currencies. Our API returns JSON or XML and includes endpoints for live rates, conversion, and historical data — all accessible with a single API key.
Do you include cryptocurrencies and precious metals?
Yes. Alongside fiat currencies, our exchange rate API includes major cryptocurrencies (BTC, ETH, XRP, LTC, ADA, BNB, DOGE, DOT, LINK, SOL, USDC, USDT) and precious metals (XAU, XAG). You can view the full supported list on the Currency List page.
Does the Free plan include the historical rates endpoint?
No. Historical exchange rates are available on paid plans (Essential and above). The Free plan provides live rates updated every 60 minutes and is ideal for light usage and personal projects. Paid tiers unlock historical, timeframe, and conversion endpoints with higher request limits.
How accurate are the exchange rates?
Rates are aggregated from reputable financial sources and central banks. Our infrastructure includes automated validation and fallback providers to ensure data quality. Update frequency depends on plan: Professional (1 min), StartUp (10 min), Essential and Free (60 min).
Do you have an example application using your exchange rate API?
Yes. Our interactive Currency Converter demonstrates live rates, conversions, and formatting in real time. It is powered by the same endpoints you will use in production and is a good reference for how to structure client-side integration.