Python wrapper for coinmarketcap.com public API and private API offer global market data,coin data,exchanges data and more this library has been tested with Python2.7 and Python3.6
From source use
$ python setup.py install
or install from PyPi
$ pip install coinmarketcap-api
Implement
- Use coinmarketcap.com public API /v2/global/Description
- This endpoint displays the global data found at the top of coinmarketcap.com.Optional parameters:
- (string) convert - return pricing info in terms of another currency. Valid fiat currency values are: “AUD”, “BRL”, “CAD”, “CHF”, “CLP”, “CNY”, “CZK”, “DKK”, “EUR”, “GBP”, “HKD”, “HUF”, “IDR”, “ILS”, “INR”, “JPY”, “KRW”, “MXN”, “MYR”, “NOK”, “NZD”, “PHP”, “PKR”, “PLN”, “RUB”, “SEK”, “SGD”, “THB”, “TRY”, “TWD”, “ZAR” Valid cryptocurrency values are: “BTC”, “ETH” “XRP”, “LTC”, and “BCH”
from coinmarketcap import CoinMarketCap
market = CoinMarketCap()
resp = market.stats(convert="BTC")
{
'data': {
'active_cryptocurrencies': 1620,
'active_markets': 11598,
'bitcoin_percentage_of_market_cap': 42.11,
'quotes': {
'USD': {
'total_market_cap': 277757148004.0,
'total_volume_24h': 12371915084.0
},
'BTC': {
'total_market_cap': 40697435.0,
'total_volume_24h': 1812753.0
}
},
'last_updated': 1531038676
},
'metadata': {
'timestamp': 1531038328,
'error': None
},
'cached': False
}
Implement
- Use coinmarketcap.com public API /v2/listings/Description
- This endpoint displays all active cryptocurrency listings in one call. Use the "id" field on the Ticker endpoint to query more information on a specific cryptocurrency.
from coinmarketcap import CoinMarketCap
market = CoinMarketCap()
resp = market.coin_list()
{
'data': [{
'id': 1,
'name': 'Bitcoin',
'symbol': 'BTC',
'website_slug': 'bitcoin'
}, {
'id': 2,
'name': 'Litecoin',
'symbol': 'LTC',
'website_slug': 'litecoin'
}//...
],
'metadata': {
'timestamp': 1531038439,
'num_cryptocurrencies': 1620,
'error': None
},
'cached': False
}
Implement
- Use coinmarketcap.com public API /v2/ticker/coinid
/Description
- This endpoint displays cryptocurrency ticker data in order of rank. The maximum number of results per call is 100. Pagination is possible by using the start and limit parameters.Optional parameters:
- (int) start - return results starting from the specified number (default is 1)
- (int) limit - return a maximum of [limit] results (default is 100; max is 100)
- (string) sort - return results sorted by [sort] . Possible values are id, rank, volume_24h, and percent_change_24h (default is rank). Note: It is strongly recommended to use id to sort if paginating through all available results since id is the only sort option guaranteed to return in a consistent order.
- (string) structure - specify the structure for the main data field. Possible values are dictionary and array (default is dictionary).
- (string) convert - return pricing info in terms of another currency. Valid fiat currency values are: "AUD", "BRL", "CAD", "CHF", "CLP", "CNY", "CZK", "DKK", "EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "JPY", "KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PKR", "PLN", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "ZAR" Valid cryptocurrency values are: "BTC", "ETH" "XRP", "LTC", and "BCH"
from coinmarketcap import CoinMarketCap
market = CoinMarketCap()
resp = market.coin_ticker_detail(1, convert="CNY", disable_cache=False)
{
'data': {
'id': 1,
'name': 'Bitcoin',
'symbol': 'BTC',
'website_slug': 'bitcoin',
'rank': 1,
'circulating_supply': 17137487.0,
'total_supply': 17137487.0,
'max_supply': 21000000.0,
'quotes': {
'USD': {
'price': 6826.71,
'volume_24h': 3921270000.0,
'market_cap': 116992653878.0,
'percent_change_1h': -0.05,
'percent_change_24h': 2.75,
'percent_change_7d': 7.06
},
'CNY': {
'price': 45340.3158747659,
'volume_24h': 26043529083.591248,
'market_cap': 777019073880.0,
'percent_change_1h': -0.05,
'percent_change_24h': 2.75,
'percent_change_7d': 7.06
}
},
'last_updated': 1531038856
},
'metadata': {
'timestamp': 1531038527,
'error': None
},
'cached': False
}
Implement
- Use coinmarketcap.com public API /v2/ticker/Description
- This endpoint displays cryptocurrency ticker data in order of rank. The maximum number of results per call is 100. Pagination is possible by using the start and limit parameters.Optional parameters:
- (int) start - return results starting from the specified number (default is 1)
- (int) limit - return a maximum of [limit] results (default is 100; max is 100)
- (string) sort - return results sorted by [sort] . Possible values are id, rank, volume_24h, and percent_change_24h (default is rank). Note: It is strongly recommended to use id to sort if paginating through all available results since id is the only sort option guaranteed to return in a consistent order.
- (string) structure - specify the structure for the main data field. Possible values are dictionary and array (default is dictionary).
- (string) convert - return pricing info in terms of another currency. Valid fiat currency values are: "AUD", "BRL", "CAD", "CHF", "CLP", "CNY", "CZK", "DKK", "EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "JPY", "KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PKR", "PLN", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "ZAR" Valid cryptocurrency values are: "BTC", "ETH" "XRP", "LTC", and "BCH"
from coinmarketcap import CoinMarketCap
market = CoinMarketCap()
resp = market.coin_ticker_list(convert="CNY", start=1, limit=2, disable_cache=False)
{
'data': {
'1': {
'id': 1,
'name': 'Bitcoin',
'symbol': 'BTC',
'website_slug': 'bitcoin',
'rank': 1,
'circulating_supply': 17137562.0,
'total_supply': 17137562.0,
'max_supply': 21000000.0,
'quotes': {
'USD': {
'price': 6819.96,
'volume_24h': 3918890000.0,
'market_cap': 116877487338.0,
'percent_change_1h': -0.18,
'percent_change_24h': 2.64,
'percent_change_7d': 6.98
},
'CNY': {
'price': 45295.4850364624,
'volume_24h': 26027722062.085728,
'market_cap': 776254183132.0,
'percent_change_1h': -0.18,
'percent_change_24h': 2.64,
'percent_change_7d': 6.98
}
},
'last_updated': 1531041083
},
'1027': {
'id': 1027,
'name': 'Ethereum',
'symbol': 'ETH',
'website_slug': 'ethereum',
'rank': 2,
'circulating_supply': 100558036.0,
'total_supply': 100558036.0,
'max_supply': None,
'quotes': {
'USD': {
'price': 492.025,
'volume_24h': 1402710000.0,
'market_cap': 49477067647.0,
'percent_change_1h': -0.18,
'percent_change_24h': 4.15,
'percent_change_7d': 8.44
},
'CNY': {
'price': 3267.8360320391,
'volume_24h': 9316246695.801176,
'market_cap': 328607173247.0,
'percent_change_1h': -0.18,
'percent_change_24h': 4.15,
'percent_change_7d': 8.44
}
},
'last_updated': 1531041074
}
},
'metadata': {
'timestamp': 1531040731,
'num_cryptocurrencies': 1620,
'error': None
},
'cached': False
}
Implement
- Use coinmarketcap.com private API https://graphs2.coinmarketcap.com/currencies/`currency`/`start`/`end`/Description
- This endpoint get currency price info fromstart
toend
.Optional parameters:
- (int) start - return results starting from the specified timestamp
- (int) end - return results ending with the specified timestamp Note: You should set start and end both or both not
from coinmarketcap import CoinMarketCap
market = CoinMarketCap()
resp = market.coin_price("eos")
{
'market_cap_by_available_supply': [
[1498936454000, 0],
[1499022857000, 0],
//more data here
],
'price_platform': [
[1498936454000, 0.00379662],
[1499022857000, 0.008883],
//more data here
],
'price_usd': [
[1498936454000, 1.03134],
[1499022857000, 2.51268],
//more data here
],
'volume_usd': [
[1498936454000, 11487600],
[1499022857000, 288045000],
//more data here
],
'cached': False
}
Implement
- gather coin market price from web page https://coinmarketcap.com/currencies/`currency`/#marketsDescription
- This endpoint return currency market price info
from coinmarketcap import CoinMarketCap
market = CoinMarketCap()
resp = market.coin_market_price("eos")
{
'data': [{
'exchange': 'OKEx',
'pair': 'EOS/USDT',
'volume': {
'volume_usd': '78479600.0',
'volume_btc': '11670.3',
'volume_native': '8586700.0'
},
'price': {
'price_usd': '9.13968',
'price_btc': '0.00135911',
'price_native': '8.8138'
},
'percentage': '14.6980406258'
}, {
'exchange': 'CoinBene',
'pair': 'EOS/USDT',
'volume': {
'volume_usd': '68980700.0',
'volume_btc': '10257.8',
'volume_native': '7550640.0'
},
'price': {
'price_usd': '9.13573',
'price_btc': '0.00135853',
'price_native': '8.81'
},
'percentage': '12.9190405022'
}],
'metadata': {
'num_prices': 124,
'error': None
}
}
Implement
- gather exchanges list from web page https://coinmarketcap.com/exchanges/volume/24-hour/all/Description
- This endpoint displays all active exchange listings in one call.
from coinmarketcap import CoinMarketCap
market = CoinMarketCap()
resp = market.exchange_list()
{
'data': [{
'display_name': 'FCoin',
'name': 'fcoin',
'url': '/exchanges/fcoin/',
'logo': 'https://s2.coinmarketcap.com/static/img/exchanges/32x32/410.png',
'rank': 1
}, {
'display_name': 'BitMEX',
'name': 'bitmex',
'url': '/exchanges/bitmex/',
'logo': 'https://s2.coinmarketcap.com/static/img/exchanges/32x32/157.png',
'rank': 2
}],
'metadata': {
'num_exchanges': 207,
'error': None
}
}
TODO