Events & Odds

List Odds

Bulk odds for a sport. Filter by market keys (comma-separated).

Served through a short-TTL single-flight cache — this is the single highest-volume read path (48% of peak-hour traffic on the 2026-08-08 record day) and the response is tier-independent. See api/odds_cache.py for the TTL rationale. No session dependency: the loader opens its own read session so a cancelled leader request can't poison coalesced callers.

get/v1/sports/{sport_key}/odds

Path parameters

sport_keystring required

Query parameters

marketsstring
bookmakersstring nullable

Comma-separated bookmaker keys (e.g. 'draftkings,fanduel'). Omitted = all books. Matches the-odds-api's bookmakers param.

Comma-separated bookmaker keys (e.g. 'draftkings,fanduel'). Omitted = all books. Matches the-odds-api's bookmakers param.

periodstring nullable

Game-period filter. Omitted = full-game markets only (backwards-compatible default). Pass a comma-separated list of canonical codes (e.g. 'q1,q2' or 'h1') to filter to specific periods. Pass 'all' to include every period alongside full-game.

Game-period filter. Omitted = full-game markets only (backwards-compatible default). Pass a comma-separated list of canonical codes (e.g. 'q1,q2' or 'h1') to filter to specific periods. Pass 'all' to include every period alongside full-game.

includeLinksboolean

When true, each bookmaker block carries a link — that book's public event-page URL (plain navigation, no affiliate tagging). Only books with a verified URL template emit links (Bovada, DraftKings, FanDuel, BetMGM, Kalshi, Polymarket, Smarkets); others return null. Matches the-odds-api's includeLinks param.

When true, each bookmaker block carries a link — that book's public event-page URL (plain navigation, no affiliate tagging). Only books with a verified URL template emit links (Bovada, DraftKings, FanDuel, BetMGM, Kalshi, Polymarket, Smarkets); others return null. Matches the-odds-api's includeLinks param.

includeBookIdsboolean

When true, each bookmaker block carries book_event_id (that book's own event identifier) and every outcome carries book_outcome_id (that book's own selection/contract id). Use these to join PropLine rows onto a book's native feed without matching on team names, players and lines. Kalshi ships both — the event ticker and the per-contract market ticker (e.g. KXMLBGAME-26AUG08NYYBOS-NYY). Books that don't publish a stable id return null. PropLine-specific; both fields are always present in the response shape and are null unless this param is set (same convention as link/includeLinks), so no existing consumer's parsing changes.

When true, each bookmaker block carries book_event_id (that book's own event identifier) and every outcome carries book_outcome_id (that book's own selection/contract id). Use these to join PropLine rows onto a book's native feed without matching on team names, players and lines. Kalshi ships both — the event ticker and the per-contract market ticker (e.g. KXMLBGAME-26AUG08NYYBOS-NYY). Books that don't publish a stable id return null. PropLine-specific; both fields are always present in the response shape and are null unless this param is set (same convention as link/includeLinks), so no existing consumer's parsing changes.

Response

Successful Response

idstring required
sport_keystring required
home_teamstring required
away_teamstring required
commence_timestring date-time required
liveboolean
last_updatestring date-time nullable