Odds & Player Props
Date's odds slate
Slate-level odds aggregate. Returns one per-fixture odds object
for every game scheduled on date, so consumers fetch a day's
odds in one request instead of one /games/{id}/odds call per
game. Each games[] element is byte-shape-identical to the
single-fixture /games/{id}/odds data object (game_id,
snapshot_at, markets) with a fixtureId added. A date with no
fixtures returns games: [] with a 200 (never a 404).
Requires the odds entitlement (a paid plan). See Responses & Errors for the success envelope and availability rules.
https://api.sportquanta.com/v1/{league}/oddsReference context: WKBL.
Overview · Response conventions
Authorizations
AuthorizationstringheaderrequiredSend a workspace API token in the Authorization: Bearer <token> header.
Path Parameters
leagueenum<string>default:wkblrequiredLeague for this reference section: wkbl.
Available options: wkbl
Query Parameters
datestring<date>requiredSlate date (YYYY-MM-DD).
bookmakerstringComma-separated bookmaker ids to include.
formatenum<string>default:americanAccepted format hint (american by default, or decimal). Current responses retain both explicitly named price fields when available; this parameter does not strip or synthesize prices. Closing consensus_price_decimal remains decimal.
Available options: decimal, american
Response
application/jsonPer-fixture current odds for every game on the date.
Query validation failed. Depending on the handler, invalid_query_parameter is returned with HTTP 400 or 422. Pre-read validation is non-billable.
Missing or invalid bearer API token.
Access is forbidden: the token lacks api.read scope, the plan lacks an endpoint/bookmaker capability, or configured billing access is inactive. Inspect error.code and details.feature when present.
The {league} segment is not in the Sportquanta catalog.
Hourly rate ceiling or monthly quota exceeded. The error code disambiguates
which limit was hit. X-RateLimit-* and X-Requests-*-Month response headers
carry the current state of both counters.
Token validation or an internal handler failed. Token-store failures use api_token_lookup_failed; unsupported internal sport dispatch can use data_layer_unavailable.
The data layer (Mongo / ClickHouse / Redis cache) is temporarily unreachable. The server attempted the lookup; it failed. Retry with backoff. Per the spec's order of evaluation, this DOES consume monthly quota — the request reached step 6.
The configured billing provider could not verify API access. The request is refused before the data handler and does not consume monthly quota.
dataobjectrequireddata.dataobjectrequireddata.data.leaguestringrequireddata.data.datestringrequireddata.data.gamesobject[] | nullrequireddata.data.games.fixtureIdstringrequireddata.data.games.game_idstringrequireddata.data.games.snapshot_atstring<date-time>requireddata.data.games.marketsobject | nullrequiredMap keyed by the exact returned market key. Each value is an array of bookmaker/period entries, each with its selections. Keys can include market variants; discover them from the market catalog and returned data. MARKET_KEY below is a placeholder. An empty map means no matching quotes were returned.
data.data.games.markets.{key}object[] | nulldata.data.games.markets.{key}.bookmakerstringrequireddata.data.games.markets.{key}.periodstringSettlement period; omitted for the default full-game period.
data.data.games.markets.{key}.first_seen_atstring<date-time>When this bookmaker market identity was first observed. Distinct from the latest price-change time.
data.data.games.markets.{key}.updated_atstring<date-time>requiredLast observation/update time for this bookmaker entry.
data.data.games.markets.{key}.selectionsobject[] | nullrequireddata.data.games.markets.{key}.selections.selectionstringrequireddata.data.games.markets.{key}.selections.participant_idstringdata.data.games.markets.{key}.selections.base_market_keystringFully qualified market identity, including participant where relevant.
data.data.games.markets.{key}.selections.linenumberSelection line, distinct from its quoted price; omitted for markets without a line.
data.data.games.markets.{key}.selections.price_decimalnumberDecimal quoted odds, when available. Responses can retain both decimal and American prices; format is a hint and does not guarantee conversion or removal of the other field.
data.data.games.markets.{key}.selections.price_americanintegerAmerican quoted odds, when available (for example -110 or +150). Responses can retain both price formats; format is a hint and does not guarantee conversion or removal of the other field.
data.data.games.markets.{key}.selections.statusstringrequireddata.data.games.markets.{key}.selections.is_suspendedbooleanrequiredWhether the selection is suspended.
data.data.games.truncatedboolean_metaobjectResponse request/cache metadata. Optional evidence fields are specific to this handler; cache TTL does not measure source-data freshness.
_meta.request_idstring_meta.served_fromenum<string>Available options: live, cache
_meta.cache_ttl_secondsintegerResponse cache TTL; independent of source freshness. Omitted when zero.
errorobjectrequirederror.codestringrequiredStable machine-readable error code.
error.messagestringrequiredUser-facing error summary.
error.detailsanyOptional error details.