cryptodatapy.extract.data_vendors.tiingo_api ============================================ .. py:module:: cryptodatapy.extract.data_vendors.tiingo_api Attributes ---------- .. autoapisummary:: cryptodatapy.extract.data_vendors.tiingo_api.data_cred Classes ------- .. autoapisummary:: cryptodatapy.extract.data_vendors.tiingo_api.Tiingo Module Contents --------------- .. py:data:: data_cred .. 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