Polymarket Market Trades API
Every public fill in one market, newest first, with side, price, shares and trader.
GET /v1/polymarket/markets/{conditionId}/trades1 credit Failed requests are free
About this endpoint
GET /v1/polymarket/markets/{conditionId}/trades returns data.trades, newest first. Each row has transactionHash, at, side (BUY or SELL), price, shares, outcome, outcomeIndex, tokenId, conditionId, a market object and a trader object with wallet, name, pseudonym and image.
Filters are side, minSize (US dollars), from and to (unix seconds), plus limit and cursor. limit is 1 to 1000 and defaults to 100. A market that exists with no trades yet returns a found answer with an empty list. An unknown condition id returns not_found.
Polymarket Market Trades API FAQ
How do I page through trades?
Read data.page.nextCursor and pass it as cursor with the same filters. Newest first means a cursor walk moves backwards in time. Stop when data.page.hasMore is false.
What does minSize filter on?
The dollar value of the trade, not the number of shares. A trade of 500 shares at 0.10 passes minSize=40. Combine it with from and to to focus on a window.
Are these fills or aggregated candles?
These are individual public fills, each with a transaction hash. For aggregated price points use the price history route. For a whole market's activity, this is the most granular route.
What does lookupStatus mean on this route?
found means the object or list was returned. not_found means no matching object exists. HTTP 200 only means the request finished, so branch on data.lookupStatus before storing a row.
How much does this route cost?
Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.
Other Polymarket endpoints
- EventsGET /v1/polymarket/events
- EventGET /v1/polymarket/events/{eventIdOrSlug}
- Event insightsGET /v1/polymarket/events/{eventIdOrSlug}/insights
- Event annotationsGET /v1/polymarket/events/{eventIdOrSlug}/annotations
- Event commentsGET /v1/polymarket/events/{eventId}/comments
- MarketsGET /v1/polymarket/markets
- Markets batchGET /v1/polymarket/markets/batch
- MarketGET /v1/polymarket/markets/{marketIdSlugOrConditionId}