Skip to main content

Derivatives UDP Periodic Snapshots

Per-instrument, snapshots are sent continuously on the dual A/B snapshot channels. The frequency of repeated snapshots is intentionally not specified, but the maximum delay between snapshots (for different instruments) is 5 seconds.

A single (instrument) snapshot consists of 2 or more messages, starting with instrument-type-specific start message, which includes the instrument definition, followed by an order snapshot message for each active order of the instrument, followed by an EndOfSnapshot message. The snapshot messages may be split across multiple packets if the full snapshot does not fit in a single packet. All packets of the snapshot share the same packet sequence number, which corresponds to the most recent incremental feed sequence number included in the snapshot.

All snapshot messages have SnapshotSeqNum as their first field. This sequence number always starts at 0 for the first message of a snapshot and does not wrap around. A single instrument does not have more than 65534 active orders.

The end of cycle message represents the end of a cycle where all active instruments in our system have sent their respective snapshots. The message has a count of the number of instruments sent since the previous cycle so that end users can verify they have all required snapshots and check against packet loss.

info

Snapshot messages include a message header, but not an instrument header.

Start of Outright Instrument Snapshot

Start Of Outright Instrument Snapshot (110)TypeLengthOffsetDescription
SnapshotSeqNumuint16210Sequence number of message within snapshot
LastInstrSeqNumuint32412Snapshot incorporates all incremental messages with instrSeqNum up and including this value
Symbolchar242416Instrument name or symbol
ProductCodechar8840Code of underlying product/asset. Example: TEC (Nano SuperTech Fut)
Descriptionchar323248Instrument name
PriceIncrementint64880Minimum constant tick for instrument, encoded with 9 decimal places
CfiCodechar8888ISO standard instrument categorization code
Currencychar8896Currency used for price
ProductIdint324104Product identifier
OldContractSizeint324108Contract size encoded with 0 decimal places (deprecated from version 1.5 of this UDP Market Data API specification document)
OrderCountint324112Number of orders in snapshot
FirstTradingSessionDateuint162116Days since Unix epoch
LastTradingSessionDateuint162118Days since Unix epoch
TradingSessionDateint162120Days since Unix epoch
ProductGroupuint811220 - Currency
1 - Equity
2 - Energy <br />3 - Metals
4 - Interest Rate <br />5 - Agriculture
`6 - Crypto
TradingStatusuint81123Trading session status
0 - Pre-open
1 - Open
2 - Halt
3 - Pause
4 - Close
5 - Pre-open (No Cancel)
6 - Expired
7 - Forbidden
ContractSizeint648124Contract size encoded with 8 decimal places (added in version 1.5 of this UDP Market Data API specification document)

Start of Spread Instrument Snapshot

Start Of Spread Instrument Snapshot (111)TypeLengthOffsetDescription
SnapshotSeqNumuint16210Sequence number of message within snapshot
LastInstrSeqNumuint32412Snapshot incorporates all incremental messages with instrSeqNum up and including this value
Symbolchar242416Instrument name or symbol
ProductCodechar8840Code of underlying product/asset. Example: TEC (Nano SuperTech Fut)
Descriptionchar323248Instrument name
PriceIncrementint64880Minimum constant tick for instrument, encoded with 9 decimal places
CfiCodechar8888ISO standard instrument categorization code
Currencychar8896Currency used for price
ProductIdint324104Product identifier
OldContractSizeint324108Contract size encoded with 0 decimal places (deprecated from version 1.5 of this UDP Market Data API specification document)
OrderCountint324112Number of orders in snapshot
FirstTradingSessionDateuint162116Days since Unix epoch
LastTradingSessionDateuint162118Days since Unix epoch
TradingSessionDateint162120Days since Unix epoch
ProductGroupuint811220 - Currency
1 - Equity
2 - Energy
3 - Metals
4 - Interest Rate
5 - Agriculture
6 - Crypto
TradingStatusuint81123Trading session status
0 - Pre-open
1 - Open
2 - Halt
3 - Pause
4 - Close
5 - Pre-open (No Cancel)
6 - Expired
7 - Forbidden
Leg1InstrumentIdint324124Instrument identifier for near leg
Leg2InstrumentIdint324128Instrument identifier for far leg
SpreadBuyConventionint81132
1 - Use far leg as bid
-1 - Use near leg as bid

Start of Option Instrument Snapshot

Start Of Option Instrument Snapshot (112)TypeLengthOffsetDescription
SnapshotSeqNumuint16210Sequence number of message within snapshot
LastInstrSeqNumuint32412Snapshot incorporates all incremental messages with instrSeqNum up and including this value
Symbolchar242416Instrument name or symbol
ProductCodechar8840Code of underlying product/asset. Example: TEC (Nano SuperTech Fut)
Descriptionchar323248Instrument name
SmallTickint64880Small tick size, encoded with 9 decimal places
CfiCodechar8888ISO standard instrument categorization code
LargeTickint64896Large tick size, encoded with 9 decimal places
LargeTickThresholdint648104Large tick size applies if price is >= this threshold price, encoded with 9 decimal places
StrikePriceint648112Strike price, encoded with 9 decimal places
ProductIdint324120Product identifier
UnderlyingInstrumentIdint324124Instrument id of the underlying outright contract
OrderCountint324128Number of orders in snapshot
FirstTradingSessionDateuint162132Days since Unix epoch
LastTradingSessionDateuint162134Days since Unix epoch
TradingSessionDateint162136Days since Unix epoch
ProductGroupuint811380 - Currency
1 - Equity
2 - Energy <br />3 - Metals
4 - Interest Rate <br />5 - Agriculture
`6 - Crypto
TradingStatusuint81139Trading session status
0 - Pre-open
1 - Open
2 - Halt
3 - Pause
4 - Close
5 - Pre-open (No Cancel)
6 - Expired
7 - Forbidden
InstrumentDefinitionFlagsuint162140Bitset:
0x01 - isPriorSettlementTheoretical
0x02 - isAnnounced
0x04 - isCall (applicable for options)
0x08 - isStrikeDelisted

