UNPKG

coinmarketcap-api

Version:
204 lines (148 loc) 12.4 kB
# coinmarketcap-api [![Greenkeeper badge](https://badges.greenkeeper.io/tiaanduplessis/coinmarketcap-api.svg)](https://greenkeeper.io/) [![npm package version](https://img.shields.io/npm/v/coinmarketcap-api.svg?style=flat-square)](https://npmjs.org/package/coinmarketcap-api) [![npm downloads](https://img.shields.io/npm/dm/coinmarketcap-api.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/tiaanduplessis/coinmarketcap-api/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/tiaanduplessis/coinmarketcap-api) [![travis ci build status](https://img.shields.io/travis/tiaanduplessis/coinmarketcap-api.svg?style=flat-square)](https://travis-ci.org/tiaanduplessis/coinmarketcap-api) [![project license](https://img.shields.io/npm/l/coinmarketcap-api.svg?style=flat-square)](https://github.com/tiaanduplessis/coinmarketcap-api/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 node 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 # OR $ yarn add coinmarketcap-api ``` ## Usage ```js const CoinMarketCap = require('coinmarketcap-api') 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 <!-- Generated by documentation.js. Update this documentation by updating the source code. --> #### 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)&lt;[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 <https://coinmarketcap.com/api/documentation/v1/#operation/getV1CryptocurrencyMap> (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)&lt;[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)&lt;[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 <https://pro.coinmarketcap.com/api/v1#operation/getV1CryptocurrencyListingsLatest> (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)&lt;[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)&lt;[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)&lt;[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)&lt;[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/tiaanduplessis/coinmarketcap-api/issues). ## License Licensed under the MIT License.