cryptodatapy.extract.data_vendors

Submodules

Classes

CoinMetrics

Retrieves data from Coin Metrics Python client API v4.

CryptoCompare

Retrieves data from CryptoCompare API.

DataVendor

DataVendor is an abstract base class which provides a blueprint for properties and methods for the

Glassnode

Retrieves data from Glassnode API.

Tiingo

Retrieves data from Tiingo API.

Package Contents

class cryptodatapy.extract.data_vendors.CoinMetrics(categories: str | 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', 'perpetual_future', 'future', 'option'], fields: List[str] | None = None, frequencies: List[str] = ['tick', 'block', '1s', '1min', '5min', '10min', '15min', '30min', '1h', '2h', '4h', '8h', 'd', 'w', 'm', 'q'], base_url: str | None = data_cred.coinmetrics_base_url, api_endpoints: Dict[str, str] | None = None, api_key: str | None = data_cred.coinmetrics_api_key, max_obs_per_call: int | None = None, rate_limit: Any | None = None)

Bases: cryptodatapy.extract.data_vendors.datavendor.DataVendor

Retrieves data from Coin Metrics Python client API v4.

data_req = None
data_resp = None
data
req_meta(data_type: str) Dict[str, Any]

Request metadata.

Parameters:

data_type (str, {'catalog_exchanges', 'catalog_indexes', 'catalog_assets', 'catalog_institutions',) – ‘catalog_markets’, ‘catalog_metrics’ } Type of data to request metadata for.

Returns:

meta – Object with metadata.

Return type:

Any

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

Get exchanges info.

Parameters:

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

Returns:

exch – List or dataframe with info on supported exchanges.

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 a 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] | pandas.DataFrame

Get markets info.

Parameters:

as_list (bool, default False) – Returns markets info as dict with exchange-markets key-values pair.

Returns:

mkts – List or dataframe with info on available markets, by exchange.

Return type:

list or pd.DataFrame

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

Get on-chain fields info.

Parameters:

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

Returns:

onchain_fields – List or dataframe of on-chain info.

Return type:

list or pd.DataFrame

get_fields_info(data_type: str | None = None, as_list: bool = False) List[str] | pandas.DataFrame

Get fields info. Can be filtered by data type.

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

  • as_list (bool, default False) – Returns available fields as list.

Returns:

fields – List or dataframe with info on available fields.

Return type:

list or pd.DataFrame

get_onchain_tickers_list(data_req: cryptodatapy.extract.datarequest.DataRequest) List[str]

Get list of available assets for fields in data request.

Parameters:

data_req (DataRequest) – Data request object with ‘fields’ parameter.

Returns:

asset_list – List of available assets for selected fields.

Return type:

list

get_rate_limit_info() None

Get rate limit info.

get_metadata() None

Get CoinMetrics metadata.

req_data(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str, params: Dict[str, str | int]) pandas.DataFrame

Sends data request to Python client.

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

  • data_type (str, {'/timeseries/index-levels', '/timeseries/institution-metrics',) – ‘/timeseries/market-candles’, ‘/timeseries/asset-metrics’, ‘/timeseries/market-open-interest’, ‘/timeseries/market-funding-rates’, ‘/timeseries/market-trades’, ‘/timeseries/market-quotes’} Data type to retrieve.

  • params (dict) – Dictionary containing parameter values for get request.

Returns:

df – Dataframe with datetime, ticker/identifier, and field/col values.

Return type:

pd.DataFrame

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

Wrangle data response.

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

  • data_resp (pd.DataFrame) – Data response from API.

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.

Return type:

pd.DataFrame - MultiIndex

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.

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

  • data_type (str, {'get_index_levels', 'get_institution_metrics', 'get_market_candles', 'get_asset_metrics',) –

    ‘get_market_open_interest’, ‘get_market_funding_rates’, ‘get_market_trades’,

    ’get_market_quotes’}

    Data type to retrieve.

  • params (dict) – Dictionary containing parameter values for get request.

Returns:

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

Return type:

pd.DataFrame - MultiIndex

check_tickers(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str) cryptodatapy.extract.datarequest.DataRequest

Checks tickers for data availability.

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

  • data_type (str, {'indexes', 'institutions', market_candles', 'asset_metrics', 'open_interest', 'funding_rates',) – ‘trades’, quotes’} Data type to retrieve.

Returns:

tickers – List of available tickers.

Return type:

list

check_fields(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str) cryptodatapy.extract.datarequest.DataRequest

Checks fields for data availability.

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

  • data_type (str, {'indexes', 'institutions', 'market_candles', 'asset_metrics', 'open_interest',) – ‘funding_rates’, ‘trades’, quotes’} Data type to retrieve.

Returns:

fields – List of avaialble fields.

Return type:

list

check_params(data_req: cryptodatapy.extract.datarequest.DataRequest, data_type: str) None

Checks data request parameters.

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

  • data_type (str, {'indexes', 'institutions', 'market_candles', 'asset_metrics', 'open_interest', 'funding_rates',) – ‘trades’, quotes’} Data type to retrieve.

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

Get indexes data.

Parameters:

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

Returns:

df – DataFrame with DatetimeIndex (level 0), tickers (level 1) and index values (cols).

Return type:

pd.DataFrame

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

Get OHLCV (candles) 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).

Return type:

pd.DataFrame - MultiIndex

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

Get 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 on-chain values (cols).

Return type:

pd.DataFrame - MultiIndex

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

Get open interest data.

Parameters:

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

Returns:

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

Return type:

pd.DataFrame - MultiIndex

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

Get funding rates data.

Parameters:

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

Returns:

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

Return type:

pd.DataFrame - MultiIndex

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

Get trades (transactions) data.

Parameters:

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

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1), and bid/ask price and size values (cols).

