Everything you need to handle exchange rates
Currency data have become a basic need for almost every web developer. For this reason, we believe basic use cases should be available for free!
1k Free Monthly Requests
Perfect for hobby projects. No commercial use allowed.
33 World Currencies
Features the 33 most important international currencies.
Daily Updates
All exchange rates are updated on a daily basis.
What the free currency API includes
Free plan at a glance
- Currencies
- 33, any of them as base
- Updates
- Daily (end-of-day rates)
- History
- Daily rates back to 1999-01-01
- Monthly quota
- 1,000 requests
- Rate limit
- 10 requests per minute
- Endpoints
- latest, historical, currencies, status
Failed requests and validation errors do not count against the quota. Need minute updates, 170+ currencies or time series? Upgrade to currencyapi.com.
Currencies covered
- EUR Euro
- USD US Dollar
- JPY Japanese Yen
- BGN Bulgarian Lev
- CZK Czech Koruna
- DKK Danish Krone
- GBP British Pound
- HUF Hungarian Forint
- PLN Polish Zloty
- RON Romanian Leu
- SEK Swedish Krona
- CHF Swiss Franc
- ISK Icelandic Króna
- NOK Norwegian Krone
- HRK Croatian Kuna
- RUB Russian Ruble
- TRY Turkish Lira
- AUD Australian Dollar
- BRL Brazilian Real
- CAD Canadian Dollar
- CNY Chinese Yuan
- HKD Hong Kong Dollar
- IDR Indonesian Rupiah
- ILS Israeli New Shekel
- INR Indian Rupee
- KRW South Korean Won
- MXN Mexican Peso
- MYR Malaysian Ringgit
- NZD New Zealand Dollar
- PHP Philippine Peso
- SGD Singapore Dollar
- THB Thai Baht
- ZAR South African Rand
The full list is in the documentation.
Get exchange rates in your language
The latest rates for EUR, USD and GBP, with USD as the base (the example from the documentation). Replace YOUR-APIKEY with your free key.
cURL
curl "https://api.freecurrencyapi.com/v1/latest?base_currency=USD¤cies=EUR,USD,GBP" \
-H "apikey: YOUR-APIKEY"JavaScript
const res = await fetch(
"https://api.freecurrencyapi.com/v1/latest?base_currency=USD¤cies=EUR,USD,GBP",
{ headers: { apikey: "YOUR-APIKEY" } }
);
const { data } = await res.json();
console.log(data.EUR);Python
import requests
res = requests.get(
"https://api.freecurrencyapi.com/v1/latest",
params={"base_currency": "USD", "currencies": "EUR,USD,GBP"},
headers={"apikey": "YOUR-APIKEY"},
)
print(res.json()["data"]["EUR"])PHP
$ch = curl_init("https://api.freecurrencyapi.com/v1/latest?base_currency=USD¤cies=EUR,USD,GBP");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["apikey: YOUR-APIKEY"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true)["data"];
echo $data["EUR"];Go
req, _ := http.NewRequest("GET",
"https://api.freecurrencyapi.com/v1/latest?base_currency=USD¤cies=EUR,USD,GBP", nil)
req.Header.Set("apikey", "YOUR-APIKEY")
res, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))Response
{
"data": {
"EUR": 0.918456,
"USD": 1,
"GBP": 0.789012
}
}Prefer a library? There are official SDKs for PHP, Python, JavaScript, Ruby, Go, Rust and R, listed in the documentation. Comparing options? See the best free currency APIs.
Need more?
Currencyapi.com is our commercial premium service, designed to satisfy the highest needs.
172+ Currencies
Minutely Updates
Custom Plans
Range Endpoint
