Polymarket Prices API
Best bid, best ask, midpoint and spread for up to 150 outcome tokens.
GET /v1/polymarket/prices1 credit per token id Up to 150 token ids per request Max 150 credits Failed requests are free
About this endpoint
GET /v1/polymarket/prices takes tokenIds, repeated or comma separated, up to 150. data.results has one entry per token id, in request order, with tokenId, lookupStatus and price. A price record carries bestBid, bestAsk, midpoint, spread, lastTradePrice and lastTradeSide (BUY or SELL).
Prices are probabilities between 0 and 1. The route charges one credit per token id. A token with no live prices, or an unknown token, is not_found with price: null while the rest of the batch still returns.
Polymarket Prices API FAQ
How is midpoint calculated?
It is halfway between best bid and best ask. When a side is missing, midpoint and spread can be null even though the token is found. Read bestBid and bestAsk directly if you need to handle a one-sided book.
What is lastTradeSide?
The side the last trade took, BUY or SELL. It is not the side of the next trade. Use the order book route if you need the resting depth behind the quotes.
Why is a token not_found?
The token id is unknown, or its market has closed and no longer has live prices. A closed market can still have a last trade price in its market record, so check that route if you need history.
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}