Hi Dhan team,
Interesting behavior with BSE SENSEX options specifically:
## Test Results:
### Test 1: Today’s Expiry (2025-12-11) with Yesterday’s Date
Payload:
{
“securityId”: “1134184”, // SENSEX 79000 PE, Dec 11 expiry
“exchangeSegment”: “BSE_FNO”,
“instrument”: “OPTIDX”,
“interval”: “1”,
“fromDate”: “2025-12-10 09:15:00”,
“toDate”: “2025-12-10 15:30:00”
}
Result:
HTTP 200, but **0 bars returned**
### Test 2: Next Week (2025-12-18) with Yesterday’s Date
Payload:
{
“securityId”: “1137240”, // SENSEX 78300 PE, Dec 18 expiry
“exchangeSegment”: “BSE_FNO”,
“instrument”: “OPTIDX”,
“interval”: “1”,
“fromDate”: “2025-12-10 09:15:00”,
“toDate”: “2025-12-10 15:30:00”
}
Result:
HTTP 400 DH-905 “System is unable to fetch data”
### Test 3: Jan 2026 (2026-01-29) with Yesterday’s Date
Payload:
{
“securityId”: “1137139”, // SENSEX, Jan 29 expiry
“exchangeSegment”: “BSE_FNO”,
“instrument”: “OPTIDX”,
“interval”: “1”,
“fromDate”: “2025-12-10 09:15:00”,
“toDate”: “2025-12-10 15:30:00”
}
Result:
HTTP 400 DH-905
## Key Observations:
1. Today’s expiry accepts the request but returns empty dataset
2. Future expiries are completely rejected with DH-905
3. NSE options (NIFTY, BANKNIFTY, FINNIFTY) work perfectly with same logic
4. The contracts exist in the master instrument list (5,568 SENSEX OPTIDX found)
## Questions:
1. Why does today’s expiry return 200 but 0 bars instead of 400 error?
2. Is there a different API endpoint for BSE SENSEX options?
3. Should I stop querying SENSEX entirely or retry with different parameters?
Thank you!