Free Exchange Rate API Endpoint

Documentation for the Free & Open Access ExchangeRate-API endpoint

Intro

If you want a basic & free exchange rates API with no API key required for a small project then this is exactly what you need.

This open access API is subject to our Terms. You're welcome to cache the data we respond with and to use it for either personal or commercial purposes. You are, however, not allowed to re-distribute it.


Restrictions Compared To Full API

We've been providing free versions of our API for over 10 years now and have unfortunately experienced a wide variety of DoS attacks and abusive traffic during this time. This means it's only possible to provide this free service with some limitations:

• The free exchange rate API endpoint is heavily rate limited.
• It runs on commodity hardware rather than our paid plan High Availability infrastructure, so no uptime SLA.
• Unfortunately our support can only respond to requests from paying customers due to the high volume of free API users.


Rate Limiting

• If you request once every 24 hours you will never get rate limited.
• If you can't keep a cached response for that long, you could request once every hour and also never get rate limited.

This is OK because:

• The data only refreshes once every 24 hours anyway.
• Included in the response is the specific time of the next data update.
• Our Terms permit caching of the data.

Don't panic if your script breaks in development and gets rate limited. After 3 hours the rate limit will finish and allow new requests.

Finally, we request users to vary the exact time of their requests: e.g. use something like `time_next_update_unix` + rand(30,300) to schedule your next request. This helps us manage the big spike in load at update time.


Attribution

We don't require attribution but you are welcome to use the link below (we'd sure appreciate it). The more popular our service gets the better we can make this free version! You're welcome to change the link text if you'd like.

<a href="https://www.exchangerate-api.com">Currency Conversion by ExchangeRate-API.com</a>

Request Format Documentation

We use ISO 4217 Three Letter Currency Codes - e.g. USD for US Dollars, EUR for Euro etc. Here's the list of currency codes we support.

GET https://api.exchangerate-api.com/v6/latest

This will return the exchange rates from USD to all the other currencies we support:

{
	"documentation": "https://www.exchangerate-api.com/docs/free",
	"terms_of_use": "https://www.exchangerate-api.com/terms",
	"time_last_update_unix": 1585872397,
	"time_last_update_utc": "Fri, 02 Apr 2020 00:06:37 +0000",
	"time_next_update_unix": 1585959987,
	"time_next_update_utc": "Sat, 03 Apr 2020 00:26:27 +0000",
	"time_eol_unix": 0,
	"base_code": "USD",
	"rates": {
		"USD": 1,
		"AED": 3.67,
		"ARS": 64.51,
		"AUD": 1.65,
		"CAD": 1.42,
		"CHF": 0.97,
		"CLP": 864.53,
		"CNY": 7.1,
		"EUR": 0.919,
		"GBP": 0.806,
		"HKD": 7.75,
		"...": 7.85,
		"...": 1.31,
		"...": 7.47, etc. etc.
	}
}

Note on EOL field

Over time we inevitably have to stop supporting certain endpoints or infrastructure and we can't predict when this will be. A lot of free services don't worry about this and just come and go - leaving users in trouble when they suddenly close down.

So whenever the time comes that we need to stop supporting this endpoint the `time_eol` field will start showing the unix time of expected deprecation. This way you can set appropriate alerting in your code and have some time to make a new plan.


Error Responses

There is only one other possible response for this simple API.

We rate limit in our infrastructure before network rate limiting kicks in. This will give the response:

{
	"response":"rate-limited"
}

If you keep sending requests after receiving this then your traffic will start to get dropped at the network edge and you won't get any response.