What’s included in the free plan
| Feature | Free plan |
|---|---|
| Requests per month | 300 |
| Rate limit | 10 requests per minute |
| Update frequency | daily |
Latest exchange rates (/v1/latest) | Included |
Historical exchange rates since 1999 (/v1/historical) | Included |
Single-pair rates (/v1/rate) and cross-rate tables (/v1/matrix) | Included |
Fluctuation between two dates (/v1/fluctuation) | Included |
Monthly, quarterly & yearly averages (/v1/average) | Included |
Supported currencies (/v1/currencies) | Included |
Quota status (/v1/status, free of charge) | Included |
| Any base currency | Included |
| JSON, CSV and Excel (XLSX) output | Included |
| 190+ currencies incl. crypto and metals | Included |
| HTTPS encryption | Included |
| API keys | Unlimited |
| Credit card required | No |
Free plan: $0, 300 requests a month, up to 10 requests a minute, daily updates, no credit card. Paid plans cost $9.99 to $74.99 a month and add conversion (from Basic), time series and OHLC candles (from Professional), hourly or 60-second updates and no per-minute limit – see endpoints by plan.
Worked example: refreshing rates once an hour is about 744 requests in a 31-day month (24 × 31). That is above the Free plan’s 300 requests, and hourly-updated rates start on Basic (15,000 requests a month). On Free, rates update once a day, so one call per day – about 31 a month – is all you need; cache it and serve every user from that copy.
Get started in three steps
- Create a free account – no payment details needed.
- Copy your API key from the dashboard.
- Make your first request:
curl -G "https://api.fxapi.com/v1/latest" \
-d base_currency=USD -d currencies=EUR,GBP,JPY \
-H "apikey: YOUR_API_KEY"
That’s it – you’ll get the latest rates as JSON. Try it without an account in the live demo on the homepage.
Make 300 requests go a long way
The free plan updates rates once a day, so there is no point fetching them more often. A simple pattern covers most small projects with a fraction of the quota:
- Fetch once per day on your server (cron job, serverless scheduled function, GitHub Action) – that’s about 30 requests a month.
- Request all currencies at once – leave out
currenciesand one call returns every rate. - Store the result in a file, database or KV store and convert locally:
amount × rate. - Check your remaining quota with
/v1/status– it doesn’t count against your limit.
# daily_rates.py – run once a day, e.g. via cron
import json, os, requests
r = requests.get(
"https://api.fxapi.com/v1/latest",
headers={"apikey": os.environ["FXAPI_KEY"]},
timeout=10,
)
r.raise_for_status()
with open("rates.json", "w") as f:
json.dump(r.json(), f)
Good fits for a free currency API
- Side projects, prototypes and hackathons
- Student and university projects
- Personal finance and budgeting tools
- Internal dashboards with daily refresh
- Static sites that rebuild once a day
- Testing an integration before going live
When to upgrade
Upgrade when you need fresher data (hourly on Basic, every 60 seconds on Professional and Enterprise), more requests, the currency converter API, time series, sandbox keys, team management or an SLA. You can switch plans at any time, and yearly billing gives you two months free.
All of this is part of the fxapi FX rates API – one key, one response format and 190+ currencies across every endpoint.