Hello Team,
I am using the Fyers API v3 to fetch historical data. The monthly symbol “NSE:NIFTY26JAN25500CE” works fine, but the weekly symbol “NSE:NIFTY2611325500CE” returns error: “{‘code’: -300, ‘message’: ‘Invalid symbol provided’, ‘s’: ‘error’}”
Monthly Expiry Code:
data = {
#"symbol":"NSE:NIFTY26JAN25500CE",
"symbol":"NSE:NIFTY26JAN25500CE",
#"symbol":"NSE:NIFTY2611325500CE",
"resolution":"5",
"date_format":"1",
"range_from":"2026-01-09",
"range_to":"2026-01-09",
"cont_flag":"1",
}
Weekly Expiry Code
data = {
#"symbol":"NSE:NIFTY26JAN25500CE",
#"symbol":"NSE:NIFTY26JAN25500CE",
"symbol":"NSE:NIFTY2611325500CE",
"resolution":"5",
"date_format":"1",
"range_from":"2026-01-09",
"range_to":"2026-01-09",
"cont_flag":"1",
}
Please advise on the correct format for weekly Nifty options or resolve the issue.
Best regards,
Darshan
Hi Darshan! As per the update from our team, your query regarding API V3 has been addressed. Please check and let us know if you need any further assistance.
Following up on this thread — hit the exact same -300 error and dug into it further, sharing in case it saves someone else the time.
Symbol format isn’t the issue. Weekly: NIFTY{YY}{M}{DD}{STRIKE}{CE/PE}
(e.g. NIFTY2681824200CE = 18-Aug-2026 expiry, 24200 strike). That
format is correct — it just only works while the contract is still live.
What I found:
-
A CURRENTLY-LIVE contract’s /data/history returns full real OHLCV
back to when that specific contract started trading:
- NSE:NIFTY2681824200CE (1 day before its own expiry), resolution=D,
30-day range → 20 real daily candles back to 2026-07-20
- Same symbol, resolution=5 → 231 real 5-min candles for its final
trading week
-
The moment that same contract EXPIRES, the symbol stops resolving
entirely — not just on /data/history, on /quotes too:
GET /data/history?symbol=NSE:NIFTY2681124100CE&resolution=D…
→ {“code”:-300,“message”:“Invalid symbol provided”,“s”:“error”}
GET /data/quotes?symbols=NSE:NIFTY2681124100CE
→ {“code”:-300,“errmsg”:“Please provide a valid symbol”,“s”:“error”}
-
Tested across contracts expired ~1 week ago and ~1 year ago, BOTH
weekly and monthly format (NIFTY26JAN25500CE-style), 4+ realistic
strikes each time (checked real spot for that week first, so it’s
not a bad-strike guess) — same -300 every time. So it’s not
weekly-specific, contrary to what it might look like from one
example.
Conclusion: /data/history and /quotes both appear to resolve option
symbols against the CURRENT instrument master only. Once a contract
expires, it’s delisted from that master and the symbol becomes
permanently unresolvable for historical data via the REST API — even
just days after expiry, regardless of how the symbol is constructed.
Hi Yash,
Thanks for the details. As you noted, History API currently works only with active contracts., Expired contract data isn’t available right now. We’re working on adding expired‑contract data, soon it will be available. Stay tuned.