cryptodatapy.extract.data_vendors.polygon_api ============================================= .. py:module:: cryptodatapy.extract.data_vendors.polygon_api Attributes ---------- .. autoapisummary:: cryptodatapy.extract.data_vendors.polygon_api.data_cred Classes ------- .. autoapisummary:: cryptodatapy.extract.data_vendors.polygon_api.Polygon Module Contents --------------- .. py:data:: data_cred .. py:class:: Polygon(categories: List[str] = ['crypto', 'fx', 'eqty', 'rates', 'bonds', 'cmdty', 'index'], 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', '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: 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:attribute:: client .. py:method:: get_exchanges_info() Get exchanges info from Polygon API. :returns: DataFrame with exchanges info. :rtype: pd.DataFrame .. py:method:: get_indexes_info() Get indexes info from Polygon API. :returns: DataFrame with indexes info. :rtype: pd.DataFrame .. py:method:: get_assets_info() Get assets info from Polygon API. :returns: DataFrame with assets info. :rtype: pd.DataFrame .. py:method:: get_markets_info() Get markets info from Polygon API. :returns: DataFrame with markets info. :rtype: pd.DataFrame .. py:method:: get_fields_info(data_type: Optional[str]) Get fields info from Polygon API. :param data_type: Data type for which to get fields info. If None, returns all fields info. :type data_type: str, optional :returns: DataFrame with fields info. :rtype: pd.DataFrame .. py:method:: get_rate_limit_info() Get rate limit info from Polygon API. :returns: DataFrame with rate limit info. :rtype: pd.DataFrame .. py:method:: req_data(ticker: str, multiplier: int, timespan: str, from_: str, to: str) -> List Request data from Polygon API. :param ticker: Ticker symbol for the asset. :type ticker: str :param multiplier: Multiplier for the aggregation. :type multiplier: int :param timespan: Timespan for the aggregation, e.g. 'minute', 'hour', 'day'. :type timespan: str :param from_: Start date for the data request in 'YYYY-MM-DD' format. :type from_: str :param to: End date for the data request in 'YYYY-MM-DD' format. :type to: str :returns: **List** :rtype: List of aggregated data from Polygon API. .. py:method:: wrangle_data_resp(data_req: cryptodatapy.extract.datarequest.DataRequest, data_resp: Dict[str, Any]) -> 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 :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, ticker) -> pandas.DataFrame Submits data request and wrangles the data response into tidy data format. :param data_req: :type data_req: DataRequest :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) -> 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 :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:: 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