Odds for a match (aggregated across bookmakers)
Latest odds snapshot for one match, aggregated across bookmakers (live adapter tier, falling back to the stored tier). Edge plan or higher: odds access starts at Edge; Free / Solo / Trio receive a 403 naming the tier and linking the docs and pricing pages. The same lines' history and CLV live at /v1/odds/historical (also Edge+).
Request
- Base URL: https://api.bigballsdata.com
- URL: https://api.bigballsdata.com/v1/matches/{id}/odds
- Auth: one of:
- API key in header x-api-key
- HTTP bearer
Path parameters
A stored BigBalls id. This is the identifier every match, team, player and league endpoint returns, and the one every {id} path segment accepts. Take it from the id field of the corresponding list endpoint and use it as-is.
Query parameters
Optional and NON-FILTERING. The match id alone identifies the match, so this only resolves the plan gate, the same role it has on /v1/teams/{id}. A value that disagrees with the match's real sport does not change the response: measured 2026-09-20, ?sport=football on an ice_hockey match id returned the ice_hockey match, byte-identical to ?sport=ice_hockey and to no sport at all.
Response
ok
Example response
{
"data": [
{
"match_id": "cf2d81c8-8e7c-4eaf-a515-c51be3962e57"
}
],
"meta": {
"date_window": {
"timezone": "UTC",
"start_utc": "2026-09-13T00:00:00.000Z",
"end_utc": "2026-09-14T00:00:00.000Z"
},
"source": "official-league",
"confidence": 0.95,
"cache_age_ms": 4200,
"request_id": "req_abc123",
"note": "match_id is omitted on 380 of 380 rows in this response. The live feed behind them does not carry an id we can resolve to a stored match, so we return no id rather than one that will not work. For rows with ids you can call back into, use /v1/stored/matches with the same sport or league, for example /v1/stored/matches?league=epl."
},
"error": {
"code": "NOT_FOUND"
}
}Changes
No recorded changes to this operation across all 2 revisions of this API.