Bookmaker odds
Compare normalized markets, selections, lines and prices by bookmaker.
GET /v1/events/{event_id}/odds/snapshotREST + SSE + WebSocket
Use one event ID for fixtures, event records, results and normalized pre-match sportsbook prices, then follow supported changes through SSE or WebSockets.
curl --request GET \
--header "X-API-Key: $ODDS_API_KEY" \
"https://api.odds-api.net/v1/events/{event_id}/odds/snapshot?bookmakers=pinnacle,draftkings"
{
"event_id": "nba-example-001",
"as_of_ts_ms": 1784092451749,
"ttl_seconds": 60,
"resume": "1784092451749-0",
"items": [{
"bookmaker": "pinnacle",
"market": "moneyline",
"selection": "home",
"odds": 1.91
}]
}
The operational contract
Keep transport, freshness and credit semantics beside the sample response—not buried in a support thread.
One join key
Load the fixture once, then attach the record, result and bookmaker prices without matching the same game again.
Compare normalized markets, selections, lines and prices by bookmaker.
GET /v1/events/{event_id}/odds/snapshotLoad covered games by sport, league, team and start time.
GET /v1/eventsRetrieve the canonical event record used across every related endpoint.
GET /v1/events/{event_id}Attach the result to the same event without another matching layer.
GET /v1/events/{event_id}/resultsSnapshot first
Use the REST response as state. Streams then deliver supported pre-match changes and continuity signals.
GET /v1/events?sport={sport}&league={league}Find the fixture in your schedule and keep its canonical event ID.
GET /v1/events/{event_id}/odds/snapshotUse that event ID to add normalized bookmaker prices to the same match record.
SSE or WebSocketOpen the matching SSE or WebSocket route for supported pre-match changes and resume handling.
Coverage routes
The current catalogue lists 255 bookmaker keys across 28 countries, 14 sports and 405 leagues.
Rugby leagueNRL APIConnect the NRL fixture list, match data, results and bookmaker prices with one event ID.→
Australian rulesAFL APIConnect the AFL fixture list, match data, results and bookmaker prices with one event ID.→
BasketballNBA Odds APIConnect the NBA schedule, game records, scores and sportsbook prices with one event ID.→Developer package
Use the public reference, typed clients, request collection and agent tooling.
Recommended entry point
Starter includes 50,000 base API credits, 60 requests per minute and one concurrent stream. The account can request every bookmaker and market available to it.
Poor fit
This API is strongest when normalization and pre-match delivery matter more than source-native execution latency.
Verification
The contract below is grounded in the live documentation, coverage catalogue, pricing page and public developer package.
Product contract verified 12 September 2026. Live coverage counts are generated from the current catalogue on each request.
Short answers
Data, endpoints, streaming and commercial fit.
The API connects sports fixtures, canonical event records, match results and normalized bookmaker odds through the same event ID.
Request the event list, keep the event ID, then call the event odds snapshot endpoint. Filter the response by bookmaker or market when your product needs a smaller payload.
Yes. Start with the REST snapshot, then connect to the matching SSE or WebSocket endpoint for price updates.
The catalog includes football, basketball, baseball, ice hockey, rugby league, AFL, combat sports and more. GET /v1/sports returns the sports available through the API.
Yes. Paid plans support customer-facing apps, comparison sites, dashboards, alerts and internal tools. The terms cover the data licence and redistribution rules.