client.bbo() when you need top-of-book quote data for spread tracking and quote monitoring. This method returns the best bid and best offer prices and quantities.
Method signature
Parameters
Return value
A single-pass iterator of quote dictionaries by default, flat PyArrow batches withoutput="batches", or a Pandas DataFrame with output="dataframe".
Example response
Fields
BBO records include:timestamp: quote time in UTC milliseconds; columnar output is timezone-aware UTCsource: source identifiermarket: normalized market IDsymbol: venue-native, human-friendly symbolbid_price: best bid pricebid_quantity: quantity available at best bidask_price: best offer priceask_quantity: quantity available at best offer
ask_price - bid_price.
Example
How it works
client.bbo() updates an ordered native book without materializing complete
books. Without an interval it emits after every valid two-sided book update.
Set changes_only=True to suppress deep-book and true no-op updates that leave
the best prices and quantities unchanged. With an interval it emits the last
qualifying quote from each non-empty UTC-aligned bucket. See
Snapshots for the data flow.
Related documentation
- L2 snapshots if you need full order book depth
- Depth metrics for derived liquidity metrics
- Events if you need BBO updates mixed with other event types
- Quickstart