Historical odds snapshots from TheOddsAPI archive.
Returns timestamped price snapshots for completed and in-progress events.
Data collected since 2026-05-13, capturing price changes across 20+ sports
and 50+ sportsbooks including Pinnacle, Betfair Exchange, William Hill,
DraftKings, FanDuel, BetMGM, and Marathonbet.
Use cases: Backtesting, model training, line movement analysis.
Coverage: NBA, MLB, NHL, WNBA, NCAAF, NCAAB, Tennis, Cricket, MLS,
EPL, La Liga, Bundesliga, Serie A, Ligue 1, Eredivisie, EFL Championship,
Champions League, Europa League, Liga MX, Euroleague, Boxing, MMA.
More sports added regularly.
Markets: Standard markets (h2h, spreads, totals) for all sports.
Player props for NBA (player_points, player_rebounds, player_assists,
player_points_rebounds_assists), NHL (player_goals, player_shots_on_goal,
player_power_play_points), MLB (batter_hits, batter_total_bases,
pitcher_strikeouts, batter_home_runs, batter_rbis, batter_runs_scored,
batter_hits_runs_rbis, pitcher_outs, pitcher_strikeouts_alternate), and
WNBA alternate ladders (player_points_alternate, player_rebounds_alternate,
player_assists_alternate - collected from 2026-07-21). Pass ?market= to
filter to a single market, or omit to receive all available markets for the
sport.
Business plan required. Free and Pro tiers return 403.
Pagination: page with cursor (meta.next_cursor) and stop on an
empty page. meta.has_more says whether rows exist beyond this page.
When meta.total_rows_exact is true, meta.total_rows is the exact
count. When it is false, meta.total_rows equals
meta.total_rows_lower_bound: a lower bound, never an estimate.
One market per request: use market=. markets= is not supported
and returns 400.
Row timestamps: captured_at is when TheOddsAPI recorded the price
change. last_update is the bookmaker's own quote time when available
(null on older rows).
Bookmakers: public aliases are accepted (e.g. caesars), but rows are
returned under the canonical key (e.g. williamhill_us).
Coverage: pre-match price-change history. Rows record changes, not
removals: a line that left the board has no closing row.