I am about to buy the Prime plan but need following questions answered.
I use the Fyers API v3 TBT socket (wss://rtsocket-api.fyers.in/versova, mode depth) through the official Python SDK, fyers-apiv3 3.2.0 (FyersTbtSocket), following your documentation. I subscribe on one channel and resume it with switchChannel. I have measured the stream for NSE:NIFTY26OCTFUT, NSE:BANKNIFTY26NOVFUT and NIFTY ATM options, and would be grateful for clarification on a few points.
What I observed (session of 23 Oct 2026, 09:15–15:30 IST)
- About 2 packets per second per symbol. NSE:NIFTY26OCTFUT gave 23,634 packets in the session (1.05/s on average). Of the seconds with data, 11,097 had exactly 2 packets, 2,344 had 1, and none had more than 4.
- Whole-second timestamps.
feed_timeandsend_timenever carry a sub-second part. - Each packet looks conflated. After applying the diffs, a median of 90–100 of the 100 price levels change between consecutive packets. That looks like all the changes over an interval in one packet, rather than one packet per order-book event.
- Many trades per packet. The same contract traded at least about 85,000 times in that session, by my estimate from the data socket’s volume and last-traded quantity. That is several trades per TBT packet, before counting order additions and cancellations.
- No packets are lost on my side.
sequence_nosteps by exactly 1 between consecutive packets. - Snapshot timestamps. The snapshot packets sent on subscribe carry a
feed_timeof 1–3 seconds since the Unix epoch, not the current time. - A fixed SDK bug that isn’t in the changelog. Up to version 3.1.18, the SDK placed diff levels by their position in the list instead of by
num(the bug reported on your community forum on 25 Sep 2026). After I upgraded to 3.1.19+, the misordered rows we had seen (19–82% of rows) fell to zero. I could not find this fix in the changelog.
My questions:
- Your TBT overview describes tick-by-tick data as “recording every trade and order book update in real-time”. Is the TBT 50-depth stream conflated? If so, at what interval, and is that interval the same on the Prime plan?
- Is a finer exchange timestamp (milliseconds or better) available for TBT packets or for the data socket?
MarketFeedinmsg.protoalso definesquote(ltp, ltt, ltq, vtt, vtt_diff, oi),ohlcvanddq. The documentation says these can be ignored, and the SDK reads onlydepth. Does the TBT server populate them? If it does, isvtt_diffthe volume traded since the previous packet?- Does Fyers offer, on any plan, add-on or through a partner, a true tick-by-tick feed? By that I mean every order add, modify and cancel and every trade print, with exchange timestamps. Is any historical depth or TBT data available?
- Is the regular data socket (SymbolUpdate, DepthUpdate) also conflated, and at what interval? I see about 1.4 and 1.0 updates per second for NIFTY futures. Does
litemodeaffect this? - Is a
feed_timeof 1–3 on subscribe snapshots expected? Should we usesend_timefor those packets? - Could you confirm that the
num-indexing fix is in 3.1.19 and later, and add it to the changelog?