Skip to main content

orderbook_delta

publicchannel: orderbook_deltawss://api.staging.sphx.io/v1/ws

Changed price levels for one instrument's book, applied client-side in event_seq order on top of an initial snapshot (the server sends a full-book bootstrap frame on subscribe, then changed levels only). Emitted only when a level actually moved — a quiet channel means a quiet book; gap detection is purely via event_seq (on a gap, re-snapshot via GET /v1/instruments/{id}/orderbook).

Subscribe params: instrument_id (required).

Subscribe

{ "op": "subscribe", "channel": "orderbook_delta", "params": { "instrument_id": 1000 }
ParamTypeRequiredNotes
instrument_idinteger · int64The instrument to stream

Events

book_changed

One frame per book mutation: only the levels that moved.

FieldTypeRequiredDescription
instrument_idinteger · int64
event_seqinteger · int64Cluster sequence number — monotonic; drives gap detection and REST/WS joins.
changes[]array of objectsOnly the levels that moved; new_count 0 removes the level.
changes[].sideyes_bid · no_bidYES-collapsed book sides (margined asks project as no_bid at MAX−p).
changes[].price_pipsinteger
changes[].new_countinteger
Example frame
{
"channel": "orderbook_delta",
"event": "book_changed",
"data": {
"instrument_id": 1000,
"event_seq": 1057,
"changes": [
{
"side": "yes_bid",
"price_pips": 3900,
"new_count": 120
},
{
"side": "no_bid",
"price_pips": 6100,
"new_count": 0
}
]
}
}