cryptodatapy.extract.data_vendors ================================= .. py:module:: cryptodatapy.extract.data_vendors Submodules ---------- .. toctree:: :maxdepth: 1 /autoapi/cryptodatapy/extract/data_vendors/coinmetrics_api/index /autoapi/cryptodatapy/extract/data_vendors/cryptocompare_api/index /autoapi/cryptodatapy/extract/data_vendors/datavendor/index /autoapi/cryptodatapy/extract/data_vendors/glassnode_api/index /autoapi/cryptodatapy/extract/data_vendors/tiingo_api/index Classes ------- .. autoapisummary:: cryptodatapy.extract.data_vendors.CoinMetrics cryptodatapy.extract.data_vendors.CryptoCompare cryptodatapy.extract.data_vendors.DataVendor cryptodatapy.extract.data_vendors.Glassnode cryptodatapy.extract.data_vendors.Tiingo Package Contents ---------------- .. 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 .. 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 .. py:class:: DataVendor(categories, exchanges, assets, indexes, markets, market_types, fields, frequencies, base_url, api_endpoints, api_key, max_obs_per_call, rate_limit) Bases: :py:obj:`abc.ABC` DataVendor is an abstract base class which provides a blueprint for properties and methods for the data vendor subclass. .. py:property:: categories Returns a list of available categories for the data vendor. .. py:property:: exchanges Returns a list of available exchanges for the data vendor. .. py:property:: assets Returns a list of available assets for the data vendor. .. py:property:: indexes Returns a list of available indices for the data vendor. .. py:property:: markets Returns a list of available markets for the data vendor. .. py:property:: market_types Returns a list of available market types for the data vendor. .. py:property:: fields Returns a list of available fields for the data vendor. .. py:property:: frequencies Returns a list of available data frequencies for the data vendor. .. py:property:: base_url Returns the base url for the data vendor. .. py:property:: api_endpoints Returns api endpoints for the data vendor. .. py:property:: api_key Returns the api key for the data vendor. .. py:property:: max_obs_per_call Returns the maximum observations per API call for the data vendor. .. py:property:: rate_limit Returns the number of API calls made and remaining. .. py:method:: get_exchanges_info() :abstractmethod: Gets info for available exchanges from the data vendor. .. py:method:: get_indexes_info() :abstractmethod: Gets info for available indexes from the data vendor. .. py:method:: get_assets_info() :abstractmethod: Gets info for available assets from the data vendor. .. py:method:: get_markets_info() :abstractmethod: Gets info for available markets from the data vendor. .. py:method:: get_fields_info(data_type: Optional[str]) :abstractmethod: Gets info for available fields from the data vendor. .. py:method:: get_rate_limit_info() :abstractmethod: Gets the number of API calls made and remaining. .. py:method:: get_data(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame :abstractmethod: Submits get data request to API. .. py:method:: wrangle_data_resp(data_req: cryptodatapy.extract.datarequest.DataRequest, data_resp: Union[Dict[str, Any], pandas.DataFrame], **kwargs) -> pandas.DataFrame :staticmethod: :abstractmethod: Wrangles data response from data vendor API into tidy format. .. py:class:: Glassnode(categories=None, exchanges: Optional[list[str]] = None, indexes: Optional[list[str]] = None, assets: Optional[list[str]] = None, markets: Optional[list[str]] = None, market_types=None, fields: Optional[list[str]] = None, frequencies=None, base_url: str = data_cred.glassnode_base_url, api_key: str = data_cred.glassnode_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 Glassnode API. .. py:method:: get_exchanges_info() -> None Gets exchanges info. .. py:method:: get_indexes_info() -> None Gets indexes info. .. py:method:: req_assets() -> Dict[str, Any] Get request for assets info. :returns: **dict** -- Data response with asset info in json format. :rtype: dictionary .. 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() -> None Get markets info. .. py:method:: req_fields() -> Dict[str, Any] Get request for fields info. :returns: **dict** -- Data response with fields info in json format. :rtype: dictionary .. py:method:: get_fields_info(data_type: Optional[str] = None, as_list: bool = False) -> Union[list[str], pandas.DataFrame] Get fields info. :param data_type: Type of data. :type data_type: str, {'market', 'on-chain', 'off-chain'}, default None :param as_list: Returns available fields info 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_rate_limit_info() -> None Get rate limit info. .. py:method:: req_data(data_req: cryptodatapy.extract.datarequest.DataRequest, ticker: str, field: str) -> Dict[str, Any] Submits data request to API. :param data_req: Data request parameters in CryptoDataPy format. :type data_req: DataRequest :param ticker: Requested ticker symbol. :type ticker: str :param field: Requested field. :type field: str :returns: **data_resp** -- Data response in json format. :rtype: dict .. py:method:: wrangle_data_resp(data_req: cryptodatapy.extract.datarequest.DataRequest, data_resp: Dict[str, Any], field: str) -> pandas.DataFrame :staticmethod: Wrangle data response into tidy data format. :param data_req: Data request parameters in CryptoDataPy format. :type data_req: DataRequest :param data_resp: Data response in JSON format. :type data_resp: dictionary :param field: Requested field. :type field: str :returns: **df** -- Wrangled dataframe with DatetimeIndex and selected field values (cols), in tidy format. :rtype: pd.DataFrame .. py:method:: get_tidy_data(data_req: cryptodatapy.extract.datarequest.DataRequest, ticker: str, field: str) -> pandas.DataFrame Submits data request and wrangles the data response into tidy data format. :param data_req: Data request parameters in CryptoDataPy format. :type data_req: DataRequest :param ticker: Requested ticker symbol. :type ticker: str :param field: Requested field. :type field: str :returns: **df** -- Dataframe with DatetimeIndex and field values (col) wrangled into tidy data format. :rtype: pd.DataFrame .. py:method:: get_all_fields(data_req: cryptodatapy.extract.datarequest.DataRequest, ticker: str) -> pandas.DataFrame Loops list of tickers, retrieves data in tidy format for each ticker and stores it in a dataframe. :param data_req: Data request parameters in CryptoDataPy format. :type data_req: DataRequest :param ticker: Requested ticker symbol. :type ticker: str :returns: **df** -- Dataframe with DatetimeIndex and values for fields (cols), in tidy data format. :rtype: pd.DataFrame .. py:method:: check_params(data_req: cryptodatapy.extract.datarequest.DataRequest) -> None Check data request parameters before calling API to improve efficiency. :param data_req: Data request parameters in CryptoDataPy format. :type data_req: DataRequest .. py:method:: get_data(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get market, on-chain or off-chain data. :param data_req: Data request parameters 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 data format. :rtype: pd.DataFrame - MultiIndex .. py:class:: Tiingo(categories: List[str] = ['crypto', 'fx', 'eqty'], exchanges: Optional[Dict[str, List[str]]] = None, indexes: Optional[Dict[str, List[str]]] = None, assets: Optional[Dict[str, List[str]]] = None, markets: Optional[Dict[str, List[str]]] = None, market_types: List[str] = ['spot'], fields: Dict[str, List[str]] = None, frequencies: List[str] = ['1min', '5min', '10min', '15min', '30min', '1h', '2h', '4h', '8h', 'd', 'w', 'm', 'q', 'y'], base_url: str = data_cred.tiingo_base_url, api_key: str = data_cred.tiingo_api_key, api_endpoints: Optional[Dict[str, str]] = None, max_obs_per_call: Optional[int] = None, rate_limit: Optional[Any] = None) Bases: :py:obj:`cryptodatapy.extract.data_vendors.datavendor.DataVendor` Retrieves data from Tiingo API. .. py:attribute:: data_req :value: None .. py:attribute:: data .. py:method:: get_exchanges_info(cat: Optional[str] = None) -> Union[Dict[str, List[str]], pandas.DataFrame] Get exchanges info. :param cat: Category (asset or time series) to filter on. :type cat: str, optional, default None :returns: **exch** -- Dictionary or dataframe with info for supported exchanges. :rtype: dictionary or pd.DataFrame .. py:method:: get_indexes_info() -> None Get indexes info. .. py:method:: get_eqty_info(as_list: bool = False) -> Union[List[str], pandas.DataFrame] :staticmethod: Get equity markets info. :param as_list: Returns eqty info as list. :type as_list: bool, default False :returns: **eqty** -- List or dataframe with info on available equities. :rtype: list or pd.DataFrame .. py:method:: req_crypto() -> Dict[str, Any] Submit get request for crypto metadata. .. py:method:: get_crypto_info(as_list: bool = False) -> Union[List[str], pandas.DataFrame] Get cryptoassets info. :param as_list: Returns cryptoasset info as list. :type as_list: bool, default False :returns: **crypto** -- List or dataframe with info on available cryptoassets. :rtype: list or pd.DataFrame .. py:method:: get_assets_info(cat: Optional[str] = None, as_list: bool = False) -> Union[Dict[str, List[str]], pandas.DataFrame] Get assets info. :param cat: Asset class or time series category, e.g. 'crypto', 'fx', etc. :type cat: str, {'crypto', 'eqty', 'fx'}, optional, default None :param as_list: Returns asset info as list. :type as_list: bool, default False :returns: **assets_info** -- Dictionary of dataframes or lists with info on available assets, by category. :rtype: dictionary .. py:method:: get_markets_info() -> None Get markets info. .. py:method:: get_fields_info(cat: Optional[str] = None) -> Dict[str, List[str]] Get fields info. :param cat: Asset class or time series category, e.g. 'crypto', 'fx', 'macro', 'alt', etc. :type cat: str, {'crypto', 'eqty', 'fx'}, optional, default None :returns: **fields** -- Dictionary with info on available fields, by category. :rtype: dictionary .. py:method:: get_rate_limit_info() -> None Get rate limit info. .. py:method:: set_urls_params(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, ticker: str) -> Dict[str, Union[str, int]] 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, {'eqty', 'iex', 'crypto', 'fx'} :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 Tiingo 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, {'eqty', 'iex', 'crypto', 'fx'} :param ticker: Ticker symbol. :type ticker: str :returns: **data_resp** -- Data response in JSON format. :rtype: dict .. py:method:: wrangle_data_resp(data_req: cryptodatapy.extract.datarequest.DataRequest, data_resp: Dict[str, Any], data_type: str) -> 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 data request in JSON format. :type data_resp: dictionary :param data_type: Data type retrieved. :type data_type: str, {'eqty', 'iex', 'crypto', 'fx'} :returns: **df** -- Wrangled dataframe with DatetimeIndex and market data for selected fields (cols), in tidy format. :rtype: pd.DataFrame .. py:method:: get_tidy_data(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, ticker: str) -> pandas.DataFrame Submits data request and wrangles the data response into tidy data format. :param data_req: Data request parameters in CryptoDataPy format. :type data_req: DataRequest :param data_type: Data type to retrieve. :type data_type: str, {'eqty', 'iex', 'crypto', 'fx'} :param ticker: Requested ticker symbol. :type ticker: str :returns: **df** -- Dataframe with DatetimeIndex and field values (col) 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, {'eqty', 'iex', 'crypto', 'fx'} :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_eqty(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get daily eqty 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 equities OHLCV values (cols). :rtype: pd.DataFrame - MultiIndex .. py:method:: get_eqty_iex(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get daily eqty 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 equities OHLCV values (cols). :rtype: pd.DataFrame - MultiIndex .. py:method:: get_crypto(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get crypto 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 crypto OHLCV values (cols). :rtype: pd.DataFrame - MultiIndex .. py:method:: get_fx(data_req: cryptodatapy.extract.datarequest.DataRequest) -> pandas.DataFrame Get FX 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 FX OHLC values (cols). :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 market data (eqty, fx, crypto). 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 or series data for selected fields (cols), in tidy format. :rtype: pd.DataFrame - MultiIndex