Python3 wrapper around the CoinGecko API (V3)
PyPI
pip install pycoingecko
or from source
git clone https://github.com/man-c/pycoingecko.git
cd pycoingecko
python3 setup.py install
from pycoingecko import CoinGeckoAPI
cg = CoinGeckoAPI()
The required parameters for each endpoint are defined as required (mandatory) parameters for the coresponding functions. Any optional parameters can be also passed using same names, as defined in CoinGecko API doc (https://www.coingecko.com/api/docs/v3)
Lists are also supported as input for multiple-valued comma-separated parameters (e.g. see /simple/price usage examples).
Usage examples:
# /simple/price endpoint with the required parameters
>>> cg.get_price(ids='bitcoin', vs_currencies='usd')
{'bitcoin': {'usd': 3462.04}}
>>> cg.get_price(ids='bitcoin,litecoin,ethereum', vs_currencies='usd')
# OR (lists can be used for multiple-valued arguments)
>>> cg.get_price(ids=['bitcoin', 'litecoin', 'ethereum'], vs_currencies='usd')
{'bitcoin': {'usd': 3461.27}, 'ethereum': {'usd': 106.92}, 'litecoin': {'usd': 32.72}}
>>> cg.get_price(ids='bitcoin,litecoin,ethereum', vs_currencies='usd,eur')
# OR (lists can be used for multiple-valued arguments)
>>> cg.get_price(ids=['bitcoin', 'litecoin', 'ethereum'], vs_currencies=['usd', 'eur'])
{'bitcoin': {'usd': 3459.39, 'eur': 3019.33}, 'ethereum': {'usd': 106.91, 'eur': 93.31}, 'litecoin': {'usd': 32.72, 'eur': 28.56}}
# optional parameteres can be passed as defined in the API doc (https://www.coingecko.com/api/docs/v3)
>>> cg.get_price(ids='bitcoin', vs_currencies='usd', include_market_cap='true', include_24hr_vol='true', include_24hr_change='true', include_last_updated_at='true')
{'bitcoin': {'usd': 3458.74, 'usd_market_cap': 60574330199.29028, 'usd_24h_vol': 4182664683.6247883, 'usd_24h_change': 1.2295378479069035, 'last_updated_at': 1549071865}}
https://www.coingecko.com/api/docs/v3
- ping
- /ping (Check API server status)
cg.ping()
- /ping (Check API server status)
- simple
- /simple/price (Get the current price of any cryptocurrencies in any other supported currencies that you need)
cg.get_price()
- /simple/token_price/{id} (Get current price of tokens (using contract addresses) for a given platform in any other currency that you need)
cg.get_token_price()
- /simple/supported_vs_currencies (Get list of supported_vs_currencies)
cg.get_supported_vs_currencies()
- /simple/price (Get the current price of any cryptocurrencies in any other supported currencies that you need)
- coins
- /coins/list (List all supported coins id, name and symbol (no pagination required))
cg.get_coins_list()
- /coins/markets (List all supported coins price, market cap, volume, and market related data (no pagination required))
cg.get_coins_markets()
- /coins/{id} (Get current data (name, price, market, ... including exchange tickers) for a coin)
cg.get_coin_by_id()
- /coins/{id}/tickers (Get coin tickers (paginated to 100 items))
cg.get_coin_ticker_by_id()
- /coins/{id}/history (Get historical data (name, price, market, stats) at a given date for a coin)
cg.get_coin_history_by_id()
- /coins/{id}/market_chart (Get historical market data include price, market cap, and 24h volume (granularity auto))
cg.get_coin_market_chart_by_id()
- /coins/{id}/market_chart/range (Get historical market data include price, market cap, and 24h volume within a range of timestamp (granularity auto))
cg.get_coin_market_chart_range_by_id()
- /coins/{id}/status_updates (Get status updates for a given coin (beta))
cg.get_coin_status_updates_by_id()
- /coins/list (List all supported coins id, name and symbol (no pagination required))
- contract
- /coins/{id}/contract/{contract_address} (Get coin info from contract address)
cg.get_coin_info_from_contract_address_by_id()
- /coins/{id}/contract/{contract_address}/market_chart/ (Get historical market data include price, market cap, and 24h volume (granularity auto) from a contract address)
cg.get_coin_market_chart_from_contract_address_by_id()
- /coins/{id}/contract/{contract_address}/market_chart/range (Get historical market data include price, market cap, and 24h volume within a range of timestamp (granularity auto) from a contract address)
cg.get_coin_market_chart_range_from_contract_address_by_id()
- /coins/{id}/contract/{contract_address} (Get coin info from contract address)
- exchanges (beta)
- /exchanges (List all exchanges)
cg.get_exchanges_list()
- /exchanges/list (List all supported markets id and name (no pagination required))
cg.get_exchanges_id_name_list()
- /exchanges/{id} (Get exchange volume in BTC and top 100 tickers only)
cg.get_exchanges_by_id()
- /exchanges/{id}/tickers (Get exchange tickers (paginated))
cg.get_exchanges_tickers_by_id()
- /exchanges/{id}/status_updates (Get status updates for a given exchange (beta))
cg.get_exchanges_status_updates_by_id()
- /exchanges/{id}/volume_chart (Get volume_chart data for a given exchange (beta))
cg.get_exchanges_volume_chart_by_id()
- /exchanges (List all exchanges)
- finance (beta)
- /finance_platforms (List all finance platforms)
cg.get_finance_platforms()
- /finance_products (List all finance products)
cg.get_finance_products()
- /finance_platforms (List all finance platforms)
- indexes (beta)
- /indexes (List all market indexes)
cg.get_indexes()
- /indexes/{id} (Get market index by id)
cg.get_indexes_by_id()
- /indexes/list (List market indexes id and name)
cg.get_indexes_list()
- /indexes (List all market indexes)
- derivatives (beta)
- /derivatives (List all derivative tickers)
cg.get_derivatives()
- /derivatives/exchanges (List all derivative exchanges)
cg.get_derivatives_exchanges()
- /derivatives/exchanges/{id} (Show derivative exchange data)
cg.get_derivatives_exchanges_by_id()
- /derivatives/exchanges/list (List all derivative exchanges name and identifier)
cg.get_derivatives_exchanges_list()
- /derivatives (List all derivative tickers)
- status_updates (beta)
- /status_updates (List all status_updates with data (description, category, created_at, user, user_title and pin))
cg.get_status_updates()
- /status_updates (List all status_updates with data (description, category, created_at, user, user_title and pin))
- events
- /events (Get events, paginated by 100)
cg.get_events()
- /events/countries (Get list of event countries)
cg.get_events_countries()
- /events/types (Get list of events types)
cg.get_events_types()
- /events (Get events, paginated by 100)
- exchange_rates
- /exchange_rates (Get BTC-to-Currency exchange rates)
cg.get_exchange_rates()
- /exchange_rates (Get BTC-to-Currency exchange rates)
- global
- /global (Get cryptocurrency global data)
cg.get_global()
- /global (Get cryptocurrency global data)
Run unit tests with:
# after installing pytest using pip3
pytest tests