How to Retrieve Complete Historical Option Data via LSEG API?

konradf97
konradf97 Newcomer
edited March 5 in Refinitiv Data Platform

Hi everyone,

I’m working on a research project involving and I need to extract historical option market data to train and validate my models. I’m using the LSEG Data API, and I’d appreciate guidance on the best way to retrieve the following data efficiently.

Required Data:

  1. Historical Option Prices
    • Closing price (CF_CLOSE)
    • Bid-Ask Prices (to compute the mid-price and spread)
    • Transaction price (if available)
    • Expiration date (EXPIR_DATE)
    • Option type (PUTCALLIND) (Call/Put)
    • Strike price (STRIKE_PRC)
  2. Underlying Asset Prices
    • Historical spot prices of the underlying asset
    • Adjusted prices (if available, to account for corporate actions)
    • Underlying asset identifier (UNDERLYING)
  3. Volatility Surface
    • Historical implied volatility (IMP_VOLT) at different strikes & expirations
    • Volatility skew and smile (to model moneyness effects)
    • Term structure of volatility (volatility data across multiple expiries)
  4. Risk-Free Rate & Discounting
    • Historical yield curve data
    • Risk-free rate for discounting (r_{t_0})
  5. Time-to-Maturity Calculation
    • Derived from EXPIR_DATE and historical reference dates
  6. (Optional) Market Liquidity Indicators
    • Trading volume (to analyze liquidity effects)
    • Open interest (if available, to measure market activity)
  • I have used ld.get_data() to retrieve option chains, but I haven’t found how to access historical bid-ask spreads.
  • What is the best way to query historical volatility surfaces and ensure the data matches my option chain retrieval?
  • Can I fetch the historical risk-free rate & yield curve directly from the API?
  • Is there a more efficient way to retrieve and structure all this data for multiple assets at once?
  • Would trading volume and open interest be available historically for deeper liquidity analysis?

Any insights, example queries, or documentation links would be greatly appreciated! Thanks in advance.

Best,
Konrad

Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    @konradf97

    Thank you for reaching out to us.

    Another method to receive historical data is the get_history method. If you don't specify the fields parameter when calling the get_history method, the method will return all available historical fields of items.

    You can check the examples on GitHub. You can also check other examples on GitHub.

    You can also use the Data Item Browser tool to search for fields and parameters which can be used in the get_data method.

    This forum is dedicated to software developers using LSEG APIs. The moderators on this forum do not have deep expertise in every bit of content available through LSEG products, which is required to answer content questions such as this one.

    The best resource for content questions is the Helpdesk support team, which can be reached by submitting queries through MyAccount. The support team will either have the required content expertise ready available or can reach out to relevant content experts to get the answer for you. You can ask the helpdesk team about how to retrieve the required data in the Eikon or Workspace Excel. If the data is available in the Eikon or Workspace Excel, it can also be retreived via the API.