ExchangeRate is a free API for current and historical foreign exchange rates published by the European Central Bank.
A public instance of the API lives at locations:
- Central Europe: https://api.exchangerate.host.
- Scandinavian region: https://api-eu.exchangerate.host
- Central America: https://api-us.exchangerate.host
Rates are updated around midnight UTC every working day.
- Golang rehhouari/exchange
- Elixir 81dr/ex_changerate
- R stevecondylios/priceR
- Vue dvnikolaev/vue-exchange-rates
- F# blowin/CurrencyExchange
- PHP Laravel package amrshawky/laravel-currency
- forex rate web app zayyarlin/d3viz, forexrate.web.app
- .Net 5 Sample serkanince/NetCoreBackgroundJobsSample
- Vue Sample artisticLogicMK/Infinity-Currency-Converter-v2
Get the all available currencies.
GET https://api.exchangerate.host/symbols
Get the latest foreign exchange rates.
GET https://api.exchangerate.host/latest
Get historical rates for any day since 1999.
GET https://api.exchangerate.host/2000-01-03
Rates are quoted against the Euro by default. Quote against a different currency by setting the base parameter in your request.
GET https://api.exchangerate.host/latest?base=USD
Request specific exchange rates by setting the symbols parameter.
GET https://api.exchangerate.host/latest?symbols=USD,GBP
Currency conversion endpoint, can be used to convert any amount from one currency to another.
GET https://api.exchangerate.host/convert?from=EUR&to=USD
Timeseries endpoint are for daily historical rates between two dates of your choice, with a maximum time frame of 365 days.
GET https://api.exchangerate.host/timeseries?start_date=2020-01-01&end_date=2020-04-04&symbols=EUR,USD,GBP
Using the fluctuation endpoint you will be able to retrieve information about how currencies fluctuate on a day-to-day basis.
GET https://api.exchangerate.host/fluctuation?start_date=2020-01-01&end_date=2020-04-04&symbols=EUR,USD,GBP
The primary use case is client side. For instance, with money.js in the browser
let demo = () => {
let rate = fx(1).from("GBP").to("USD")
alert("£1 = $" + rate.toFixed(4))
}
fetch('https://api.exchangerate.host/latest')
.then((resp) => resp.json())
.then((data) => fx.rates = data.rates)
.then(demo)
Thank you to all our backers! 🙏 [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]