An open API service indexing awesome lists of open source software.

https://github.com/jfkz/coinmarketcap-api-typescript


https://github.com/jfkz/coinmarketcap-api-typescript

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# coinmarketcap-api-typescript

[![Greenkeeper badge](https://badges.greenkeeper.io/jfkz/coinmarketcap-api-typescript.svg)](https://greenkeeper.io/) [![npm package version](https://img.shields.io/npm/v/coinmarketcap-api-typescript.svg?style=flat-square)](https://npmjs.org/package/coinmarketcap-api-typescript)
[![npm downloads](https://img.shields.io/npm/dm/coinmarketcap-api-typescript.svg?style=flat-square)](https://npmjs.org/package/coinmarketcap-api) [![Standard JS linter](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard) [![Codecov](https://codecov.io/gh/jfkz/coinmarketcap-api-typescript/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/jfkz/coinmarketcap-api-typescript) [![travis ci build status](https://img.shields.io/travis/jfkz/coinmarketcap-api-typescript.svg?style=flat-square)](https://travis-ci.org/jfkz/coinmarketcap-api-typescript) [![project license](https://img.shields.io/npm/l/coinmarketcap-api-typescript.svg?style=flat-square)](https://github.com/jfkz/coinmarketcap-api-typescript/blob/master/LICENSE) [![make a pull request](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)

> CoinMarketCap API wrapper for typescript

This wrapper is based on the free tier of [the CoinMarketCap Professional API](https://pro.coinmarketcap.com/api/v1#section/Introduction).
You can get your API key [here](https://pro.coinmarketcap.com/pricing).

## Table of Contents

- [Install](#install)
- [Usage](#usage)
- [API](#api)
- [Contribute](#contribute)
- [License](#license)

## Install

```sh
$ npm install coinmarketcap-api-typescript
# OR
$ yarn add coinmarketcap-api-typescript
```

## Usage

```js
import CoinMarketCap from 'coinmarketcap-api-typescript'

const apiKey = 'api key'
const client = new CoinMarketCap(apiKey)

client.getTickers().then(console.log).catch(console.error)
client.getGlobal().then(console.log).catch(console.error)
```

Check out the [CoinMarketCap Pro API documentation](https://pro.coinmarketcap.com/api/v1#section/Introduction) for more information!

## API

#### Table of Contents

- [constructor](#constructor)
- [Parameters](#parameters)
- [getIdMap](#getidmap)
- [Parameters](#parameters-1)
- [Examples](#examples)
- [getMetadata](#getmetadata)
- [Parameters](#parameters-2)
- [Examples](#examples-1)
- [getTickers](#gettickers)
- [Parameters](#parameters-3)
- [Examples](#examples-2)
- [getQuotes](#getquotes)
- [Parameters](#parameters-4)
- [Examples](#examples-3)
- [getGlobal](#getglobal)
- [Parameters](#parameters-5)
- [Examples](#examples-4)

### constructor

#### Parameters

- `apiKey` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** API key for accessing the CoinMarketCap API
- `Options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Options for the CoinMarketCap instance (optional, default `{}`)
- `Options.version` (optional, default `'v1'`)
- `Options.fetcher` (optional, default `fetch`)
- `Options.config` (optional, default `{}`)

### getIdMap

Get a paginated list of all cryptocurrencies by CoinMarketCap ID.

#### Parameters

- `args` (optional, default `{}`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Options for the request:
- `options.listingStatus` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** active or inactive coins (optional, default `"active"`)
- `options.start` **([Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) \| [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))** Return results from rank start and above (optional, default `1`)
- `options.limit` **([Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) \| [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?** Only returns limit number of results
- `options.symbol` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?** Comma separated list of symbols, will ignore the other options
- `options.sort` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Sort results by the options at (optional, default `"id"`)

#### Examples

```javascript
const client = new CoinMarketCap('api key')
client.getIdMap().then(console.log).catch(console.error)
client.getIdMap({listingStatus: 'inactive', limit: 10}).then(console.log).catch(console.error)
client.getIdMap({symbol: 'BTC,ETH'}).then(console.log).catch(console.error)
client.getIdMap({symbol: ['BTC', 'ETH']}).then(console.log).catch(console.error)
client.getIdMap({sort: 'cmc_rank'}).then(console.log).catch(console.error)
```

### getMetadata

Get static metadata for one or more cryptocurrencies.
Either id or symbol is required, but passing in both is not allowed.

#### Parameters

- `args` (optional, default `{}`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Options for the request:
- `options.id` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array) \| [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number))?** One or more comma separated cryptocurrency IDs
- `options.symbol` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))** One or more comma separated cryptocurrency symbols

#### Examples

```javascript
const client = new CoinMarketCap('api key')
client.getMetadata({id: '1'}).then(console.log).catch(console.error)
client.getMetadata({id: [1, 2]}).then(console.log).catch(console.error)
client.getMetadata({symbol: 'BTC,ETH'}).then(console.log).catch(console.error)
client.getMetadata({symbol: ['BTC', 'ETH']}).then(console.log).catch(console.error)
```

### getTickers

Get information on all tickers.
Start and limit options can only be used when currency or ID is not given.
Currency and ID cannot be passed in at the same time.

#### Parameters

- `args` (optional, default `{}`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Options for the request
- `options.start` **([Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) \| [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))** Return results from rank start and above (optional, default `1`)
- `options.limit` **([Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) \| [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))** Only returns limit number of results [1..5000] (optional, default `100`)
- `options.convert` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))** Return info in terms of another currency (optional, default `"USD"`)
- `options.sort` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Sort results by the options at (optional, default `"market_cap"`)
- `options.sortDir` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Direction in which to order cryptocurrencies ("asc" | "desc")
- `options.cryptocurrencyType` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Type of cryptocurrency to include ("all" | "coins" | "tokens") (optional, default `"all"`)

#### Examples

```javascript
const client = new CoinMarketCap('api key')
client.getTickers({limit: 3}).then(console.log).catch(console.error)
client.getTickers({convert: 'EUR'}).then(console.log).catch(console.error)
client.getTickers({start: 0, limit: 5}).then(console.log).catch(console.error)
client.getTickers({sort: 'name'}).then(console.log).catch(console.error)
```

### getQuotes

Get latest market quote for 1 or more cryptocurrencies.

#### Parameters

- `args` (optional, default `{}`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Options for the request:
- `options.id` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array) \| [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number))?** One or more comma separated cryptocurrency IDs
- `options.symbol` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?** One or more comma separated cryptocurrency symbols
- `options.convert` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))** Return quotes in terms of another currency (optional, default `"USD"`)

#### Examples

```javascript
const client = new CoinMarketCap('api key')
client.getQuotes({id: '1'}).then(console.log).catch(console.error)
client.getQuotes({id: [1, 2], convert: 'USD,EUR'}).then(console.log).catch(console.error)
client.getQuotes({symbol: 'BTC,ETH'}).then(console.log).catch(console.error)
client.getQuotes({symbol: ['BTC', 'ETH']}).then(console.log).catch(console.error)
```

### getGlobal

Get global information

#### Parameters

- `convert`
- `options` **([Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?** Options for the request:
- `options.convert` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))** Return quotes in terms of another currency (optional, default `"USD"`)

#### Examples

```javascript
const client = new CoinMarketCap()
client.getGlobal('GBP').then(console.log).catch(console.error)
client.getGlobal({convert: 'GBP'}).then(console.log).catch(console.error)
```

## Contributing

Contributions are welcome!

1. Fork it.
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D

Or open up [a issue](https://github.com/jfkz/coinmarketcap-api-typescript/issues).

## License

Licensed under the MIT License.