NSE cash L20/L200 stops during CAS (Closing Auction Session) while futures depth continues

NSE cash L20/L200 stops during CAS while futures depth continues

Hello DhanHQ team and DhanHQ API users,

I am looking for a protocol-level clarification regarding Full Market Depth during the new NSE Closing Auction Session.

On August 4, 2026, I captured DhanHQ market data continuously from 08:45 IST to 16:05 IST using:

  • One normal Full Market Feed WebSocket

  • Five L20 WebSockets

  • Five L200 WebSockets

  • 841 instruments on the normal Full feed

  • 212 instruments on L20

  • Five NSE cash instruments on L200

Capture health

The capture completed without an infrastructure or connectivity failure:

  • Expected sockets: 11

  • Maximum sockets connected: 11

  • Messages received: 21,919,801

  • Bytes received: 16,701,996,750

  • Rows written: 9,698,179

  • Reconnects: 0

  • Socket/parser errors: 0

  • Dropped rows: 0

  • Writer failures: 0

  • Host-suspend gaps: 0 seconds

Observed NSE cash-depth timeline

For 208 CAS-eligible NSE cash equities:

  • Cash L20 was active through the CAS reference period.

  • The final cash L20 activity occurred at approximately 15:15:15.659 IST.

  • The final L200 cash activity occurred at approximately 15:15:12.168 IST.

  • No NSE cash L20 events were received during the actual CAS auction period.

  • No NSE cash L200 events were received during the actual CAS auction period.

  • Cash L20 resumed at approximately 15:50:00.448 IST.

  • Cash L200 resumed at approximately 15:50:00.527 IST.

Why this does not appear to be a general WebSocket outage

Four NSE index futures were subscribed to L20 simultaneously.

During the same CAS auction period:

  • Index-future L20 continued updating normally.

  • It produced 26,024 bid-and-ask event rows.

  • All 11 WebSockets remained connected.

  • No reconnects or errors occurred.

  • The cash subscriptions resumed later without being recreated.

The observed sequence was therefore:

15:00:00–15:14:59  NSE cash L20/L200 active
15:15:00–15:15:15  Final short cash-depth burst
15:20:00–15:29:xx  CAS auction: no cash L20/L200 events
15:20:00–15:29:xx  NSE index-future L20 continued
15:50:00            NSE cash L20/L200 resumed

Normal Full-feed behavior

The normal Full feed continued to deliver a limited number of packets for all 208 NSE cash instruments during CAS.

Each instrument received approximately two to five Full packets during the auction phase. Many instruments ended with a decoded exchange last-trade time corresponding to approximately 15:28:21 IST.

This suggests that the normal Full feed may carry an indicative-price, aggregate-auction or final-match update even though L20/L200 does not expose the auction book.

Clarifications requested from DhanHQ

Could the DhanHQ market-data team please clarify:

  1. Is NSE cash auction depth intentionally excluded from L20 and L200 during CAS?

  2. Does NSE provide the CAS auction order book to Dhan through a separate exchange feed?

  3. During CAS, does the normal Full-feed LTP field represent the Indicative Equilibrium Price?

  4. What do these Full-feed fields represent during CAS?

    • Last traded price

    • Last trade time

    • Total buy quantity

    • Total sell quantity

    • Cumulative volume

    • Five-level depth

  5. Are these CAS fields available through any DhanHQ REST or WebSocket interface?

    • Indicative Equilibrium Price

    • Indicative Matched Quantity

    • Total auction buy quantity

    • Total auction sell quantity

    • Order imbalance quantity and side

  6. Is a CAS-specific packet type or response code planned?

  7. Should NSE cash L20/L200 silence between approximately 15:15 and 15:50 be treated as expected behavior rather than a feed outage?

Request to other API users

Has anyone else captured NSE cash L20 or L200 during CAS?

Useful comparison points would be:

  • final cash-depth timestamp before CAS;

  • whether derivatives depth continued;

  • whether cash depth resumed at 15:50;

  • whether Market Quote or another REST endpoint exposed CAS-specific fields;

  • whether the same behavior occurred on August 3, August 4 or later sessions.

I can provide the DhanHQ engineering team with:

  • session START and END manifests;

  • per-socket health records;

  • exact packet-boundary timestamps;

  • aggregate Full-feed results for all 208 instruments;

  • selected raw framed L200 packets;

  • packet-decoder definitions and evidence hashes.

No credentials, access tokens or private account information will be posted publicly.

This is not intended as a generic outage complaint. I am requesting a documented market-data contract so API users can determine whether reconstruction of the CAS auction book is possible through DhanHQ.

Clarification regarding the capture totals in my original post

The August 4 figures came from one trading date and one continuous WebSocket session, not from two independent trading sessions.

All 11 WebSockets remained connected from 08:45 to 16:05 IST. The message and byte counters therefore cover the complete 7-hour-20-minute connected period:

  • 21,919,801 WebSocket messages received

  • 16,701,996,750 network bytes received

To control storage, market-event persistence was enabled only during two configured observation windows:

  • 08:55–09:30 IST

  • 14:30–16:05 IST

These windows total 130 minutes. The reported 9,698,179 database rows are the persisted market and operational records from those configured windows, rather than a one-row-per-WebSocket-message count for the entire day.

The CAS finding itself is based on exact packet-boundary timestamps and a simultaneous control:

  • NSE cash L20/L200 stopped during CAS;

  • NSE index-future L20 continued through the same period;

  • all 11 sockets remained connected;

  • there were zero reconnects, parser errors, dropped rows, writer failures or host gaps;

  • cash depth resumed without resubscription at approximately 15:50 IST.

This is currently a single-day observation. I am continuing the same controlled capture on later sessions to test reproducibility.

Update after three controlled CAS capture sessions — August 4, 5 and 6

I repeated the same controlled capture across three trading dates.

Observed NSE cash L20 behavior during CAS

  • August 4: no cash L20 events during the auction interval.

  • August 5: 14 database rows from only two cash symbols. These represented repeated/static bid and ask books with message sequence zero, not a continuously evolving auction book.

  • August 6: 8 database rows from one cash symbol. These represented the same complete bid/ask book repeated four times over approximately 0.6 seconds, again with message sequence zero and no demonstrated book evolution.

In contrast, derivative depth continued normally during CAS. On August 6 alone, the same CAS interval contained:

  • 28,010 index-future L20 events

  • 174,772 stock-future L20 events

The August 6 session recorded six recovered reconnects, but all occurred before CAS. The last was at 14:53:42 IST, all 11 sockets were restored before 15:00 IST, and no further reconnect increment occurred during the CAS phases. Host gaps, dropped rows and writer failures remained zero.

The REST /v2/marketfeed/quote probe also completed 222 successful HTTP 200 snapshots. The responses contained standard quote and five-level-depth fields, but I did not find documented CAS-specific fields equivalent to indicative equilibrium price, matched quantity, imbalance or reference-limit price.

Current conclusion

Across three controlled sessions, Dhan’s NSE cash L20/L200 feed did not provide a continuously evolving CAS auction book. Isolated cash packets were static or duplicate refreshes, while futures depth continued normally.

Could Dhan please confirm:

  1. Is NSE cash CAS auction depth intentionally unavailable through L20/L200?

  2. Which Dhan API endpoint and fields provide the CAS reference-limit price, indicative equilibrium price, matched quantity and buy/sell imbalance?

  3. Are any CAS-specific Quote API fields planned or already available but undocumented?