Return type:

pd.DataFrame - MultiIndex

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

Get quotes (order book) data.

Parameters:

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

Returns:

df – DataFrame with DatetimeIndex (level 0), ticker (level 1), and bid/ask price and size values (cols).

Return type:

pd.DataFrame - MultiIndex

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

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

Return type:

pd.DataFrame - MultiIndex

class cryptodatapy.extract.data_vendors.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

class cryptodatapy.extract.data_vendors.DataVendor(categories, exchanges, assets, indexes, markets, market_types, fields, frequencies, base_url, api_endpoints, api_key, max_obs_per_call, rate_limit)

Bases: abc.ABC

DataVendor is an abstract base class which provides a blueprint for properties and methods for the data vendor subclass.

property categories

Returns a list of available categories for the data vendor.

property exchanges

Returns a list of available exchanges for the data vendor.

property assets

Returns a list of available assets for the data vendor.

property indexes

Returns a list of available indices for the data vendor.

property markets

Returns a list of available markets for the data vendor.

property market_types

Returns a list of available market types for the data vendor.

property fields

Returns a list of available fields for the data vendor.

property frequencies

Returns a list of available data frequencies for the data vendor.

property base_url

Returns the base url for the data vendor.

property api_endpoints

Returns api endpoints for the data vendor.

property api_key

Returns the api key for the data vendor.

property max_obs_per_call

Returns the maximum observations per API call for the data vendor.

property rate_limit

Returns the number of API calls made and remaining.

abstractmethod get_exchanges_info()

Gets info for available exchanges from the data vendor.

abstractmethod get_indexes_info()

Gets info for available indexes from the data vendor.

abstractmethod get_assets_info()

Gets info for available assets from the data vendor.

abstractmethod get_markets_info()

Gets info for available markets from the data vendor.

abstractmethod get_fields_info(data_type: str | None)

Gets info for available fields from the data vendor.

abstractmethod get_rate_limit_info()

Gets the number of API calls made and remaining.

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

Submits get data request to API.

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

Wrangles data response from data vendor API into tidy format.

class cryptodatapy.extract.data_vendors.Glassnode(categories=None, exchanges: list[str] | None = None, indexes: list[str] | None = None, assets: list[str] | None = None, markets: list[str] | None = None, market_types=None, fields: list[str] | None = None, frequencies=None, base_url: str = data_cred.glassnode_base_url, api_key: str = data_cred.glassnode_api_key, max_obs_per_call: int | None = None, rate_limit: Any | None = None)

Bases: cryptodatapy.extract.data_vendors.datavendor.DataVendor

Retrieves data from Glassnode API.

get_exchanges_info() None

Gets exchanges info.

get_indexes_info() None

Gets indexes info.

req_assets() Dict[str, Any]

Get request for assets info.

Returns:

dict – Data response with asset info in json format.

Return type:

dictionary

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() None

Get markets info.

req_fields() Dict[str, Any]

Get request for fields info.

Returns:

dict – Data response with fields info in json format.

Return type:

dictionary

get_fields_info(data_type: str | None = None, as_list: bool = False) list[str] | pandas.DataFrame

Get fields info.

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

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

Returns:

fields – List or dataframe with info on available fields.

Return type:

list or pd.DataFrame

get_rate_limit_info() None

Get rate limit info.

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

Submits data request to API.

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

  • ticker (str) – Requested ticker symbol.

  • field (str) – Requested field.

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], field: str) pandas.DataFrame

Wrangle data response into tidy data format.

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

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

  • field (str) – Requested field.

Returns:

df – Wrangled dataframe with DatetimeIndex and selected field values (cols), in tidy format.

Return type:

pd.DataFrame

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.

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

  • ticker (str) – Requested ticker symbol.

  • field (str) – Requested field.

Returns:

df – Dataframe with DatetimeIndex and field values (col) wrangled into tidy data format.

Return type:

pd.DataFrame

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.

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

  • ticker (str) – Requested ticker symbol.

Returns:

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

Return type:

pd.DataFrame

check_params(data_req: cryptodatapy.extract.datarequest.DataRequest) None

Check data request parameters before calling API to improve efficiency.

Parameters:

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

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

Get market, on-chain or off-chain data.

Parameters:

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

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.

Return type:

pd.DataFrame - MultiIndex

class cryptodatapy.extract.data_vendors.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