Exchange Rates Data API

Exchange Rates Data API

Real-Time, Intraday & Historical Market Data API.
Free Plan $0.00 Monthly Subscribe
250 Requests / Monthly
Free for Lifetime
No Credit Card Required
MOST POPULAR
Starter Plan $9.99 Monthly Subscribe
10,000 Requests / Monthly
Standard Support
Updated Every Minute
200+ Currencies
Pro Plan $39.99 Monthly Subscribe
100,000 Requests / Monthly
Standard Support
Updated Every Minute
200+ Currencies
Enterprise Plan $79.99 Monthly Subscribe
500,000 Requests / Monthly
Standard Support
Updated Every Minute
200+ Currencies
Custom Plan Volume Monthly Contact Us
Any requests volume you need
Updated Every Minute
200+ Currencies

With over 15 exchange rate data sources, the Exchangerates API is delivering exchanging rates data for more than 170 world currencies. This API has several endpoints, where each of them serves a different purpose, use case. The endpoints include functionalities like receiving the latest exchange rates information for a specific set, or for all currencies; conversion from one to another currency; receiving data Time-series for multiple or for one currency, and preserving the API daily for the fluctuation data.

Available Endpoints

  • /symbols Returns all available currencies.
  • /latest Returns exchange rate data in real-time for all available currencies or for a specific set.
  • /convert With this endpoint, we have any amount conversion from one currency to another.
  • /{date} Endpoint for receiving historical exchange rate information for all available currencies or for a set of currencies.
  • /timeseries It returns the daily historical data for exchange rates, between two specified dates. The data can be returned for all available currency or for specified ones.
  • /fluctuation This endpoint returns the fluctuation data between specified dates. The data can be for all available currencies or for a specific set.

Supported Symbols

The Fixer API comes with a constantly updated endpoint returning all available currencies. To access this list, make a request to the API's symbols endpoint.


{
  "success": true,
  "symbols": {
    "AED": "United Arab Emirates Dirham",
    "AFN": "Afghan Afghani",
    "ALL": "Albanian Lek",
    "AMD": "Armenian Dram",
    [...] 
    }
}

Tips

To reduce bandwidth you can limit the number of output currencies to a specific set of your choice on most API endpoints. To do so, simply append the Fixer API's symbols parameter to your API request and set it to one or more comma-separated currency codes.


curl --request GET 'https://api.apilayer.com/exchangerates_data/live?base=USD&symbols=EUR,GBP' \
--header 'apikey: YOUR API KEY'

It is also possible to convert currencies using historical exchange rate data. To do this, please also use the API's date parameter and set it to your preferred date. (format YYYY-MM-DD)


curl --request GET 'https://api.apilayer.com/currency_data/convert?base=USD&symbols=EUR,GBP,JPY&amount=5&date=2018-01-01' \
--header 'apikey: YOUR API KEY'

Exchange Rates Data API Reference

This API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Just Getting Started?

Check out our development quickstart guide.

Authentication

Exchange Rates Data API uses API keys to authenticate requests. You can view and manage your API keys in the Accounts page.

Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.

All requests made to the API must hold a custom HTTP header named "apikey". Implementation differs with each programming language. Below are some samples.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Endpoints

Currency conversion endpoint, which can be used to convert any amount from one currency to another. In order to convert currencies, please use the API's convert endpoint, append the from and to parameters and set them to your preferred base and target currency codes.

Parameters

amount (required)

The amount to be converted.

Location: Query, Data Type: string

from (required)

The three-letter currency code of the currency you would like to convert from.

Location: Query, Data Type: string

to (required)

The three-letter currency code of the currency you would like to convert to.

Location: Query, Data Type: string

date (optional)

Specify a date (format YYYY-MM-DD) to use historical rates for this conversion.

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Fluctuation endpoint you will be able to retrieve information about how currencies fluctuate on a day-to-day basis. To use this feature, simply append a start_date and end_date and choose which currencies (symbols) you would like to query the API for. Please note that the maximum allowed timeframe is 365 days.

Parameters

end_date (required)

The end date of your preferred timeframe.

Location: Query, Data Type: string

start_date (required)

The start date of your preferred timeframe.

Location: Query, Data Type: string

base (optional)

Enter the three-letter currency code of your preferred base currency.

Location: Query, Data Type: string

symbols (optional)

Enter a list of comma-separated currency codes to limit output currencies.

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Returns real-time exchange rate data updated every 60 minutes, every 10 minutes or every 60 seconds.

Parameters

base (optional)

Enter the three-letter currency code of your preferred base currency.

Location: Query, Data Type: string

symbols (optional)

Enter a list of comma-separated currency codes to limit output currencies.

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Returning all available currencies.

