Skip to content

A foreign exchange rates and currency conversion API. Data from European Central Bank.

License

Notifications You must be signed in to change notification settings

lmikolajczak/goexrates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Report Card

💰 goexrates

A foreign exchange rates and currency conversion API that exposes data published by European Central Bank.

The rates are updated daily around 4PM CET.

Usage

Get the latest foreign exchange reference rates in JSON format.

GET /v1/latest
Host: localhost:3000

Get historical rates for any day since 1999-01-04.

GET /v1/historical/2008-03-18
Host: localhost:3000

Rates are quoted against the Euro by default. Quote against a different currency by setting the base parameter in your request.

GET /v1/latest?base=USD
Host: localhost:3000

Request specific exchange rates by setting the codes parameter.

GET /v1/latest?codes=USD,GBP
Host: localhost:3000

Response format.

{
    "base": "EUR",
    "date": "2021-05-05",
    "rates": {
        "AUD": 1.4832,
        "PLN": 4.2173,
        "MYR": 4.7543,
        "USD": 1.0961,
        [41 world currencies],
    }
}

Run

# Build and start containers:
docker compose up -d
# Enter api container:
docker exec -it api bash
# Apply database migrations:
make db/migrations/up
# Populate database with rates published by ECB (check goexrates-cli --help):
goexrates-cli load historical
# Run the API:
goexrates-api

API's endpoints can be accessed at localhost:3000. Both API (3000) and database (5432) ports are published and can be accessed via localhost:port.

Run make help to see all available commands and goexrates-cli --help to see more informations about additional CLI commands that help to manage common/recurring tasks.

About

A foreign exchange rates and currency conversion API. Data from European Central Bank.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published