cryptodatapy.extract.data_vendors.coinmetrics_api

Attributes

data_cred

client

Classes

CoinMetrics

Retrieves data from Coin Metrics Python client API v4.

Module Contents

cryptodatapy.extract.data_vendors.coinmetrics_api.data_cred
cryptodatapy.extract.data_vendors.coinmetrics_api.client
class cryptodatapy.extract.data_vendors.coinmetrics_api.CoinMetrics(categories: str | List[str] = 'crypto', exchanges: List[str] | None = None, indexes: List[str] | None = None, assets: List[str] | None = None, markets: List[str] | None = None, market_types: List[str] = ['spot', 'perpetual_future', 'future', 'option'], fields: List[str] | None = None, frequencies: List[str] = ['tick', 'block', '1s', '1min', '5min', '10min', '15min', '30min', '1h', '2h', '4h', '8h', 'd', 'w', 'm', 'q'], base_url: str | None = data_cred.coinmetrics_base_url, api_endpoints: Dict[str, str] | None = None, api_key: str | None = data_cred.coinmetrics_api_key, max_obs_per_call: int | None = None, rate_limit: Any | None = None)

Bases: cryptodatapy.extract.data_vendors.datavendor.DataVendor

Retrieves data from Coin Metrics Python client API v4.

data_req = None
data_resp = None
data
req_meta(data_type: str) Dict[str, Any]

Request metadata.

Parameters:

data_type (str, {'catalog_exchanges', 'catalog_indexes', 'catalog_assets', 'catalog_institutions',) – ‘catalog_markets’, ‘catalog_metrics’ } Type of data to request metadata for.

Returns:

meta – Object with metadata.

Return type:

Any

get_exchanges_info(as_list: bool = False) List[str] | pandas.DataFrame

Get exchanges info.

Parameters:

as_list (bool, default False) – Returns exchanges info as list.

Returns:

exch – List or dataframe with info on supported exchanges.

Return type:

list or pd.DataFrame

get_indexes_info(as_list: bool = False) List[str] | pandas.DataFrame

Get indexes info.

Parameters:

as_list (bool, default False) – Returns indexes info as list.

Returns:

indexes – List or dataframe with info on available indexes.

Return type:

list or pd.DataFrame

get_assets_info(as_list: bool = False) List[str] | pandas.DataFrame

Get assets info.

Parameters:

as_list (bool, default False) – Returns assets info as a list.

Returns:

assets – List or dataframe with info on available assets.

Return type:

list or pd.DataFrame

get_markets_info(as_list: bool = False) List[str] | pandas.DataFrame

Get markets info.

Parameters:

as_list (bool, default False) – Returns markets info as dict with exchange-markets key-values pair.

Returns:

mkts – List or dataframe with info on available markets, by exchange.

Return type:

list or pd.DataFrame

get_onchain_fields_info(as_list: bool = False) List[str] | pandas.DataFrame

Get on-chain fields info.

Parameters:

as_list (bool, default False) – Returns on-chain fields as list.

Returns:

onchain_fields – List or dataframe of on-chain info.

Return type:

list or pd.DataFrame

get_fields_info(data_type: str | None = None, as_list: bool = False) List[str] | pandas.DataFrame

Get fields info. Can be filtered by data type.

Parameters:
  • data_type (str, optional, {'market', 'on-chain', 'off-chain'}, default None) – Type of data.

  • as_list (bool, default False) – Returns available fields as list.

Returns:

fields – List or dataframe with info on available fields.

Return type:

list or pd.DataFrame

get_onchain_tickers_list(data_req: cryptodatapy.extract.datarequest.DataRequest) List[str]

Get list of available assets for fields in data request.

Parameters:

data_req (DataRequest) – Data request object with ‘fields’ parameter.

Returns:

asset_list – List of available assets for selected fields.

Return type:

list

get_rate_limit_info() None

Get rate limit info.

get_metadata() None

Get CoinMetrics metadata.

req_data(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, params: Dict[str, str | int]) pandas.DataFrame

Sends data request to Python client.

Parameters:
  • data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

  • data_type (str, {'/timeseries/index-levels', '/timeseries/institution-metrics',) – ‘/timeseries/market-candles’, ‘/timeseries/asset-metrics’, ‘/timeseries/market-open-interest’, ‘/timeseries/market-funding-rates’, ‘/timeseries/market-trades’, ‘/timeseries/market-quotes’} Data type to retrieve.

  • params (dict) – Dictionary containing parameter values for get request.