Order Snapshot

Order Snapshot (120)TypeLengthOffsetDescription
SnapshotSeqNumuint16210Sequence number of message within snapshot
SignedQuantityint32412Signed quantity with 0 decimal places. Positive value = buy; negative value = sell
TransactTimeint64816Event timestamp - nanoseconds since Unix epoch
OrderIdint64824Unique identifier for order
Priceint64832Price encoded with 9 decimal places

End of Snapshot

End Of Snapshot (122)TypeLengthOffsetDescription
SnapshotSeqNumuint16210Sequence number of message within snapshot
TradeVolumeint32412Total day traded volume for instrument as of the last trade in message
IndicativeOpenPriceint64816Price encoded with 9 decimal places
DayOpenPriceint64824Price encoded with 9 decimal places
ClosePriceint64832Price encoded with 9 decimal places
LowPriceint64840Price encoded with 9 decimal places
HighPriceint64848Price encoded with 9 decimal places
VwapPriceint64856Volume weighted average price encoded with 9 decimal places. Null price encoded as 0x8000000000000000
SettlementPriceint64864Price encoded with 9 decimal places
LastTradePriceint64872Price encoded with 9 decimal places
LastTradeTimeint64880Nanoseconds since Unix epoch
BestBidImpliedPriceint64888First level implied price encoded with 9 decimal places. Null price encoded as 0x8000000000000000
BestAskImpliedPriceint64896First level implied price encoded with 9 decimal places. Null price encoded as 0x8000000000000000
NextBidImpliedPriceint648104Second level implied price encoded with 9 decimal places. Null price encoded as 0x8000000000000000
NextAskImpliedPriceint648112Second level implied price encoded with 9 decimal places. Null price encoded as 0x8000000000000000
LimitDownPriceint648120Minimum price that an instrument may currently trade at
LimitUpPriceint648128Maximum price that an instrument may currently trade at
LastTradeQtyint324136Quantity encoded with 0 decimal places
OpenInterestint324140The total open interest for the market at the close of the prior trading session
BestBidImpliedQtyint324144First level implied quantity encoded with 0 decimal places
BestAskImpliedQtyint324148First level implied quantity encoded with 0 decimal places
NextBidImpliedQtyint324152Second level implied quantity encoded with 0 decimal places
NextAskImpliedQtyint324156Second level implied quantity encoded with 0 decimal places
PriorSettlementPriceint648160Price encoded with 9 decimal places
InstrumentDefinitionFlagsuint162168"Bitset:
0x01- isPriorSettlementTheoretical
0x02 - isAnnounced
0x04 - isCall (applicable for options)
0x08 - isStrikeDelisted"

End of Cycle

End Of Cycle (124)TypeLengthOffsetDescription
ActiveInstrumentCountint32410Total number of instruments sent in snapshot cycle

Was this helpful?