cryptodatapy.extract.data_vendors.coinmetrics_api ================================================= .. py:module:: cryptodatapy.extract.data_vendors.coinmetrics_api Attributes ---------- .. autoapisummary:: cryptodatapy.extract.data_vendors.coinmetrics_api.data_cred cryptodatapy.extract.data_vendors.coinmetrics_api.client Classes ------- .. autoapisummary:: cryptodatapy.extract.data_vendors.coinmetrics_api.CoinMetrics Module Contents --------------- .. py:data:: data_cred .. py:data:: client .. py:class:: CoinMetrics(categories: Union[str, List[str]] = 'crypto', exchanges: Optional[List[str]] = None, indexes: Optional[List[str]] = None, assets: Optional[List[str]] = None, markets: Optional[List[str]] = None, market_types: List[str] = ['spot', 'perpetual_future', 'future', 'option'], fields: Optional[List[str]] = None, frequencies: List[str] = ['tick', 'block', '1s', '1min', '5min', '10min', '15min', '30min', '1h', '2h', '4h', '8h', 'd', 'w', 'm', 'q'], base_url: Optional[str] = data_cred.coinmetrics_base_url, api_endpoints: Optional[Dict[str, str]] = None, api_key: Optional[str] = data_cred.coinmetrics_api_key, max_obs_per_call: Optional[int] = None, rate_limit: Optional[Any] = None) Bases: :py:obj:`cryptodatapy.extract.data_vendors.datavendor.DataVendor` Retrieves data from Coin Metrics Python client API v4. .. py:attribute:: data_req :value: None .. py:attribute:: data_resp :value: None .. py:attribute:: data .. py:method:: req_meta(data_type: str) -> Dict[str, Any] Request metadata. :param data_type: 'catalog_markets', 'catalog_metrics' } Type of data to request metadata for. :type data_type: str, {'catalog_exchanges', 'catalog_indexes', 'catalog_assets', 'catalog_institutions', :returns: **meta** -- Object with metadata. :rtype: Any .. py:method:: get_exchanges_info(as_list: bool = False) -> Union[List[str], pandas.DataFrame] Get exchanges info. :param as_list: Returns exchanges info as list. :type as_list: bool, default False :returns: **exch** -- List or dataframe with info on supported exchanges. :rtype: list or pd.DataFrame .. py:method:: get_indexes_info(as_list: bool = False) -> Union[List[str], pandas.DataFrame] Get indexes info. :param as_list: Returns indexes info as list. :type as_list: bool, default False :returns: **indexes** -- List or dataframe with info on available indexes. :rtype: list or pd.DataFrame .. py:method:: get_assets_info(as_list: bool = False) -> Union[List[str], pandas.DataFrame] Get assets info. :param as_list: Returns assets info as a list. :type as_list: bool, default False :returns: **assets** -- List or dataframe with info on available assets. :rtype: list or pd.DataFrame .. py:method:: get_markets_info(as_list: bool = False) -> Union[List[str], pandas.DataFrame] Get markets info. :param as_list: Returns markets info as dict with exchange-markets key-values pair. :type as_list: bool, default False :returns: **mkts** -- List or dataframe with info on available markets, by exchange. :rtype: list or pd.DataFrame .. py:method:: get_onchain_fields_info(as_list: bool = False) -> Union[List[str], pandas.DataFrame] Get on-chain fields info. :param as_list: Returns on-chain fields as list. :type as_list: bool, default False :returns: **onchain_fields** -- List or dataframe of on-chain info. :rtype: list or pd.DataFrame .. py:method:: get_fields_info(data_type: Optional[str] = None, as_list: bool = False) -> Union[List[str], pandas.DataFrame] Get fields info. Can be filtered by data type. :param data_type: Type of data. :type data_type: str, optional, {'market', 'on-chain', 'off-chain'}, default None :param as_list: Returns available fields as list. :type as_list: bool, default False :returns: **fields** -- List or dataframe with info on available fields. :rtype: list or pd.DataFrame .. py:method:: get_onchain_tickers_list(data_req: cryptodatapy.extract.datarequest.DataRequest) -> List[str] Get list of available assets for fields in data request. :param data_req: Data request object with 'fields' parameter. :type data_req: DataRequest :returns: **asset_list** -- List of available assets for selected fields. :rtype: list .. py:method:: get_rate_limit_info() -> None Get rate limit info. .. py:method:: get_metadata() -> None Get CoinMetrics metadata. .. py:method:: req_data(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, params: Dict[str, Union[str, int]]) -> pandas.DataFrame Sends data request to Python client. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :param data_type: Data type to retrieve. :type data_type: str :param params: Dictionary containing parameter values for get request. :type params: dict :returns: **df** -- Dataframe with datetime, ticker/identifier, and field/col values. :rtype: pd.DataFrame .. py:method:: wrangle_data_resp(data_req: cryptodatapy.extract.datarequest.DataRequest, data_resp: pd.DataFrame()) -> pd.DataFrame() Wrangle data response. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :param data_resp: Data response from API. :type data_resp: pd.DataFrame :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. :rtype: pd.DataFrame - MultiIndex .. py:method:: 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. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :param data_type: 'get_market_open_interest', 'get_market_funding_rates', 'get_market_trades', 'get_market_quotes'} Data type to retrieve. :type data_type: str, {'get_index_levels', 'get_institution_metrics', 'get_market_candles', 'get_asset_metrics', :param params: Dictionary containing parameter values for get request. :type params: dict :returns: **df** -- Dataframe with DatetimeIndex (level 0), ticker (level 1) and values for fields/col, in tidy data format. :rtype: pd.DataFrame - MultiIndex .. py:method:: check_tickers(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str) -> cryptodatapy.extract.datarequest.DataRequest Checks tickers for data availability. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :param data_type: 'trades', quotes'} Data type to retrieve. :type data_type: str, {'indexes', 'institutions', market_candles', 'asset_metrics', 'open_interest', 'funding_rates', :returns: **tickers** -- List of available tickers. :rtype: list .. py:method:: check_fields(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str) -> cryptodatapy.extract.datarequest.DataRequest Checks fields for data availability. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :param data_type: 'funding_rates', 'trades', quotes'} Data type to retrieve. :type data_type: str, {'indexes', 'institutions', 'market_candles', 'asset_metrics', 'open_interest', :returns: **fields** -- List of avaialble fields. :rtype: list .. py:method:: check_params(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str) -> None Checks data request parameters. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :param data_type: 'trades', quotes'} Data type to retrieve. :type data_type: str, {'indexes', 'institutions', 'market_candles', 'asset_metrics', 'open_interest', 'funding_rates', .. py:method:: get_indexes(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get indexes data. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :returns: **df** -- DataFrame with DatetimeIndex (level 0), tickers (level 1) and index values (cols). :rtype: pd.DataFrame .. py:method:: get_ohlcv(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get OHLCV (candles) data. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :returns: **df** -- DataFrame with DatetimeIndex (level 0), ticker (level 1), and OHLCV values (cols). :rtype: pd.DataFrame - MultiIndex .. py:method:: get_onchain(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get on-chain data. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :returns: **df** -- DataFrame with DatetimeIndex (level 0), ticker (level 1), and on-chain values (cols). :rtype: pd.DataFrame - MultiIndex .. py:method:: get_open_interest(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get open interest data. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :returns: **df** -- DataFrame with DatetimeIndex (level 0), ticker (level 1), and open interest values (cols). :rtype: pd.DataFrame - MultiIndex .. py:method:: get_funding_rates(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get funding rates data. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :returns: **df** -- DataFrame with DatetimeIndex (level 0), ticker (level 1), and funding rates values (cols). :rtype: pd.DataFrame - MultiIndex .. py:method:: get_trades(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get trades (transactions) data. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :returns: **df** -- DataFrame with DatetimeIndex (level 0), ticker (level 1), and bid/ask price and size values (cols). :rtype: pd.DataFrame - MultiIndex .. py:method:: get_quotes(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get quotes (order book) data. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :returns: **df** -- DataFrame with DatetimeIndex (level 0), ticker (level 1), and bid/ask price and size values (cols). :rtype: pd.DataFrame - MultiIndex .. py:method:: get_data(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get market, on-chain and/or off-chain data. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :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. :rtype: pd.DataFrame - MultiIndex