frankfurter/README.md
2018-10-09 17:52:43 +01:00

2.1 KiB

Frankfurter

Deploy

Frankfurter is a free and open source API for current and historical foreign exchange rates. It tracks data published by the European Central Bank. Rates are updated around 4PM CET every working day.

A public instance runs on https://frankfurter.app. You can also self-host with Heroku or Docker.

Examples

Get the current foreign exchange rates.

GET /latest HTTP/1.1

Get historical rates for any day since 1999.

GET /2000-01-03 HTTP/1.1

Get historical rates for a time period.

GET /2010-01-01..2010-01-31 HTTP/1.1

Get historical rates for a time period up to the present.

GET /2010-01-01.. HTTP/1.1

Rates quote against the Euro by default. Quote against a different currency.

GET /latest?from=USD HTTP/1.1

Request specific exchange rates.

GET /latest?to=USD,GBP HTTP/1.1

Convert a specific amount.

GET /latest?amount=1000&from=GBP&to=USD HTTP/1.1

With a full list of currencies, time series grow large in size. For better performance, use the to parameter to reduce the response weight.

GET /2016-01-01..2016-12-31?from=GBP&to=USD HTTP/1.1

Here we return the current GBP/USD currency pair with JavaScript.

// Fetch and display GBP/USD
fetch('/latest?from=GBP&to=USD')
  .then(resp => resp.json())
  .then((data) => { alert(`GBPUSD = ${data.rates.USD}`); });

Cache data whenever possible.

Deployment

To build locally, type

docker-compose up -d

Now you can access the API at http://localhost:8080.

In production, create a .env file and run with

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

To update to a newer image, run

docker-compose -f docker-compose.yml -f docker-compose.prod.yml pull

Within a few minutes, you will access the API at https://yourdomain.com/.

Travis