/go-coinmarketcap

The unofficial CoinMarketCap API client for Go.

Primary LanguageGoMIT LicenseMIT


go-coinmarketcap


The latest and most up-to-date CoinMarketCap API client for Go.

License Build Status Go Report Card GoDoc PRs Welcome

Supports the CoinMarketCap API Pro Version, V2 and V1 Public API

Documentation

https://godoc.org/github.com/hhh0pE/go-coinmarketcap

Install

go get -u github.com/hhh0pE/go-coinmarketcap

Pro V1 (latest)

Type Endpoint Implemented?
Cryptocurrency /v1/cryptocurrency/info
Cryptocurrency /v1/cryptocurrency/map
Cryptocurrency /v1/cryptocurrency/listings/latest
Cryptocurrency /v1/cryptocurrency/market-pairs/latest
Cryptocurrency /v1/cryptocurrency/ohlcv/historical -
Cryptocurrency /v1/cryptocurrency/quotes/latest
Cryptocurrency /v1/cryptocurrency/quotes/historical -
Exchange /v1/exchange/info -
Exchange /v1/exchange/map -
Exchange /v1/exchange/listings/latest -
Exchange /v1/exchange/market-pairs/latest -
Exchange /v1/exchange/quotes/latest -
Exchange /v1/exchange/quotes/historical -
Global Metrics /v1/global-metrics/quotes/latest
Global Metrics /v1/global-metrics/quotes/historical -
Tools /v1/tools/price-conversion

Note: some endpoints require a paid plan.

Getting started

package main

import (
	"fmt"
	"os"

	cmc "github.com/hhh0pE/go-coinmarketcap/pro/v1"
)

func main() {
	client := cmc.NewClient(&cmc.Config{
		ProAPIKey: os.Getenv("CMC_PRO_API_KEY"),
	})

	listings, err := client.Cryptocurrency.LatestListings(&cmc.ListingOptions{
		Limit: 1,
	})
	if err != nil {
		panic(err)
	}

	for _, listing := range listings {
		fmt.Println(listing.Name)               // "Bitcoin"
		fmt.Println(listing.Quote["USD"].Price) // 6316.75736886
	}
}

Examples

For more examples, check out the ./pro/v1/example directory and documentation


V2

NOTE: CoinMarketCap deprecated this API on December 2018

Getting started

package main

import (
	"fmt"
	"log"

	cmc "github.com/hhh0pE/go-coinmarketcap/v2"
)

func main() {
	tickers, err := cmc.Tickers(&cmc.TickersOptions{
		Start:   0,
		Limit:   100,
		Convert: "USD",
	})
	if err != nil {
		log.Fatal(err)
	}

	for _, ticker := range tickers {
		fmt.Println(ticker.Symbol, ticker.Quotes["USD"].Price)
	}
}

Examples

For more examples, check out the ./v2/example directory and documentation


V1

NOTE: CoinMarketCap deprecated this API on November 2018

Getting started

package main

import (
	"fmt"
	"log"

	cmc "github.com/hhh0pE/go-coinmarketcap/v1"
)

func main() {
	tickers, err := cmc.Tickers(&cmc.TickersOptions{
		Start:   0,
		Limit:   100,
		Convert: "USD",
	})
	if err != nil {
		log.Fatal(err)
	}

	for _, ticker := range tickers {
		fmt.Println(ticker.Symbol, ticker.Quotes["USD"].Price)
	}
}

Examples

For more examples, check out the ./v1/example directory and documentation

Contributing

Pull requests are welcome.

Please make sure to add tests when adding new methods.

Development

Test

make test

Release

git tag v0.1.x
make release

License

MIT