cryptodatapy.extract.data_vendors.cryptocompare_api =================================================== .. py:module:: cryptodatapy.extract.data_vendors.cryptocompare_api Attributes ---------- .. autoapisummary:: cryptodatapy.extract.data_vendors.cryptocompare_api.data_cred Classes ------- .. autoapisummary:: cryptodatapy.extract.data_vendors.cryptocompare_api.CryptoCompare Module Contents --------------- .. py:data:: data_cred .. py:class:: CryptoCompare(categories: 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'], fields: Optional[list[str]] = None, frequencies: List[str] = ['1min', '1h', 'd'], base_url: str = data_cred.cryptocompare_base_url, api_endpoints: Dict[str, str] = data_cred.cryptomcompare_endpoints, api_key: str = data_cred.cryptocompare_api_key, max_obs_per_call: int = 2000, rate_limit: Optional[pandas.DataFrame] = None) Bases: :py:obj:`cryptodatapy.extract.data_vendors.datavendor.DataVendor` Retrieves data from CryptoCompare API. .. py:attribute:: onchain_fields :value: None .. py:attribute:: social_fields :value: None .. py:attribute:: data_req :value: None .. py:attribute:: data_resp :value: None .. py:attribute:: data .. py:method:: req_meta(info_type: str) -> Dict[str, Any] Request metadata. :param info_type: 'on-chain_tickers_info', 'on-chain_info', 'social_info', 'news', 'news_sources', 'rate_limit_info', 'top_mkt_cap_info', 'indexes'} Type of metadata to request. :type info_type: str, {'exchanges_info', 'indexes_info', 'assets_info', 'markets_info', :returns: **meta** -- Metadata in JSON format. :rtype: dictionary .. py:method:: get_exchanges_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_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 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], dict[str]] Get markets info. :param as_list: Returns markets info as list. :type as_list: bool, default False :returns: **mkts** -- Dictionary or list with info on available markets. :rtype: dictionary or list .. py:method:: get_onchain_tickers_info(as_list: bool = False) -> Union[list[str], pandas.DataFrame] Get on-chain data info. :param as_list: Returns available on-chain data as list. :type as_list: bool, default False :returns: **tickers** -- list or dataframe with info on tickers with available on-chain data. :rtype: list or pd.DataFrame .. py:method:: get_onchain_info() -> list[str] Get on-chain fields info. :returns: **onchain_fields** -- List of available on-chain fields. :rtype: list .. py:method:: get_social_info() -> list[str] Get social fields info. :returns: **social_fields** -- List of available social fields. :rtype: list .. py:method:: get_fields_info(data_type: Optional[str] = None) -> list[str] Get fields info. :param data_type: Type of data. :type data_type: str, {'market', 'on-chain', 'off-chain'}, default None :returns: **fields_list** -- List of available fields. :rtype: list .. py:method:: req_rate_limit() -> Dict[str, Any] Get request for rate limit info. .. py:method:: get_rate_limit_info() -> pandas.DataFrame Get rate limit info. :returns: **rate_limit** -- DataFrame with API calls left and made by period (hour, day, month). :rtype: pd.DataFrame .. py:method:: get_news() -> pandas.DataFrame Get news articles from various sources. :returns: **news** -- News articles from various sources with title, source, body, ... :rtype: pd.DataFrame .. py:method:: get_news_sources() -> pandas.DataFrame Get news sources. :returns: **news_sources** -- News source info. :rtype: pd.DataFrame .. py:method:: req_top_mkt_cap(n: int = 100) -> Dict[str, Any] Get request for top mkt cap coins info. .. py:method:: get_top_mkt_cap_info(n: int = 100) -> list[str] Get list of top assets by market cap. :param n: Number of assets to return sorted by market cap. :type n: int, default 100 :returns: **tickers** -- List of tickers for top n coins ranked by market cap. :rtype: list .. py:method:: set_urls_params(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, ticker: str) -> Dict[str, Union[str, Any]] Sets url and params for get request. :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, {'indexes', 'ohlcv', 'on-chain', 'social'} :param ticker: Ticker symbol. :type ticker: str :returns: **dict** -- Dictionary with url and params values for get request. :rtype: dictionary .. py:method:: req_data(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, ticker: str) -> Dict[str, Any] Submits get request to CryptoCompare API. :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, {'indexes', 'ohlcv', 'on-chain', 'social'} :param ticker: Ticker symbol.| :type ticker: str :returns: **data_resp** -- Data response in JSON format. :rtype: dict .. py:method:: get_all_data_hist(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, ticker: str) -> pandas.DataFrame Submits get requests to API until entire data history has been collected. Only necessary when number of observations is larger than the maximum number of observations per call. :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, {'indexes', 'ohlcv', 'on-chain', 'social'} :param ticker: Ticker symbol. :type ticker: str :returns: **df** -- Dataframe with entire data history retrieved. :rtype: pd.DataFrame .. py:method:: wrangle_data_resp(data_req: cryptodatapy.extract.datarequest.DataRequest, data_resp: pandas.DataFrame) -> pandas.DataFrame :staticmethod: Wrangle data response. :param data_req: Parameters of data request in CryptoDataPy format. :type data_req: DataRequest :param data_resp: Data response from GET request. :type data_resp: pd.DataFrame :returns: **df** -- Wrangled dataframe with DatetimeIndex and values in tidy format. :rtype: pd.DataFrame .. py:method:: get_tidy_data(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, ticker: str) -> pandas.DataFrame Gets entire data history and wrangles the data response into tidy data format. :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, {'indexes', 'ohlcv', 'on-chain', 'social'} :param ticker: Ticker symbol. :type ticker: str :returns: **df** -- Dataframe with entire data history retrieved and wrangled into tidy data format. :rtype: pd.DataFrame .. py:method:: get_all_tickers(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str) -> pandas.DataFrame Loops list of tickers, retrieves data in tidy format for each ticker and stores it in a multiindex dataframe. :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, {'indexes', 'ohlcv', 'on-chain', 'social'} :returns: **df** -- Dataframe with DatetimeIndex (level 0), ticker (level 1) and values for fields (cols), in tidy data format. :rtype: pd.DataFrame - MultiIndex .. py:method:: get_indexes(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Gets indexes 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 index values (cols), in tidy format. :rtype: pd.DataFrame - MultiIndex .. py:method:: get_ohlcv(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Gets OHLCV 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), in tidy format. :rtype: pd.DataFrame - MultiIndex .. py:method:: get_onchain(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Gets 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 values for on-chain fields (cols), in tidy format. :rtype: pd.DataFrame - MultiIndex .. py:method:: get_social(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Gets social media 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 social media fields (cols), in tidy format. :rtype: pd.DataFrame - MultiIndex .. py:method:: check_params(data_req: cryptodatapy.extract.datarequest.DataRequest) -> None Checks the parameters of the data request before requesting data to reduce API calls and improve efficiency. .. py:method:: get_data(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get either market, on-chain or social media 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 OHLCV, on-chain and/or social fields (cols), in tidy format. :rtype: pd.DataFrame - MultiIndex