cryptodatapy.extract.data_vendors.tiingo_api

Attributes

data_cred

Classes

Tiingo

Retrieves data from Tiingo API.

Module Contents

cryptodatapy.extract.data_vendors.tiingo_api.data_cred
class cryptodatapy.extract.data_vendors.tiingo_api.Tiingo(categories: List[str] = ['crypto', 'fx', 'eqty'], exchanges: Dict[str, List[str]] | None = None, indexes: Dict[str, List[str]] | None = None, assets: Dict[str, List[str]] | None = None, markets: Dict[str, List[str]] | None = 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: Dict[str, str] | None = None, max_obs_per_call: int | None = None, rate_limit: Any | None = None)

Bases: cryptodatapy.extract.data_vendors.datavendor.DataVendor

Retrieves data from Tiingo API.

data_req = None
data
get_exchanges_info(cat: str | None = None) Dict[str, List[str]] | pandas.DataFrame

Get exchanges info.

Parameters:

cat (str, optional, default None) – Category (asset or time series) to filter on.

Returns:

exch – Dictionary or dataframe with info for supported exchanges.

Return type:

dictionary or pd.DataFrame

get_indexes_info() None

Get indexes info.

static get_eqty_info(as_list: bool = False) List[str] | pandas.DataFrame

Get equity markets info.

Parameters:

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

Returns:

eqty – List or dataframe with info on available equities.

Return type:

list or pd.DataFrame

req_crypto() Dict[str, Any]

Submit get request for crypto metadata.

get_crypto_info(as_list: bool = False) List[str] | pandas.DataFrame

Get cryptoassets info.

Parameters:

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

Returns:

crypto – List or dataframe with info on available cryptoassets.

Return type:

list or pd.DataFrame

get_assets_info(cat: str | None = None, as_list: bool = False) Dict[str, List[str]] | pandas.DataFrame

Get assets info.

Parameters:
  • cat (str, {'crypto', 'eqty', 'fx'}, optional, default None) – Asset class or time series category, e.g. ‘crypto’, ‘fx’, etc.

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

Returns:

assets_info – Dictionary of dataframes or lists with info on available assets, by category.

Return type:

dictionary

get_markets_info() None

Get markets info.

get_fields_info(cat: str | None = None) Dict[str, List[str]]

Get fields info.

Parameters:

cat (str, {'crypto', 'eqty', 'fx'}, optional, default None) – Asset class or time series category, e.g. ‘crypto’, ‘fx’, ‘macro’, ‘alt’, etc.

Returns:

fields – Dictionary with info on available fields, by category.

Return type:

dictionary

get_rate_limit_info() None

Get rate limit info.

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

Sets url and params for get request.

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

  • data_type (str, {'eqty', 'iex', 'crypto', 'fx'}) – 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 Tiingo API.

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

  • data_type (str, {'eqty', 'iex', 'crypto', 'fx'}) – Data type to retrieve.

  • ticker (str) – Ticker symbol.

Returns:

data_resp – Data response in JSON format.

Return type:

dict

static wrangle_data_resp(data_req: cryptodatapy.extract.datarequest.DataRequest, data_resp: Dict[str, Any], data_type: str) pandas.DataFrame

Wrangle data response.

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

  • data_resp (dictionary) – Data response from data request in JSON format.

  • data_type (str, {'eqty', 'iex', 'crypto', 'fx'}) – Data type retrieved.

Returns:

df – Wrangled dataframe with DatetimeIndex and market data for selected fields (cols), in tidy format.

Return type:

pd.DataFrame

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.

Parameters:
  • data_req (DataRequest) – Data request parameters in CryptoDataPy format.

  • data_type (str, {'eqty', 'iex', 'crypto', 'fx'}) – Data type to retrieve.

  • ticker (str) – Requested ticker symbol.

Returns:

df – Dataframe with DatetimeIndex and field values (col) 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, {'eqty', 'iex', 'crypto', 'fx'}) – 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_eqty(data_req: cryptodatapy.extract.datarequest.DataRequest) pandas.DataFrame

Get daily eqty data.

Parameters:

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

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1) and equities OHLCV values (cols).

Return type:

pd.DataFrame - MultiIndex

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

Get daily eqty data.

Parameters:

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

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1) and equities OHLCV values (cols).

Return type:

pd.DataFrame - MultiIndex

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

Get crypto data.

Parameters:

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

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1) and crypto OHLCV values (cols).

Return type:

pd.DataFrame - MultiIndex

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

Get FX data.

Parameters:

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

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1) and FX OHLC values (cols).

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

Return type:

pd.DataFrame - MultiIndex