Limitations in Expired Options API — Unable to Backtest Realistic Options Strategies (Resolved)

I am trying to use the Expired Options Data API for options backtesting, and I’ve identified a structural limitation that makes realistic backtesting impossible.

Issue:
The API does not allow fetching OHLC data for a specific strike price. It only accepts "ATM", "ATM+1", "ATM-1", "OTM±X", etc.
Because ATM is dynamically recalculated for the entire date range, the strike mapped to "ATM" changes as the underlying price changes.

Example:

  • At 9:30, NIFTY = 25234 → ATM = 25250

  • I take a trade in 25250 CE

  • At 11:15, NIFTY = 25310 → new ATM = 25300

When I call the API for "ATM" over the 9:30–11:15 range, the API returns 25300 CE, not 25250 CE.
This makes it impossible to exit the same strike that I entered.

Impact:

  • Fixed-strike backtesting becomes impossible

  • Entry ATM ≠ exit ATM

  • Multi-leg strategies, hedging, directional trades, spreads, and realistic exit conditions all break

  • Only very basic ATM-only strategies work, and even those are unreliable because ATM is recalculated globally

@Tradehull_Imran any thoughts on this

Hey @Venkata_Krishnasai_A ,

We want to inform you that, as of now, the expired options API supports fetching data only using the ATM range.

You cannot query data for a specific strike directly.

Also, when you fetch data for a larger timeframe, it will display values based on the closing price. If you use a smaller timeframe, such as 1 minute, you will be able to see a detailed trail throughout the day.