API payload structure for BSE SENSEX options - Issue

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: :white_check_mark: 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: :cross_mark: 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: :cross_mark: 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!

Hey @deepaklost ,

As discussed over call , hope your query has been addressed , incase you need any further assistance you can mail us your query on apihelp@dhan.co .