cryptodatapy.extract.data_vendors.polygon_api

Attributes

data_cred

Classes

Polygon

Retrieves data from Tiingo API.

Module Contents

cryptodatapy.extract.data_vendors.polygon_api.data_cred
class cryptodatapy.extract.data_vendors.polygon_api.Polygon(categories: List[str] = ['crypto', 'fx', 'eqty', 'rates', 'bonds', 'cmdty', 'index'], 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', 'future', 'option'], fields: Dict[str, List[str]] = None, frequencies: List[str] = ['1s', '1min', '1h', 'd', 'w', 'm', 'q', 'y'], base_url: str = data_cred.tiingo_base_url, api_key: str = data_cred.polygon_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
client
get_exchanges_info()

Get exchanges info from Polygon API.

Returns:

DataFrame with exchanges info.

Return type:

pd.DataFrame

get_indexes_info()

Get indexes info from Polygon API.

Returns:

DataFrame with indexes info.

Return type:

pd.DataFrame

get_assets_info()

Get assets info from Polygon API.

Returns:

DataFrame with assets info.

Return type:

pd.DataFrame

get_markets_info()

Get markets info from Polygon API.

Returns:

DataFrame with markets info.

Return type:

pd.DataFrame

get_fields_info(data_type: str | None)

Get fields info from Polygon API.

Parameters:

data_type (str, optional) – Data type for which to get fields info. If None, returns all fields info.

Returns:

DataFrame with fields info.

Return type:

pd.DataFrame

get_rate_limit_info()

Get rate limit info from Polygon API.

Returns:

DataFrame with rate limit info.

Return type:

pd.DataFrame

req_data(ticker: str, multiplier: int, timespan: str, from_: str, to: str) List

Request data from Polygon API.

Parameters:
  • ticker (str) – Ticker symbol for the asset.

  • multiplier (int) – Multiplier for the aggregation.

  • timespan (str) – Timespan for the aggregation, e.g. ‘minute’, ‘hour’, ‘day’.

  • from (str) – Start date for the data request in ‘YYYY-MM-DD’ format.

  • to (str) – End date for the data request in ‘YYYY-MM-DD’ format.

Returns:

List

Return type:

List of aggregated data from Polygon API.

static wrangle_data_resp(data_req: cryptodatapy.extract.datarequest.DataRequest, data_resp: Dict[str, Any]) 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.

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, ticker) pandas.DataFrame

Submits data request and wrangles the data response into tidy data format.

Parameters:

data_req (DataRequest)

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

Returns:

df – Dataframe with DatetimeIndex (level 0), ticker (level 1) and values for fields (cols), in tidy data 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 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