Polymarket hub

Polymarket Movers API

The markets that moved most, with the change and a short price history.

GET /v1/polymarket/movers

1 credit Failed requests are free

About this endpoint

GET /v1/polymarket/movers returns data.movers, the markets with the biggest recent moves. Each mover has marketId, slug, question, image, eventSlug, currentPrice, dayChange (probability points over 24 hours), changePercent, outcomePrices, tokenIds, closed and a history array of at and price points, oldest first.

Pass category to keep one of politics, sports, crypto, finance, tech, culture or world, and locale to translate questions. Any other category is rejected instead of being ignored. The list is a snapshot of the largest moves, not a complete ranking of every market.

Polymarket Movers API FAQ

What counts as a mover?

The markets with the largest recent price changes, ranked by Polymarket. dayChange is in probability points and changePercent is the relative move. A market that moved 0.10 from 0.50 shows a larger percent than one that moved 0.10 from 0.90.

Why does history have only a few points?

history is a short recent series for context, not the full price history. For a complete series call GET /v1/polymarket/tokens/{tokenId}/price-history with the token id from tokenIds.

Does the list include closed markets?

A closed market can appear with closed: true when its last move is still among the largest. Filter on that field if you only want markets that are still trading.

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.