As exchanges' real-time feeds usually publish multiple order book level updates in a single message, you can recognize that by grouping rows by the local_timestamp field if needed.
Files may contain non-snapshot updates before the first snapshot — skip these rows until you encounter the first is_snapshot=true row. These are buffered updates received before the exchange sent the initial snapshot after a connection restart.
If you have any doubts about how to correctly reconstruct full order book state from the incremental_book_L2 CSV dataset, please see this answer or contact us.
In case you only need order book data for top 25 or top 5 levels, we do provide datasets with already reconstructed snapshots for every update for those. See book_snapshot_25 and book_snapshot_5.
instrument symbol as provided by exchange (always uppercase)
timestamp
timestamp provided by exchange in microseconds since epoch - if exchange does not provide one local_timestamp value is used as a fallback
local_timestamp
message arrival timestamp in microseconds since epoch
is_snapshot
possible values:true - if update was a part of initial order book snapshotfalse - if update was not a part of initial order book snapshotIf last update was not a snapshot and current one is, then existing order book state must be discarded (all existing levels removed)
side
determines to which side of the order book update belongs to:bid - bid side of the book, buy ordersask - ask side of the book, sell orders
price
price identifying book level being updated
amount
updated price level amount as provided by exchange, not a delta - an amount of 0 indicates that the price level can be removed
Deribit FUTURES instruments incremental order book L2 updates for 2020-09-01
• book_snapshot_25
Tick-level order book snapshots reconstructed from exchanges' real-time WebSocket order book L2 data feeds. Each row represents top 25 levels from each side of the limit order book and was recorded every time any of the tracked bids/asks top 25 levels changed.
Book snapshots are reconstructed with crossed levels removed — if a bid price >= ask price appears in exchange data, the overlapping level is discarded. See order book crossing FAQ for details.
Binance USDT Futures BTCUSDT top 25 levels order book snapshots for 2020-09-01
• book_snapshot_5
Tick-level order book snapshots reconstructed from exchanges' real-time WebSocket order book L2 data feeds. Each row represents top 5 levels from each side of the limit order book and was recorded every time any of the tracked bids/asks top 5 levels changed.
instrument symbol as provided by exchange (always uppercase)
timestamp
timestamp provided by exchange in microseconds since epoch - if exchange does not provide one local_timestamp value is used as a fallback
local_timestamp
message arrival timestamp in microseconds since epoch
id
trade id as provided by exchange, empty if exchange does not provide one - different exchanges provide id's as numeric values, GUID's or other strings, and some do not provide that information at all
side
liquidity taker side (aggressor), possible values:buy - liquidity taker was buyingsell - liquidity taker was sellingunknown - exchange did not provide that information
OKX Futures FUTURES instruments trades for 2020-03-01 dataset sample
• options_chain
Tick-level options summary info (strike prices, expiration dates, open interest, implied volatility, greeks etc.) for all active options instruments collected from exchanges' real-time WebSocket options tickers data feeds. Options chain data is available for Deribit (sourced from ticker channel) and OKX Options (sourced from option/summary and index/ticker channels).
For options_chain data type only 'OPTIONS' symbol is available (one file per day for all options instruments).
Top of the book (best bid/ask) data reconstructed from exchanges' real-time WebSocket order book L2 data feeds. - best bid/ask recorded every time top of the book has changed.
We on purpose choose this solution over native exchanges real-time quotes feeds as those vary a lot between exchanges, can be throttled, some are absent at all, often are delayed and published in batches in comparison to more granular L2 updates which are the basis for our quotes dataset.
Derivative instrument ticker info (open interest, funding, mark price, index price) collected from exchanges' real-time WebSocket instruments & tickers data feeds.
Anytime any of the tracked values has changed data was added to final dataset.
instrument symbol as provided by exchange (always uppercase)
timestamp
timestamp provided by exchange in microseconds since epoch - if exchange does not provide one local_timestamp value is used as a fallback
local_timestamp
message arrival timestamp in microseconds since epoch
funding_timestamp
timestamp of the next funding event in microseconds since epoch, empty if exchange does not provide one
funding_rate
funding rate for the next funding event — this value can fluctuate until the funding event occurs, the final value just before funding_timestamp is the one applied by the exchange. Empty if exchange does not provide one
predicted_funding_rate
estimated predicted funding rate for the next after closest funding event, empty if exchange does not provide one
open_interest
current open interest, empty if exchange does not provide one
last_price
last instrument price, empty if exchange does not provide one
index_price
index price of the instrument, empty if exchange does not provide one
mark_price
mark price of the instrument, empty if exchange does not provide one
instrument symbol as provided by exchange (always uppercase)
timestamp
timestamp provided by exchange in microseconds since epoch - if exchange does not provide one local_timestamp value is used as a fallback
local_timestamp
message arrival timestamp in microseconds since epoch
id
liquidation id as provided by exchange, empty if exchange does not provide one - different exchanges provide id's as numeric values, GUID's or other strings, and some do not provide that information at all
side
liquidation side:buy - short position was liquidatedsell - long position was liquidated