Odds & Player Props
Current game odds
Current odds snapshot per bookmaker from the live ingestion
(currentOdds). Returns an empty set until odds ingestion is
live for the league.
Requires the odds entitlement (a paid plan). See Responses & Errors for the success envelope and availability rules.
https://api.sportquanta.com/v1/{league}/games/{id}/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
idstringrequiredQuery Parameters
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/jsonCurrent odds grouped by market and bookmaker.
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 id is well-formed but no document has been ingested for it yet.
Query validation failed. Depending on the handler, invalid_query_parameter is returned with HTTP 400 or 422. Pre-read validation is non-billable.
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.game_idstringrequireddata.data.snapshot_atstring<date-time>requiredSnapshot observation timestamp; inspect each bookmaker updated_at for quote age.
data.data.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.markets.{key}object[] | nulldata.data.markets.{key}.bookmakerstringrequireddata.data.markets.{key}.periodstringSettlement period; omitted for the default full-game period.
data.data.markets.{key}.first_seen_atstring<date-time>When this bookmaker market identity was first observed. Distinct from the latest price-change time.
data.data.markets.{key}.updated_atstring<date-time>requiredLast observation/update time for this bookmaker entry.
data.data.markets.{key}.selectionsobject[] | nullrequireddata.data.markets.{key}.selections.selectionstringrequireddata.data.markets.{key}.selections.participant_idstringdata.data.markets.{key}.selections.base_market_keystringFully qualified market identity, including participant where relevant.
data.data.markets.{key}.selections.linenumberSelection line, distinct from its quoted price; omitted for markets without a line.
data.data.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.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.markets.{key}.selections.statusstringrequireddata.data.markets.{key}.selections.is_suspendedbooleanrequiredWhether the selection is suspended.
data.data.truncatedbooleanPresent and true when the snapshot exceeded the read cap. Narrow filters before treating it as complete.
_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.