cryptodatapy.extract.data_vendors.cryptocompare_api

Attributes

data_cred

Classes

CryptoCompare

Retrieves data from CryptoCompare API.

Module Contents

cryptodatapy.extract.data_vendors.cryptocompare_api.data_cred
class cryptodatapy.extract.data_vendors.cryptocompare_api.CryptoCompare(categories: 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'], fields: list[str] | None = 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: pandas.DataFrame | None = None)

Bases: cryptodatapy.extract.data_vendors.datavendor.DataVendor

Retrieves data from CryptoCompare API.

onchain_fields = None
social_fields = None
data_req = None
data_resp = None
data
req_meta(info_type: str) Dict[str, Any]

Request metadata.

Parameters:

info_type (str, {'exchanges_info', 'indexes_info', 'assets_info', 'markets_info',) –

‘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.

Returns:

meta – Metadata in JSON format.

Return type:

dictionary

get_exchanges_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_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 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] | dict[str]

Get markets info.

Parameters:

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

Returns:

mkts – Dictionary or list with info on available markets.

Return type:

dictionary or list

get_onchain_tickers_info(as_list: bool = False) list[str] | pandas.DataFrame

Get on-chain data info.

Parameters:

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

Returns:

tickers – list or dataframe with info on tickers with available on-chain data.

Return type:

list or pd.DataFrame

get_onchain_info() list[str]

Get on-chain fields info.

Returns:

onchain_fields – List of available on-chain fields.

Return type:

list

get_social_info() list[str]

Get social fields info.

Returns:

social_fields – List of available social fields.

Return type:

list

get_fields_info(data_type: str | None = None) list[str]

Get fields info.

Parameters:

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

Returns:

fields_list – List of available fields.

Return type:

list

req_rate_limit() Dict[str, Any]

Get request for rate limit info.

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).

Return type:

pd.DataFrame

get_news() pandas.DataFrame

Get news articles from various sources.

Returns:

news – News articles from various sources with title, source, body, …

Return type:

pd.DataFrame

get_news_sources() pandas.DataFrame

Get news sources.

Returns:

news_sources – News source info.

Return type:

pd.DataFrame

req_top_mkt_cap(n: int = 100) Dict[str, Any]

Get request for top mkt cap coins info.

get_top_mkt_cap_info(n: int = 100) list[str]

Get list of top assets by market cap.

Parameters:

n (int, default 100) – Number of assets to return sorted by market cap.

Returns:

tickers – List of tickers for top n coins ranked by market cap.

Return type:

list

set_urls_params(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, ticker: str) Dict[str, str | Any]

Sets url and params for get request.

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

  • data_type (str, {'indexes', 'ohlcv', 'on-chain', 'social'}) – Data type to retrieve.

  • ticker (str) – Ticker symbol.

Returns:

dict – Dictionary with url and params values for get request.

Return type:

dictionary

req_data(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, ticker: str) Dict[str, Any]

Submits get request to CryptoCompare API.

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

  • data_type (str, {'indexes', 'ohlcv', 'on-chain', 'social'}) – Data type to retrieve.

  • ticker (str) – Ticker symbol.|

Returns:

data_resp – Data response in JSON format.

Return type:

dict

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.

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

  • data_type (str, {'indexes', 'ohlcv', 'on-chain', 'social'}) – Data type to retrieve.

  • ticker (str) – Ticker symbol.

Returns:

df – Dataframe with entire data history retrieved.

Return type:

pd.DataFrame

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

Wrangle data response.

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

  • data_resp (pd.DataFrame) – Data response from GET request.

Returns:

df – Wrangled dataframe with DatetimeIndex and values in tidy format.

Return type:

pd.DataFrame

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.

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

  • data_type (str, {'indexes', 'ohlcv', 'on-chain', 'social'}) – Data type to retrieve.

  • ticker (str) – Ticker symbol.

Returns:

df – Dataframe with entire data history retrieved and wrangled into tidy data format.

Return type:

pd.DataFrame

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.

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

  • data_type (str, {'indexes', 'ohlcv', 'on-chain', 'social'}) – Data type to retrieve.

Returns:

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

Return type:

pd.DataFrame - MultiIndex

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

Gets indexes data.

Parameters:

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

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1), and index values (cols), in tidy format.

Return type:

pd.DataFrame - MultiIndex

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

Gets OHLCV 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), in tidy format.

Return type:

pd.DataFrame - MultiIndex

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

Gets 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 values for on-chain fields (cols), in tidy format.

Return type:

pd.DataFrame - MultiIndex

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

Gets social media 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 social media fields (cols), in tidy format.

Return type:

pd.DataFrame - MultiIndex

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.

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

Get either market, on-chain or social media 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 OHLCV, on-chain and/or social fields (cols), in tidy format.

Return type:

pd.DataFrame - MultiIndex