client.events() when you want more than just trade executions. This method returns mixed event types in a single normalized stream, including trades, intents, option tickers, bars, datapoints, and order book events.
Method signature
Parameters
Return value
A single-pass iterator of mixed normalized event records, bounded exactpyarrow.RecordBatch objects, or an eager Pandas DataFrame. Use list(...)
only when you intentionally need an eager result.
Exact batches preserve source-file order. They expose nullable legacy
timestamp plus nullable v2 collector_timestamp, collector_sequence,
exchange_timestamp, and exchange_sequence columns. Timestamp columns use
timestamp[ms, tz=UTC].
replay_ordinal is the stable position in the decoded replay;
source_file_ordinal and source_row_ordinal identify its stored origin.
Typed columns include order_id, side, is_snapshot, trade, order-book, and
point fields. With materialize_orderbooks=False, event_json retains the
complete source event and every unknown payload; with materialization enabled,
it contains the resulting complete-book event. Metadata is omitted, but counts
as source row 0, so the first v2 event has source_row_ordinal == 1.
Neither collector nor exchange timestamps are used to reorder stored events.
Batch size never changes ordering or resets order-book state.
Event versions and time
Headerless snapshots use the legacy envelope withtimestamp; v2 snapshots use
collector_timestamp for SDK time and nullable exchange_timestamp for venue
provenance. Prefer collector_timestamp for range filters, replay, bucketing,
and derived calculations, and preserve the order returned by the SDK. See
Event envelope for the full field set and
version-matching examples.
Common event types
Theevents() method returns mixed event types:
trade: executed transactionsintent: RFQ, quote, executable-intent, or settlement observationoption_ticker: partial venue-published state for one exact option contract;marketidentifies the underlying andinstrumentidentifies the contractbar: OHLCV candlesdatapoint: market state updates such as funding rates or liquidationsorderbook: a legacy snapshot, or any v2 book event distinguished bydata.is_snapshotorderbook_delta: a legacy changed-level event; zero quantity removes a level
orderbook
events after a snapshot has initialized the book. Deltas at the beginning of a
range, after a coverage gap, or after a reconnect are suppressed until the next
snapshot. Disable materialize_orderbooks/materializeOrderbooks to receive the
stored update unchanged. Materialized v2 deltas retain data.is_snapshot: false.
Common datapoint labels
datapoint events carry a market state update under data with a label and value:
funding_rate: perpetual funding rateopen_interest: open contracts or positionsliquidation: liquidation eventindex_price: mark or index price update
Example response
data.
Example
How it works
client.events() uses snapshot-first replay: it queries /snapshots for
historical data, caches files locally, and derives the mixed event stream.
See Snapshots for the full flow.
Related documentation
- Trades if you only need executions
- Intents and RFQs if you need canonical RFQ, quote, and executable-intent observations
- Option tickers if you need option prices, implied volatility, open interest, or Greeks
- OHLCV if you only need candles
- Quickstart