Reading prices: ask, bid & NBBO
How to interpret the price fields the API returns.
Ask vs bid
ask is the lowest current sell offer (what you'd pay to buy now); bid is the highest standing buy order (what you'd receive selling now). The spread is ask − bid.
NBBO
National Best Bid & Offer is the best ask and best bid taken across every indexed marketplace at once, not within a single market. bestAsk and bestBid each name their source market. spreadBps expresses the spread in basis points (100 bps = 1%).
In the default (all-markets) view, the NBBO bestBid is restricted to cash-executable venues (markets that actually pay out in cash). Steam wallet credit and trade-credit venues are excluded by default, since their bids are denominated in non-cash balances and would otherwise produce economically-false crossed books. Pass an explicit markets CSV to override this and consider every requested venue's bid verbatim. Because of this filter, the /v1/pricing bestBid (which considers all venues) can differ from the /v1/nbbo bestBid.
spreadBps and its null-clamp
spreadBps on /v1/nbbo and /v1/pricing is null when a side is missing, and also clamped to null when it would exceed 10000 bps (±100%), which almost always means a stale or garbage bid. Negative (crossed) spreads are preserved, not clamped. Note the /v1/nbbo/depth spreadBps is NOT clamped and can be large or negative.
Execution-adjusted NBBO
Raw bestAsk / bestBid are sticker prices. The nullable executionAdjusted block on /v1/nbbo re-ranks venues by what you'd actually pay (ask + buyer fee) versus net receive (bid − commission − withdrawal), each scaled by an executability discount for freshness and depth, and exposes its own spreadBps plus an executableConfidence. Use the raw NBBO for a display spread; use executionAdjusted for a realistic execution spread.
Cents, not dollars
Every price field is an integer number of USD cents, so 1550 means $15.50. Divide by 100 only at display time to avoid floating-point drift.
locked & crossed
locked is true when the best bid equals the best ask (zero spread). crossed is true when the best bid exceeds the best ask, a fleeting cross-market inversion that usually means one leg went stale a beat before the other refreshed. Both are flags so you can filter or discount those reads.