Currency Conversion API
The perfect tool to handle your exchange rate conversions. Our API helps you with current and historical foreign exchanges rates. Stop worrying about uptime & outdated data.
The perfect tool to handle your exchange rate conversions. Our API helps you with current and historical foreign exchanges rates. Stop worrying about uptime & outdated data.
currencyapi.com features an unmatched coverage of world currencies & cryptocurrencies.
All provided currency pairs are updated every 60 seconds. Obtain currency data in real-time.
Our REST service provides a powerful infrastructure, handling millions of requests per day.
Try it yourself
Real-time forex quotes 60 seconds update frequency for all major currency pairs. The API is fast, secure, and offers a great developer experience. Our currency API is designed to handle millions of requests per second.
Our customer family consists of international brands from over 80 countries and various industries. Become a part of our movement by starting your free currencyapi.com account today.
We passionately believe that you should not be dealing with exchange rates ever again. Every rule for selling digital products and services online can be centralized. That is exactly what our service is offering.
We believe that delivering the best possible product for a fair and competitive pricing is the best foundation for long-lasting customer relationships!
15,000 Requests / Month
Private forum access
Historical Rates
Live Rates
Built with developers in mind, our currency converter API is not only easy to integrate but comes along with an entire suite of REST-Clients and pre-built integrations. Additionally, we provide a Postman-Collection.
// latest rates
curl -G "https://api.currencyapi.com/v3/latest" \
-d "apikey=YOUR-KEY" \
// latest with specific base currency
curl -G "https://api.currencyapi.com/v3/latest" \
-d "apikey=YOUR-KEY" \
-d "base_currency=USD"
// historical rates from a specific date
curl -G "https://api.currencyapi.com/v3/historical" \
-d "apikey=YOUR-KEY" \
-d "base_currency=USD" \
-d "date=2020-10-01" \
// latest rates
$url = "https://api.currencyapi.com/v3/latest?apikey=YOUR-APIKEY";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
print_r($response);
// latest with specific base currency
$url = "https://api.currencyapi.com/v3/latest?apikey=YOUR-APIKEY&base_currency=USD";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
print_r($response);
// historical rates from a specific date
$url = "https://api.currencyapi.com/v3/historical?apikey=YOUR-APIKEY&base_currency=USD&date=2020-10-01";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
print_r($response);
// latest rates
const request = require('request-promise');
request('https://api.currencyapi.com/v3/latest?apikey=YOUR-APIKEY')
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
})
// latest with specific base currency
const request = require('request-promise');
request('https://api.currencyapi.com/v3/latest?apikey=YOUR-APIKEY&base_currency=USD')
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
})
// historical rates from a specific date
const request = require('request-promise');
request('https://api.currencyapi.com/v3/historical?apikey=YOUR-APIKEY&base_currency=USD&date=2020-10-01')
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
})
// latest rates
try {
String apikey = "YOUR-APIKEY";
String url = "https://api.currencyapi.com/v3/latest";
URL urlForGetRequest = new URL(url);
String readLine = null;
HttpURLConnection conection = (HttpURLConnection) urlForGetRequest.openConnection();
conection.setRequestMethod("GET");
int responseCode = conection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(conection.getInputStream()));
StringBuffer response = new StringBuffer();
while ((readLine = in.readLine()) != null) {
response.append(readLine);
}
in.close();
System.out.println(response.toString());
} else {
throw new Exception("Error in API Call");
}
} catch (Exception ex) {
ex.printStackTrace();
}
// latest with specific base currency
try {
String apikey = 'YOUR-APIKEY';
String url = "https://api.currencyapi.com/v3/latest?apikey=" + apikey + "&base_currency=USD";
URL urlForGetRequest = new URL(url);
String readLine = null;
HttpURLConnection conection = (HttpURLConnection) urlForGetRequest.openConnection();
conection.setRequestMethod("GET");
int responseCode = conection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(conection.getInputStream()));
StringBuffer response = new StringBuffer();
while ((readLine = in.readLine()) != null) {
response.append(readLine);
}
in.close();
System.out.println(response.toString());
} else {
throw new Exception("Error in API Call");
}
} catch (Exception ex) {
ex.printStackTrace();
}
// historical rates from a specific date
try {
String apikey = "YOUR-APIKEY";
String url = "https://api.currencyapi.com/v3/historical/historical?apikey=" + apikey + &base_currency=USD&date=2020-10-01";
URL urlForGetRequest = new URL(url);
String readLine = null;
HttpURLConnection conection = (HttpURLConnection) urlForGetRequest.openConnection();
conection.setRequestMethod("GET");
int responseCode = conection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(conection.getInputStream()));
StringBuffer response = new StringBuffer();
while ((readLine = in.readLine()) != null) {
response.append(readLine);
}
in.close();
System.out.println(response.toString());
} else {
throw new Exception("Error in API Call");
}
} catch (Exception ex) {
ex.printStackTrace();
}
Common Use Cases For Our Currency API
Our easy-to-use currency exchange API enables you to use our data for a wide variety of purposes.
E-Commerce Stores
Spreadsheets
Analytics
Many more...