Data
Polymarket trade history
Polymarket trade history for any market: every trade that printed, with price, size, side, and the exchange timestamp, downloadable by market or by whole series back to March 1, 2026. A price chart shows where the market went; the trade tape shows who paid what to move it, and the order book history behind the same markets sits next to it.
Your own trade history, or a market's
Two different things share the name. Your own trades are on polymarket.com under your profile's Activity tab, and the Data API lists a wallet's trades and positions. A market's trade history, every trade by everyone, including on markets that have since resolved, is what this page is about. Polymarket's own APIs do not keep it; Marketlens has recorded it continuously since March 1, 2026.
What a trade record contains
One row per execution: platform_timestamp (epoch milliseconds, the exchange's clock), price between 0 and 1, size in shares, side (BUY or SELL of the market's first outcome), the fee rate, and the market it belongs to. Trades are collected on the same connection as the order book, so a fill and the book that produced it share a timeline. Candles from 1 second to 1 day are built from these rows.
Download trade history for a market in Python
Start from the series and let each market carry its own window. A 5 minute BTC market holds 800 to 1,700 trades; trades can be filtered by window, side, or minimum size in dollars, and the SDK follows the pagination cursor and returns a DataFrame.
from marketlens import MarketLens
client = MarketLens() # pip install marketlens, free key in MARKETLENS_API_KEY
# every trade on every market of a series over a window
for market in client.series.walk(
"btc-up-or-down-5m", status="resolved",
after="2026-09-10T12:00:00Z", before="2026-09-10T12:15:00Z",
):
trades = client.markets.trades(
market.id, after=market.data_start, before=market.data_end,
).to_dataframe() # indexed by platform_timestamp
print(market.question, market.winning_outcome,
len(trades), "trades", round(trades["size"].sum()), "shares")
trades.to_csv("trades.csv")$ curl -H "Authorization: Bearer mk_..." \
"https://api.marketlens.trade/v1/markets\
/4ee145e2-3fee-5b15-bb95-56a33a292945/trades\
?after=1776217500000&before=1776217800000&side=BUY&limit=500"Leagues and weather cities are listed with markets.list(series_id="mlb", subtype="moneyline", close_after=, close_before=) and read the same way.
Download trade history for a whole series
For a league, a crypto cadence, or a weather city, export the series for a window: one compact Parquet file per market with its trades, snapshots, and price changes as rows tagged by event_type. One day of the BTC 5 minute series is 287 markets and about 6.4 million rows; dry_run=True quotes the cost first, and the same folder feeds the backtest engine offline.
client.exports.download_series(
"btc-up-or-down-5m", data_dir="data",
after="2026-09-10T00:00:00Z", before="2026-09-11T00:00:00Z",
)
# data/history-<market>-compact.parquet per market; the trades are the rows
# with event_type == "trade": t (ms), price, size, side, trade_idTrades, fills, and tick data
Three different records get called "trade history". The exchange tape, above, is every match the order book produced. On-chain fills are the Polygon settlement of those matches, keyed by wallet and transaction, useful for who traded, not for how the market moved. Tick data is the order book itself changing between trades: 37.2B price changes in the archive at millisecond resolution, served through the order book endpoints. A backtest needs the second and third; a volume study needs the first.
FAQ
Polymarket trade history questions
How do I see my own Polymarket trade history?
On polymarket.com, open your profile and the Activity tab; the Data API also lists a wallet's trades and positions. That covers one account. For every trade on a market, including markets that have resolved, use the Marketlens archive.
How do I download Polymarket trade history for a market?
client.markets.trades(market.id, after, before) returns every executed trade with price, size, side, and timestamp as a DataFrame; to_csv() writes the file. Find the market from its series with client.series.walk() or client.markets.list(series_id=). The archive holds 280M trades across 903,238 markets since March 1, 2026.
Does Polymarket's API have trade history?
The official APIs serve recent activity and the current order book; there is no endpoint that returns the complete trade history of a market. On-chain fills can be reconstructed from Polygon, but that is settlement data keyed by wallet and transaction, not the exchange's trade tape.
What is Polymarket tick data?
Two things, both in the archive: every executed trade (280M rows) and every order book price change between full snapshots (37.2B rows at millisecond resolution). Trades tell you what printed; price changes tell you how the book moved between prints.
Try it
Every print, every market
Trades with size and side since March 2026, next to the books that produced them. The free tier includes 25M rows per day, no card required.
$ pip install marketlens