Liquidity and Limits
SharpAPI surfaces every liquidity and limit signal we receive from upstream books. These fields are optional on /api/v1/odds rows because traditional sportsbooks and exchange-style books expose different data.
Fields on odds rows
| Field | Type | Meaning | Emitting books |
|---|---|---|---|
max_bet | number | Maximum wager the book will accept on this market or selection at the current line. | Pinnacle, SBObet |
volume | number | Cumulative traded volume on the selection, in the exchange’s native units. | Kalshi |
volume_24h | number | Rolling 24-hour traded volume in the exchange’s native units. | Polymarket, Kalshi |
open_interest | number | Outstanding open contracts on the selection. | Kalshi |
exchange_token_id | string | Exchange-native token or market hash for downstream order routing. | Polymarket (token_id), SX Bet (marketHash) |
These values are returned only when present in the source feed. Absence means the upstream book did not expose that signal for the row; it does not imply zero liquidity or a zero limit.
The exchange-side fields (volume, volume_24h, open_interest, and exchange_token_id) are liquidity proxies, not a full depth-of-book feed. Their units are not directly comparable across books.
What we do not surface
- Bid / ask order-book depth. Traditional sportsbooks do not operate a visible order book. Exchange-style books may operate one internally, but the public feeds we consume generally publish aggregate volume or open interest rather than depth.
- Pre-bet limit checks. No upstream book exposes a public “will this wager be accepted at this size” probe.
max_betis the book’s posted ceiling on the market; the actual accept-or-reject decision is made at slip-submission time. - Real-time suspension reasons. When a book pulls a line,
/api/v1/odds/deltacan emit a removal and the row disappears from/api/v1/odds, but upstream feeds usually do not include a structured reason.
Detecting coverage gaps
If a customer-side coverage check relies on liquidity:
- Filter
/api/v1/oddsby the books you care about. - For exchange-style books, filter rows where
volume_24horopen_interestexceeds your minimum threshold. - For traditional books, use
max_betwhen emitted as a coarse limit signal. - For everything else, fall back to row presence: an odds row is a positive signal that the book is currently quoting that market.
Last updated on