CoinMarketCap Python API Wrapper
Project description
Python-CoinMarketCap API Wrapper
This is a non official (but working) Python package to wrap the CoinMarketCap API. With this you can monitoring and watch the crypto market.
- First, you have to create an API on the Developper Portal
- Read the official API documentation
Installation
Via pip
- pip install python-coinmarketcap
/!\ Don't confound with the coinmarketcap package.
Example
from coinmarketcapapi import CoinMarketCapAPI, CoinMarketCapAPIError
cmc = CoinMarketCapAPI('{YOUR_API_KEY}')
r = cmc.cryptocurrency_info(symbol='BTC')
do_something(r.data)
Wrapper References
CoinMarketCapAPI
Synopsis
CoinMarketCapAPI(api_key=None, [debug=False, logger=None, sandbox=False, version='v1'])
debug
: set verbosity.sandbox
: In case of default sandbox API key changes, see Issue #1.logger
: you can give a custom logger.version
: set the version in the URL, for futures version.
Methods
You have to pass to following methods the parameters detailled in the official documentation.
Methods and documentation | Description | Endpoint |
---|---|---|
(doc) cryptocurrency_map | CoinMarketCap ID map | /cryptocurrency/map |
(doc) cryptocurrency_info | Metadata | /cryptocurrency/info |
(doc) cryptocurrency_listings_latest | Latest listings | /cryptocurrency/listings/latest |
(doc) cryptocurrency_listings_historical | Historical listings | /cryptocurrency/listings/historical |
(doc) cryptocurrency_quotes_latest | Latest quotes | /cryptocurrency/quotes/latest |
(doc) cryptocurrency_quotes_historical | Historical quotes | /cryptocurrency/quotes/historical |
(doc) cryptocurrency_marketpairs_latest | Latest market pairs | /cryptocurrency/market-pairs/latest |
(doc) cryptocurrency_ohlcv_latest | Latest OHLCV | /cryptocurrency/ohlcv/latest |
(doc) cryptocurrency_ohlcv_historical | Historical OHLCV | /cryptocurrency/ohlcv/historical |
(doc) cryptocurrency_priceperformancestats_latest | Price performance Stats | /cryptocurrency/price-performance-stats/latest |
(doc) exchange_map | CoinMarketCap ID map | /exchange/map |
(doc) exchange_info | Metadata | /exchange/info |
(doc) exchange_listings_latest | Latest listings | /exchange/listings/latest |
(doc) exchange_listings_historical | Historical listings | /exchange/listings/historical |
(doc) exchange_quotes_latest | Latest quotes | /exchange/quotes/latest |
(doc) exchange_quotes_historical | Historical quotes | /exchange/quotes/historical |
(doc) exchange_marketpairs_latest | Latest market pairs | /exchange/market-pairs/latest |
(doc) globalmetrics_quotes_latest | Latest global metrics | /global-metrics/quotes/latest |
(doc) globalmetrics_quotes_historical | Historical global metrics | /global-metrics/quotes/historical |
(doc) tools_priceconversion | Price conversion tool | /tools/price-conversion |
(doc) blockchain_statistics_latest | Latest statistics | /blockchain/statistics/latest |
(doc) fiat_map | CoinMarketCap ID map | /fiat/map |
(doc) partners_flipsidecrypto_fcas_listings_latest | List all available FCAS scores | /partners/flipside-crypto/fcas/listings/latest |
(doc) partners_flipsidecrypto_fcas_quotes_latest | Request specific FCAS scores | /partners/flipside-crypto/fcas/quotes/latest |
(doc) key_info | Key Info | /key/info |
Example
Assuming you want to get informations about bitcoin. First, read the documentation of the corresponding cryptocurrency_info endpoint.
- You can pass the
symbol
parameter like :cmc.cryptocurrency_info(symbol='BTC')
- or with the
slug
parameter :cmc.cryptocurrency_info(slug='bitcoin')
You can switch easly in the sandbox mode without giving an API key or by setting it to None
:
cmc = CoinMarketCapAPI() # You are in sandbox environnement
You can enable a debuging mode, just set debug
to True
to main class:
cmc = CoinMarketCapAPI(debug=True)
cmc.cryptocurrency_info(symbol='BTC')
This will produce this output :
2019-04-06 16:03:04,716 root DEBUG GET SANDBOX 'v1/cryptocurrency/info'
PARAMETERS: {'symbol': 'BTC'}
2019-04-06 16:03:05,004 root DEBUG RESPONSE: 288ms OK: {u'BTC': {u'category': u'coin', u'name': u'Bitcoin', u'tags': [u'mineable'], u'symbol': u'BTC', u'id': 1, [...]}
See also
Response
Synopsis
You get results of the API in a Response
instance.
Property
Corresponding to standards and conventions:
data
(dict): will give you the result.status
(dict): the status object always included for both successful calls and failures.credit_count
(int): the number of credits this call utilized.elapsed
(int): the number of milliseconds it took to process the request to the server.total_elapsed
(int): the total number of milliseconds it took to process the request.timesamp
(str): current time on the server when the call was executed.error_code
(str | None): In case of an error has been raised, this property will give you the status error code.error_message
(str | None): In case of an error has been raised, this property will give details about error.error
(bool): True if an error has been raised.
Example
r = cmc.cryptocurrency_info(symbol='BTC')
print repr(r.status)
print repr(r.data)
print repr(r.credit_count)
CoinMarketCapAPIError
Synopsis
If API returns an error, CoinMarketCapAPI
will raise a CoinMarketCapAPIError
.
Property
rep
(Response | None): will give you aResponse
instance orNone
if request failed for an other reason than a server error.
Example
from coinmarketcapapi import CoinMarketCapAPI, CoinMarketCapAPIError
cmc = CoinMarketCapAPI('{YOUR_API_KEY}') # Pro environnement
# cmc = CoinMarketCapAPI() # Sandbox environnement
try:
r = cmc.cryptocurrency_info(symbol='BTC')
except CoinMarketCapAPIError as e:
r = e.rep
print repr(r.error)
print repr(r.status)
print repr(r.data)
See this project on
ToDo
- Add Cryptocurrency Abstraction
- Add Exchange Abstraction
- Add GlobalMetrics Abstraction
- Add Tools Abstraction
ChangeLog
- 8 sept 2020: Version 0.2
- Adding missing endpoints
- Fixing sandbox mode (see Issue #1)
- Adding
deflate, gzip
encoding to receive data fast and efficiently. - Documentation: adding usefull links
- 6 apr 2019: Version 0.1
Give me a coffee
BTC: 39aosiow4nsUvYVA2kP1hZPNZ7ZbJ6ouKr
ETH: 0x45d940FDA3F1Ce91cA7CB478af72170bb6560201
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for python_coinmarketcap-0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b69a7a92cd4f2b4726a2982d166c0b587fa4911cf366286f798e1e6f9d94933 |
|
MD5 | 1cd13a4c5bc5be502ae9101714dc9f84 |
|
BLAKE2b-256 | be905078d7f610e6a61ac5b03e63c893ef6e46aa62c7b1245788dcfc2e1cecad |
Hashes for python_coinmarketcap-0.2-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54c278154ee11ca78837fb73eae8c322a60af93dc0ce75b515fecf895d181cf5 |
|
MD5 | 6dfb5302b40ee817d20477b581cb934e |
|
BLAKE2b-256 | 3a4d1c0ced08f35d0986f59878ec61efe20d5036626965cb6029880905cd5a98 |