Exchange Rate API - Real-Time Forex & Crypto Rates for 1,000+ Assets
The Exchange Rate API returns live foreign-exchange and cryptocurrency rates for 171+ fiat currencies and 830+ digital assets - plus precious metals - from a single REST endpoint. Rates refresh as often as every 60 seconds, with historical pricing available as far back as 1984 for the longest-running pairs, all delivered at 99.9% uptime. It's built for fintech developers pricing transactions, e-commerce engineers localising checkout, and trading and analytics teams that need both spot and historical figures in one feed. Start with 10,000 free credits - no credit card required.
Features
1,000+ Fiat, Crypto & Metal Assets
One integration covers 171+ fiat currencies, 830+ cryptocurrencies (including stablecoins and altcoins), and precious metals. Pass a comma-separatedsymbols list to pull only the assets you track, or omit it to receive the full rates map in a single response. Use it for any product that has to price both traditional FX and digital assets without stitching together two providers.60-Second Rate Refresh
Theupdates parameter sets how fresh your data is - 1m (default), 10m, 1h, or 1d - so you can match refresh frequency to your workload instead of accepting a fixed cadence. One-minute updates suit live trading dashboards and crypto wallets; daily updates keep batch jobs cheap. Use it to balance precision against call volume on high-traffic pricing screens.Historical Rates Back to 1984
The historical endpoint accepts adate parameter (YYYY-MM-DD) and returns the closing rates for that day, with coverage reaching back to 1984 for major fiat pairs and metals. Use it for financial auditing, tax compliance, invoice reconciliation, and backtesting - any workflow that needs a verifiable rate for a specific past date rather than a live quote.Custom Base Currency & Filtering
Set any supported currency as thebase (USD by default; fiat, crypto, or metals all valid) and the entire rates map is recalculated against it - no client-side cross-rate math. Combine base with a filtered symbols list to cut payload size and latency on every call. Use it to serve cross-border price calculations in a customer's home currency directly from the response.JSON or XML, Lightweight Response
Every response is a compact object -date, base, and a rates map keyed by currency code - returned as JSON by default or XML via the format parameter. The flat structure parses in one step with no nested unwrapping. Use it to drop live rates straight into pricing widgets, accounting software, or data pipelines without a transformation layer.Industry-Leading Use Cases
E-commerce & Global Checkout
Convert catalogue prices into a shopper's local currency at page load using the latest rates, so totals match what their bank will charge and cart abandonment drops. For converting a specific order total rather than displaying a rate table, pair this with the Currency Converter API.FinTech & Crypto Wallets
Drive balances, tickers, and portfolio screens with sub-minute refreshes across both fiat and 830+ digital assets from one feed. A single base-currency setting lets every user see holdings in their own currency without extra conversion logic.Financial Auditing & Compliance
Pull the exact rate for any historical date to reconcile invoices, prepare tax filings, and support cross-border accounting with defensible figures. Coverage back to 1984 means even long-tail audit periods resolve to a real recorded rate.Market Analysis & Reporting
Feed live and historical rates into dashboards and risk models. When you need a continuous series over a date range or period-over-period movement, extend this with the Currency Time Series API and Currency Fluctuation API.Latest Currencies Exchange Rates
API Endpoint
$ pip install requestsimport requests
url = "https://api.apifreaks.com/v1.0/currency/rates/latest?base=USD&symbols=JPY%2CEUR&updates=1d"
payload = {}
headers = {
'X-apiKey': 'API-KEY'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
Historical Currencies Exchange Rates
API Endpoint
$ pip install requestsimport requests
url = "https://api.apifreaks.com/v1.0/currency/rates/historical?base=USD&symbols=EUR%2CGBP&date=2024-09-01"
payload = {}
headers = {
'X-apiKey': 'API-KEY'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
How-To-Guides
Get the Latest Rates
Request live rates for a short list of currencies against USD.
# Response { "date": "2026-06-26 12:15:00+00", "base": "USD", "rates": { "EUR": "0.877078", "GBP": "0.756544", } }curl -X 'GET' 'https://api.apifreaks.com/v1.0/currency/rates/latest?apiKey=API-KEY&base=USD&symbols=EUR,GBP'
Filter Symbols and Switch Base Currency
Set any base and request only the pairs you need to reduce payload size.
# Response { "date": "2026-06-26 12:16:00+00", "base": "EUR", "rates": { "JPY": "184.30857492053502", "USD": "1.1401000551808427" } }curl -X 'GET' 'https://api.apifreaks.com/v1.0/currency/rates/latest?apiKey=API-KEY&base=EUR&symbols=USD,JPY'
Choose Your Update Interval
Use updates to control refresh frequency (1m, 10m, 1h, 1d).
# Response { "date": "2026-06-26 12:17:00+00", "base": "USD", "rates": { "BTC": "0.0000168114327157", "ETH": "0.0006465210701217" } }curl -X 'GET' 'https://api.apifreaks.com/v1.0/currency/rates/latest?apiKey=API-KEY&base=USD&symbols=BTC,ETH&updates=1m'
Get a Historical Rate for a Specific Date
Pass date (YYYY-MM-DD) to the historical endpoint to retrieve the recorded rates for a single past day. For a continuous series across a date range, use the Currency Time Series API - it returns the whole range in one call, which is more efficient than looping this endpoint date by date.
# Response { "date": "2024-09-01", "base": "USD", "rates": { "EUR": "0.9053850174642575", "GBP": "0.7616086740135972", } }curl -X 'GET' 'https://api.apifreaks.com/v1.0/currency/rates/historical?apiKey=API-KEY&base=USD&symbols=EUR,GBP&date=2024-09-01'
Return XML Instead of JSON
Add format=xml for systems that consume XML.
# Response <LatestRatesResponse> <date>2026-06-26 12:18:00+00</date> <base>USD</base> <rates> <EUR>0.877001</EUR> </rates> </LatestRatesResponse>curl -X 'GET' 'https://api.apifreaks.com/v1.0/currency/rates/latest?apiKey=API-KEY&base=USD&symbols=EUR&format=xml'
Frequently Asked Questions
updates parameter: 1m (the default - every 60 seconds), 10m, 1h, or 1d. The service runs at 99.9% uptime.date parameter (YYYY-MM-DD) and returns the recorded rates for that day. Coverage reaches back to 1984 for major fiat pairs and precious metals; newer assets begin from their launch (for example, most cryptocurrencies from 2013 onward).base or include it in symbols.base (USD is the default) and every value in the rates map is calculated against it.date, base, and a rates map keyed by currency code (for example "EUR": "0.859476"). Add format=xml to receive the same structure as XML.Pricing
To use the Currency Rates APIs, API credits are required. Charges are applied only for successful queries, indicated by a 2xx status code. If a request results in a 4xx or 5xx status code, no credits will be deducted, and any credits already charged will be promptly refunded.
| Service | Credits |
|---|---|
| Latest Currency rates | 4 credits |
| Historical Currency Rates | 2 credits |
| Non-USD Base Currency | 2 additional credit |
Utilize the Credits Usage API to efficiently monitor your recent consumption of both one-off and subscription credits. This API provides a streamlined way to track and manage your credit usage, ensuring you stay informed about your remaining balance and can optimize your resource allocation effectively.