Skip to content

houseofapis/currencyapi-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CurrencyApi Python wrapper

PyPI version Coverage Status

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.

This package is a:

Python wrapper for CurrencyApi.net endpoints (API v2).

Developer Guide

For an easy to following developer guide, check out our Python Developer Guide.

Alternatively keep reading below.

Prerequisites

  • Minimum Python version 3.10
  • Last tested and working on Python 3.14
  • Free or Paid account with CurrencyApi.net

Test Coverage

  • 100% coverage

Installation

View our Python SDK guide

pip install currencyapinet

Usage

from currencyapinet import Currency

currency = Currency('YOUR_API_KEY')

Rates

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()

Convert

Converts an amount from one currency to another.

result = currency.convert().from_currency('USD').to_currency('EUR').amount(100).get()

History

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()

Timeframe

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()

Currencies

Returns a list of all supported currencies.

result = currency.currencies().get()

OHLC

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
    }
  ]
}