Returns:

df – Dataframe with datetime, ticker/identifier, and field/col values.

Return type:

pd.DataFrame

wrangle_data_resp(data_req: cryptodatapy.extract.datarequest.DataRequest, data_resp: pd.DataFrame())

Wrangle data response.

Parameters:
  • data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

  • data_resp (pd.DataFrame) – Data response from API.

Returns:

df – Wrangled dataframe with DatetimeIndex (level 0), ticker or institution (level 1), and market, on-chain or off-chain values for selected fields (cols), in tidy format.

Return type:

pd.DataFrame - MultiIndex

get_tidy_data(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, params: dict) pandas.DataFrame

Gets data and wrangles it into tidy data format.

Parameters:
  • data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

  • data_type (str, {'get_index_levels', 'get_institution_metrics', 'get_market_candles', 'get_asset_metrics',) –

    ‘get_market_open_interest’, ‘get_market_funding_rates’, ‘get_market_trades’,

    ’get_market_quotes’}

    Data type to retrieve.

  • params (dict) – Dictionary containing parameter values for get request.

Returns:

df – Dataframe with DatetimeIndex (level 0), ticker (level 1) and values for fields/col, in tidy data format.

Return type:

pd.DataFrame - MultiIndex

check_tickers(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str) cryptodatapy.extract.datarequest.DataRequest

Checks tickers for data availability.

Parameters:
  • data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

  • data_type (str, {'indexes', 'institutions', market_candles', 'asset_metrics', 'open_interest', 'funding_rates',) – ‘trades’, quotes’} Data type to retrieve.

Returns:

tickers – List of available tickers.

Return type:

list

check_fields(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str) cryptodatapy.extract.datarequest.DataRequest

Checks fields for data availability.

Parameters:
  • data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

  • data_type (str, {'indexes', 'institutions', 'market_candles', 'asset_metrics', 'open_interest',) – ‘funding_rates’, ‘trades’, quotes’} Data type to retrieve.

Returns:

fields – List of avaialble fields.

Return type:

list

check_params(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str) None

Checks data request parameters.

Parameters:
  • data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

  • data_type (str, {'indexes', 'institutions', 'market_candles', 'asset_metrics', 'open_interest', 'funding_rates',) – ‘trades’, quotes’} Data type to retrieve.

get_indexes(data_req: cryptodatapy.extract.datarequest.DataRequest) pandas.DataFrame

Get indexes data.

Parameters:

data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

Returns:

df – DataFrame with DatetimeIndex (level 0), tickers (level 1) and index values (cols).

Return type:

pd.DataFrame

get_ohlcv(data_req: cryptodatapy.extract.datarequest.DataRequest) pandas.DataFrame

Get OHLCV (candles) data.

Parameters:

data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1), and OHLCV values (cols).

Return type:

pd.DataFrame - MultiIndex

get_onchain(data_req: cryptodatapy.extract.datarequest.DataRequest) pandas.DataFrame

Get on-chain data.

Parameters:

data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1), and on-chain values (cols).

Return type:

pd.DataFrame - MultiIndex

get_open_interest(data_req: cryptodatapy.extract.datarequest.DataRequest) pandas.DataFrame

Get open interest data.

Parameters:

data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1), and open interest values (cols).

Return type:

pd.DataFrame - MultiIndex

get_funding_rates(data_req: cryptodatapy.extract.datarequest.DataRequest) pandas.DataFrame

Get funding rates data.

Parameters:

data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1), and funding rates values (cols).

Return type:

pd.DataFrame - MultiIndex

get_trades(data_req: cryptodatapy.extract.datarequest.DataRequest) pandas.DataFrame

Get trades (transactions) data.

Parameters:

data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1), and bid/ask price and size values (cols).

Return type:

pd.DataFrame - MultiIndex

get_quotes(data_req: cryptodatapy.extract.datarequest.DataRequest) pandas.DataFrame

Get quotes (order book) data.

Parameters:

data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1), and bid/ask price and size values (cols).

Return type:

pd.DataFrame - MultiIndex

get_data(data_req: cryptodatapy.extract.datarequest.DataRequest) pandas.DataFrame

Get market, on-chain and/or off-chain data.

Parameters:

data_req (DataRequest) – Parameters of data request in CryptoDataPy format.

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1) and values for market, on-chain and/or off-chain fields (cols), in tidy format.

Return type:

pd.DataFrame - MultiIndex