Polymarket sports odds history

Polymarket's pages show live odds; once the game ends, the price path disappears from view. Marketlens keeps it: the full order book of every per game sports market, captured through the whole game, 67,665 markets across 17 league series and $1.7B of traded volume since June 19, 2026. This page is about the sports dataset; endpoint reference is in the docs and provider comparisons are on compare.

Live odds vs odds history

In game prediction market prices are sports odds that move with every pitch, point, and goal. The historical record of that movement, who was favored at tipoff, how the line reacted to a momentum swing, where the market stood before the final out, is what this dataset preserves. Each market carries full L2 order book snapshots with millisecond price changes between them, executed trades, and, once the game settles, its stored winning outcome (covered in depth on resolution history).

That makes closing line analysis, in game momentum studies, and calibration work possible on prediction market sports odds the same way they are done on sportsbook lines, except with visible depth on both sides of the book instead of a single quoted number.

League coverage

Collection covers MLB, NBA, NFL, NHL, ATP, WTA, UFC, and soccer as their seasons run. Series with captured markets in the archive today, each linking to a live coverage page:

MLB15,780 markets, 15,742 resolved, $97.1M volume
ATP20,820 markets, 20,746 resolved, $45.6M volume
WTA10,973 markets, 10,912 resolved, $23.9M volume
UFC464 markets, 464 resolved, $14.8M volume

Soccer competitions and the rest of the field are in the sports category, with per series market counts and resolution splits.

Query a league in Python

python
from marketlens import MarketLens client = MarketLens() # resolved MLB markets with their outcomes for market in client.markets.list( series_id="mlb", status="resolved", take=10, ): print(market.question, market.winning_outcome) # replay one game's book through the night for market, book in client.orderbook.walk( market_id, after="2026-07-11T23:00:00Z", before="2026-07-12T02:00:00Z", ): print(book.as_of, book.bids[0], book.asks[0])

Markets carry a subtype field, so queries can filter to one bet type of a league, moneylines, spreads, totals, or props. The same books drive the backtester, which settles positions by the stored winning outcome.

Common questions

Where can I get Polymarket sports odds history?

Marketlens records the order books of every per game Polymarket sports market through the whole game: 67,665 markets across 17 league series with $1.7B of traded volume. It is served through a REST API, a Python SDK (pip install marketlens), and bulk Parquet exports, with a free tier of 5M events per day.

Does Polymarket show historical odds for games?

Polymarket's own pages show live odds; once a game ends, the price path is gone from the UI. Marketlens keeps the historical record: full L2 order books, trades, and the resolved outcome for every captured game market, so line movement from open to final whistle stays queryable.

Which leagues have Polymarket odds history?

Series with captured markets in the archive today: MLB, ATP, WTA, UFC, plus soccer competitions. Collection covers MLB, NBA, NFL, NHL, ATP, WTA, UFC, and soccer as their seasons run, so league series fill in as games are listed.

What bet types does the sports data cover?

Every per game market Polymarket lists: moneylines, spreads, totals, and props. Markets carry a subtype field, so a query can filter to one bet type of a league, for example only MLB totals, and each resolved market stores its winning outcome.

Can I backtest sports betting strategies on Polymarket data?

Yes. The Marketlens Python SDK replays the recorded game books tick by tick with queue priority, latency, slippage, and Polymarket fees, and settles positions by the stored winning outcome. See marketlens.trade/docs/backtesting.

Try it

Replay any game's odds in two minutes

The free tier includes 5M events per day with full API and full archive access, no card required.

bash
$ pip install marketlens