Parameters
No parameters.
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Timeseries endpoint lets you query the API for daily historical rates between two dates of your choice, with a maximum time frame of 365 days.

Parameters

end_date (required)

The end date of your preferred timeframe.

Location: Query, Data Type: string

start_date (required)

The start date of your preferred timeframe.

Location: Query, Data Type: string

base (optional)

Enter the three-letter currency code of your preferred base currency.

Location: Query, Data Type: string

symbols (optional)

Enter a list of comma-separated currency codes to limit output currencies.

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Historical rates are available for most currencies all the way back to the year of 1999. You can query the Fixer API for historical rates by appending a date (format YYYY-MM-DD) to the base URL.

Parameters

date (required)

A date in the past for which historical rates are requested.

Location: Path, Data Type: string

base (optional)

Enter the three-letter currency code of your preferred base currency.

Location: Query, Data Type: string

symbols (optional)

Enter a list of comma-separated currency codes to limit output currencies.

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Rate Limiting

Each subscription has its own rate limit. When you become a member, you start by choosing a rate limit that suits your usage needs. Do not worry; You can upgrade or downgrade your plan at any time. For this reason, instead of starting with a larger plan that you do not need, we can offer you to upgrade your plan after you start with "free" or "gold plan" options and start using the API.

When you reach a rate limit (both daily and monthly), the service will stop responding and returning the HTTP 429 response status code (Too many requests) for each request with the following JSON string body text.

{
"message":"You have exceeded your daily\/monthly API rate limit. Please review and upgrade your subscription plan at https:\/\/apilayer.com\/subscriptions to continue."
}

A reminder email will be sent to you when your API usage reaches both 80% and 90%, so that you can take immediate actions such as upgrading your plan in order to prevent your application using the API from being interrupted.

You can also programmatically check your rate limit yourself. As a result of each request made to the APILayer, the following 4 fields provide you with all the necessary information within the HTTP Headers.

x-ratelimit-limit-month: Request limit per month
x-ratelimit-remaining-month: Request limit remaining this month
x-ratelimit-limit-day: Request limit per day
x-ratelimit-remaining-day: Request limit remaining today

You can contact our support unit if you need any assistance with your application regarding to handle the returned result by looking at the header information.

Error Codes

APILayer uses standard HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate a clientside error, which means that failed given the information provided (e.g., a missing parameter, unauthorized access etc.). Codes in the 5xx range indicate an error with APILayer's servers (normally this should'nt happen at all).

If the response code is not 200, it means the operation failed somehow and you may need to take an action accordingly. You can check the response (which will be in JSON format) for a field called 'message' that briefly explains the error reported.

Status Code Explanation
400 - Bad Request The request was unacceptable, often due to missing a required parameter.
401 - Unauthorized No valid API key provided.
404 - Not Found The requested resource doesn't exist.
429 - Too many requests API request limit exceeded. See section Rate Limiting for more info.
5xx - Server Error We have failed to process your request. (You can contact us anytime)

You can always contact for support and ask for more assistance. We'll be glad to assist you with building your product.

Reviews

4.73
  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating
API rating
Subash Ramesh
1 weeks ago

Subash Ramesh

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

i like this one, its very usefull

Scott Brown
3 weeks ago

Scott Brown

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

Does exactly what it says it does and was what we needed for out project

TestApi
3 weeks ago

TestApi

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

Works like a charm. It is very helpful.

Mike Raymond
1 months ago

Mike Raymond

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

Thanks for your amazing services!

Peter Hamfelt
1 months ago

Peter Hamfelt

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

The free plan works great

Youcef
1 months ago

Youcef

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

Very good API, thank you so much :)

Klaudiusz K
1 months ago

Klaudiusz K

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

Thanks, its very usefull for my tests laravel app.

CHEIKH BEY GHALAOUI MOHAMED NEDHIR
1 months ago

CHEIKH BEY GHALAOUI MOHAMED NEDHIR

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

Great API Thanks for your job

Rusdi Kurniawan
1 months ago

Rusdi Kurniawan

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

Any calculation what u need for exchange rate using api layer good 👍

Anil Revgade
1 months ago

Anil Revgade

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

very good service & api response is very fast

Alexey Kovalev
1 months ago

Alexey Kovalev

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

Very useful and easy to use, especially for beginners like me

Назар Баран
2 months ago

Назар Баран

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

Good api for me and good website

Ejiro Mrabure
2 months ago

Ejiro Mrabure

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

Very effective, thank you very much

Allan Duong
2 months ago

Allan Duong

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

We are using the API to get the latest exchange rates. Works like a charm.

BOW
6 months ago

BOW

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

i love it, it is very helpful