currencyapi

package module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2026 License: MIT Imports: 3 Imported by: 0

README

CurrencyApi Golang wrapper

Go project version Coverage Status

CurrencyApi.net provides live currency rates via a REST API. A live currency feed for over 152 currencies, including physical (USD, GBP, EUR + more) and cryptos (Bitcoin, Litecoin, Ethereum + more). A JSON and XML currency api updated every 60 seconds.

Features:

  • Live exchange rates (updated every 60 seconds).
  • 152 currencies world currencies.
  • Popular cryptocurrencies included; Bitcoin, Litecoin etc.
  • Convert currencies on the fly with the convert endpoint.
  • Historical currency rates back to year 2000.
  • Easy to follow documentation

Signup for a free or paid account here.

This package is a:

Golang wrapper for CurrencyApi.net endpoints.

Developer Guide

For an easy to following developer guide, check out our Golang Developer Guide.

Alternatively keep reading below.

Prerequisites
  • Minimum Go 1.21
  • Working on Go 1.26
  • Free or Paid account with CurrencyApi.net
Test Coverage
  • 100% coverage

Installation

go get github.com/houseofapis/currencyapi-go

then import the package with:

import (
    ...
	"github.com/houseofapis/currencyapi-go"
	...
)

Usage

Instantiating
client := currencyapi.Client("API_KEY")
Live rates:
params := map[string]string{
    "output": "JSON",
    "base":   "USD",
}

body, err := client.Rates(params)

Available params for rates endpoint

Methods Description
base The base currency you wish you receive the currency conversions for. This will output all currency conversions for that currency. Default: USD.
output Response output in either JSON or XML. Default: JSON.

List of available currencies:
params := map[string]string{
    "output": "XML"
}

body, err := client.Currencies(params)

Available methods for currencies endpoint

Methods Description
output Response output in either JSON or XML. Default: JSON.

Convert:
params := map[string]string{
    "output": "JSON",
    "from": "USD",
    "to": "GBP",
    "amount": 15.99,
}

body, err := client.Convert(params)

Available methods for convert endpoint

Methods Description
amount The value of the currency you want to convert from. This should be a number and can contain a decimal place. Required.
from The currency you want to convert. This will be a three letter ISO 4217 currency code from one of the currencies we have rates for. Required.
to The currency you want to convert the amount 'to'. Again this will be a three letter currency code from the ones we offer. Required.
output Response output in either JSON or XML. Default: JSON.

Historical:
params := map[string]string{
    "output": "JSON",
    "base": "GBP",
    "date": "2019-01-01"
}

body, err := client.History(params)

Available methods for historical endpoint

Methods Description
date The historical date you wish to receive the currency conversions for. This should be formatted as YYYY-MM-DD. Required.
base The base currency you wish you receive the currency conversions for. This will output all currency conversions for that currency. Default: USD.
output Response output in either JSON or XML. Default: JSON.

Timeframe:
params := map[string]string{
    "output": "JSON",
    "base": "GBP",
    "start_date": "2019-01-01"
    "end_date": "2019-01-05"
}

body, err := client.Timeframe(params)

Available methods for timeframe endpoint

Methods Description
start_date The historical date you wish to receive the currency conversions from. This should be formatted as YYYY-MM-DD. Required.
end_date The historical date you wish to receive the currency conversions until. This should be formatted as YYYY-MM-DD. Required.
base The base currency you wish you receive the currency conversions for. This will output all currency conversions for that currency. Default: USD.
output Response output in either JSON or XML. Default: JSON.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientS

type ClientS struct {
	APIKey string
}

func Client

func Client(apiKey string) *ClientS

func (*ClientS) Convert

func (c *ClientS) Convert(params map[string]string) ([]byte, error)

func (*ClientS) Currencies

func (c *ClientS) Currencies(params map[string]string) ([]byte, error)

func (*ClientS) History

func (c *ClientS) History(params map[string]string) ([]byte, error)

func (*ClientS) Rates

func (c *ClientS) Rates(params map[string]string) ([]byte, error)

func (*ClientS) Timeframe

func (c *ClientS) Timeframe(params map[string]string) ([]byte, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL