Note: API v1 is deprecated and will be retired on 31st July 2026, at which point all v1 traffic will be redirected to v2. This SDK (v2.0.0+) targets API v2. If you are on an older version of this SDK, please upgrade.
CurrencyApi.net provides live currency rates via a REST API. A live currency feed for over 166 currencies, including physical (USD, GBP, EUR + more) and cryptos (Bitcoin, Litecoin, Ethereum + more). A JSON and XML currency api updated every 60 seconds.
Features:
- Live exchange rates (updated every 60 seconds).
- 166 currencies world currencies.
- Popular cryptocurrencies included; Bitcoin, Litecoin etc.
- Convert currencies on the fly with the convert endpoint.
- Historical currency rates back to year 2000.
- OHLC (Open, High, Low, Close) data for technical analysis (Tier 3+).
- Easy to follow documentation
Signup for a free or paid account here.
Python wrapper for CurrencyApi.net endpoints (API v2).
For an easy to following developer guide, check out our Python Developer Guide.
Alternatively keep reading below.
- Minimum Python version 3.10
- Last tested and working on Python 3.14
- Free or Paid account with CurrencyApi.net
- 100% coverage
View our Python SDK guide
pip install currencyapinet
from currencyapinet import Currency
currency = Currency('YOUR_API_KEY')Returns live currency rates for all supported currencies. Base currency defaults to USD.
result = currency.rates().get()
# With optional base currency
result = currency.rates().base('EUR').get()
# XML output
result = currency.rates().output('XML').get()Converts an amount from one currency to another.
result = currency.convert().from_currency('USD').to_currency('EUR').amount(100).get()Returns historical currency rates for a specific date.
result = currency.history().date('2023-12-25').get()
# With optional base currency
result = currency.history().base('GBP').date('2023-12-25').get()Returns historical currency rates for a date range (max 365 days).
result = currency.timeframe().start_date('2023-12-01').end_date('2023-12-31').get()
# With optional base currency
result = currency.timeframe().base('GBP').start_date('2023-12-01').end_date('2023-12-31').get()Returns a list of all supported currencies.
result = currency.currencies().get()Returns OHLC (Open, High, Low, Close) data for a currency pair on a specific date. Requires a Tier 3 subscription.
Parameters:
| Parameter | Required | Description |
|---|---|---|
quote |
Yes | Quote currency code (e.g. EUR, GBP, BTC) |
date |
Yes | Date in YYYY-MM-DD format (must be in the past) |
base |
No | Base currency code (defaults to USD) |
interval |
No | Time interval: 5m, 15m, 30m, 1h, 4h, 12h, 1d (defaults to 1d) |
# Basic request (1-day interval)
result = currency.ohlc().quote('EUR').date('2023-12-25').get()
# With custom interval
result = currency.ohlc().quote('GBP').date('2023-12-25').interval('1h').get()
# With custom base currency and interval
result = currency.ohlc().quote('JPY').date('2023-12-25').base('EUR').interval('4h').get()
# XML output
result = currency.ohlc().quote('EUR').date('2023-12-25').output('XML').get()Example response:
{
"valid": true,
"base": "USD",
"quote": "EUR",
"date": "2023-12-25",
"interval": "1d",
"ohlc": [
{
"start": "2023-12-25T00:00:00Z",
"open": 0.92000000000000,
"high": 0.92500000000000,
"low": 0.91800000000000,
"close": 0.92200000000000
}
]
}