Summary
The /api/v1/odds response surfaces several liquidity-adjacent fields that are either undocumented or under-documented. A customer (High Summit Holdings, mid-trial-evaluation) asked about liquidity coverage today and Maya answered "we don't surface depth/size data" — which is wrong on three counts.
What's actually surfaced (verified in sharp-api-go/main.go:525-528 and :568-570)
Both JSON shapes carry these fields:
| Field |
Type |
Source |
Documented today? |
volume |
float |
Exchanges (Polymarket, Kalshi, Novig) |
❌ no |
volume24h / volume_24h |
float |
Exchanges |
❌ no |
openInterest / open_interest |
float |
Exchanges |
❌ no |
max_bet |
float |
Pinnacle, SBObet (per adapters/pinnacle.py:2524 + adapters/sbobet.py:913) |
⚠️ partial — docs say "Pinnacle only" but SBObet also writes it |
exchange_token_id |
string |
Exchanges |
❌ no |
These are real liquidity signals — volume_24h + open_interest for exchanges is exactly the "depth of book" proxy that pre-match trading clients ask about; max_bet is the per-line wager ceiling. Customers are flying blind on coverage decisions because the docs imply liquidity isn't available at all.
What's NOT surfaced (correctly absent)
- Bid/ask order book depth (no traditional sportsbook exposes this in their public APIs)
- Pre-bet limit checks via API
- Real-time book-side suspension reasons (we emit
odds:removed deltas but not the cause)
Action requested
- Document
volume, volume_24h, open_interest, exchange_token_id on /api/v1/odds field table (content/en/api-reference/odds.mdx). Note which books emit each.
- Correct the
max_bet line to mention SBObet alongside Pinnacle (currently says "Pinnacle only").
- Add a
Liquidity & Limits section to concepts/ explaining what we DO and DO NOT surface, so future customer questions land on a docs page instead of generating Crisp follow-ups. Reference from /api/v1/odds field table.
Related customer touchpoint
- 2026-05-19 High Summit Holdings Crisp
session_e256fef6 — answered (incorrectly) that we don't surface liquidity. Follow-up correction sent.
Acceptance
docs.sharpapi.io/api-reference/odds shows the 4 exchange liquidity fields and the corrected max_bet description.
- A
concepts/liquidity.mdx page exists explaining the boundary between what we surface and what upstream books don't expose.
Summary
The
/api/v1/oddsresponse surfaces several liquidity-adjacent fields that are either undocumented or under-documented. A customer (High Summit Holdings, mid-trial-evaluation) asked about liquidity coverage today and Maya answered "we don't surface depth/size data" — which is wrong on three counts.What's actually surfaced (verified in
sharp-api-go/main.go:525-528and:568-570)Both JSON shapes carry these fields:
volumevolume24h/volume_24hopenInterest/open_interestmax_betadapters/pinnacle.py:2524+adapters/sbobet.py:913)exchange_token_idThese are real liquidity signals —
volume_24h+open_interestfor exchanges is exactly the "depth of book" proxy that pre-match trading clients ask about;max_betis the per-line wager ceiling. Customers are flying blind on coverage decisions because the docs imply liquidity isn't available at all.What's NOT surfaced (correctly absent)
odds:removeddeltas but not the cause)Action requested
volume,volume_24h,open_interest,exchange_token_idon/api/v1/oddsfield table (content/en/api-reference/odds.mdx). Note which books emit each.max_betline to mention SBObet alongside Pinnacle (currently says "Pinnacle only").Liquidity & Limitssection toconcepts/explaining what we DO and DO NOT surface, so future customer questions land on a docs page instead of generating Crisp follow-ups. Reference from/api/v1/oddsfield table.Related customer touchpoint
session_e256fef6— answered (incorrectly) that we don't surface liquidity. Follow-up correction sent.Acceptance
docs.sharpapi.io/api-reference/oddsshows the 4 exchange liquidity fields and the correctedmax_betdescription.concepts/liquidity.mdxpage exists explaining the boundary between what we surface and what upstream books don't expose.