Skip to main content

fxrateapi

Official Python SDK for fxrateapi.com — exchange rates, currency conversion, and time series data from ECB, FRED, and OXR.

Installation

pip install fxrateapi

Quick start

from fxrateapi import FxRateApiClient

client = FxRateApiClient(api_key="fxr_your_key_here")

# Latest rates
rates = client.latest(base="USD", symbols=["EUR", "GBP", "JPY"])
print(rates.rates["EUR"])  # 0.847

# Convert 1000 USD → EUR
result = client.convert(from_currency="USD", to="EUR", amount=1000)
print(result.result)  # 847.4

# Historical (immutable, cache forever)
hist = client.historical("2020-03-16", base="USD")

# Time series (max 366 days)
ts = client.timeseries(start="2024-01-01", end="2024-03-31", symbols=["EUR"])
for date, day_rates in ts.rates.items():
    print(date, day_rates.get("EUR"))

Async usage

import asyncio
from fxrateapi import AsyncFxRateApiClient

async def main():
    async with AsyncFxRateApiClient(api_key="fxr_your_key_here") as client:
        # Fetch concurrently
        latest, usage = await asyncio.gather(
            client.latest(base="USD", symbols=["EUR", "GBP"]),
            client.usage(),
        )
        print(latest.rates["EUR"])
        print(f"{usage.requests.used}/{usage.requests.limit} requests used")

asyncio.run(main())

Error handling

from fxrateapi import FxRateApiClient
from fxrateapi.exceptions import FxRateApiResponseError, FxRateApiTimeoutError

client = FxRateApiClient(api_key="fxr_your_key_here")

try:
    client.latest(base="INVALID")
except FxRateApiResponseError as e:
    print(e.status)     # 422
    print(e.code)       # "fx_invalid_symbol"
    print(e.why)        # human-readable reason
    print(e.how_to_fix) # suggestion
except FxRateApiTimeoutError as e:
    print(f"Timed out after {e.timeout}s")

API reference

See docs.fxrateapi.com for full API documentation.

License

MIT

Metadata

Release files for fxrateapi 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fxrateapi 0.1.0
File Size Uploaded
fxrateapi-0.1.0.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fxrateapi 0.1.0
File Interpreter ABI Platform
fxrateapi-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.1 kB

Release files / fxrateapi-0.1.0.tar.gz

Download URL fxrateapi-0.1.0.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
944f8e960098ef69793e240b4d9d900cf2972ea110b0e3895f4e5105109e62d1
BLAKE2b-256 checksum
How to use checksums
5ecbda6d2452c8292e61ce0f8b1a980243be207a1fe2d66bbc2f71be10ecbd70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / fxrateapi-0.1.0-py3-none-any.whl

Download URL fxrateapi-0.1.0-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
76b86bb7237ea678ab9d606499034093ddbc86b7b0bf98a6a23da3c44b09e8ae
BLAKE2b-256 checksum
How to use checksums
0179af523ce6f1edc59635d593f4f9dc05d2f500500ab2c2c8ddd8fdd0a73fd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page