Discover a fixture and its markets
Get the league from/v1/leagues, a fixture ID from /v1/{league}/games, and
market keys from /v1/{league}/odds/markets or /props/markets. Market catalogs
describe supported vocabulary; they do not guarantee prices for every fixture
or bookmaker. /v1/bookmakers exposes id, display_name, class, and
has_odds. The public /v1/coverage/bookmakers reports recent coverage.
Core, Sharp, and Max currently include odds, stats, and sharp-book prices.
Streaming requires its own entitlement, and settlement signals require Max.
Trials/grants can have different access. A mixed bookmaker request returns
visible books; a request exclusively for excluded books returns
403 feature_not_in_plan.
Current odds and props
Odds markets map market keys to bookmaker entries. Entries contain
bookmaker,
optional period, updated_at, selections, and, where available,
first_seen_at. Selections include selection, optional participant_id,
base_market_key, line, a price field, status, and is_suspended.
format=american is the default and selects price_american; decimal
selects price_decimal. Line values are distinct from prices. Omitted lines
are normal for markets such as moneyline. Do not treat suspended or closed
selections as currently bettable.
Keep market, period, participant, selection, and signed line together when
comparing prices. Full-game and first-inning markets, opposite spread sides,
and two players’ same-named props are different selections. A missing period
on these projections denotes the default full-game period.
snapshot_at summarizes the returned snapshot; inspect each bookmaker’s
updated_at for quote age. first_seen_at records when the quote identity was
first observed, not when every subsequent price changed. When truncated=true,
narrow the bookmaker/player/market filters before assuming completeness.
Fair and best prices
Fixture odds and props have/fair and /best routes, including
/props/{player_id}/fair and /best. Their payloads also live at data.data.
Fair probabilities remove the quoted margin within a complete selection set;
missing or unusable selections can leave fair probabilities unavailable.
Consensus is the median of available fair probabilities for the same selection
and line. Best-price comparison chooses the highest decimal payout for that
exact selection. Book counts describe the returned comparison set, not every
bookmaker integrated by SportQuanta.
Derived props accept
player and bookmaker, plus format; they do not
implement the current-props market filter. Baseball
/games/{id}/props/{player_id}/edge?window=20 compares recent over-rate with
fair prop prices. A historical over-rate is distinct from a model forecast.
History and source changes
/games/{id}/odds/history and /props/history return data.items, oldest
first. They accept market, bookmaker, selection, from, to, and
limit; prop history adds player_id. Defaults are 1000 rows, capped at 5000.
from and to are inclusive RFC 3339 timestamps. No cursor is returned.
History exposes changes, including timestamp, line, prices, status/suspension,
and source-routing fields when available. These routes require the stats
entitlement and history support on the deployment; unavailable history returns
502 data_layer_unavailable.
/games/{id}/source-tier-changes annotates source transitions with old/new
source IDs and tiers, fallback state, reason, and event time. It accepts one
bookmaker, from, to, and limit. Default 200; values outside 1–1000 revert
to 200. Source tier is an ingestion-source concept, separate from plan tier.
Opening, closing, CLV, and movement
These paths are relative to
/v1/{league}/games/{id}. Payloads live at
data.data. Opening/closing ledgers and history-window endpoints represent
different facts; a shortened history series can change a window-derived
comparison. CLV publishes anchor, open_at, close_at, prices, implied
probabilities, and clv_implied. Compare prices at matching selection, period,
and line. Missing close data should remain missing.
The current closing-anchor refusal reports
details.feature="signals" and
details.parameter="anchor", but still carries a legacy details.required_tier="sharp" label.
The current entitlement table grants signals with Max; Sharp alone does not unlock the closing
anchor. The closing and settlement route gates report required_tier="max".Settlement and divergence signals
Max unlocks:/v1/{league}/games/{id}/settlements: grades for one fixture./v1/{league}/settlements?date=YYYY-MM-DD: league/date grades./v1/{league}/settlements/revisions?since=RFC3339: corrected grades since a timestamp; defaults to the preceding 24 hours and is uncached./v1/{league}/games/{id}/odds/divergence: sharp versus mainstream fair probabilities, book counts, per-selectiongap, and marketmax_gap.
data. Preserve settlement identity,
grading status, revision, and grading time when synchronizing results. Poll
revisions with overlap and apply corrections idempotently.
Divergence gap is mainstream minus sharp fair probability, and markets are
ordered by maximum absolute gap. Read both class book counts before interpreting
a consensus; a one-book comparison has a different evidential basis from a
broad market.