Polymarket Market Resolution API
The resolution record, winning outcome and final prices for one condition id.
GET /v1/polymarket/markets/{conditionId}/resolution1 credit Failed requests are free
About this endpoint
GET /v1/polymarket/markets/{conditionId}/resolution returns data.resolution for one market. The object carries the resolution status (posed, proposed, disputed or resolved), wasDisputed, extendedReview, proposedPrice, reproposedPrice, settledPrice, updatedAt and questionId. Alongside it are the market's status, closedAt, winningOutcome and outcomes[] with their final or current prices.
resolution is null when there is no resolution record for this market; a market that is still trading can already have one. A record without an oracle question has status: "resolved" and null prices and question id. Each price is null when the record does not carry it. For yes/no markets the oracle prices are large integers: 1000000000000000000 means Yes and 0 means No.
Polymarket Market Resolution API FAQ
Why is resolution null?
No resolution record exists for this market. The market status, closing time and outcome prices are still returned. An open market can also have a resolution record while its question is posed or proposed.
Why does a resolved market have null prices?
Some markets resolve without an oracle question. Their record has status resolved and null proposedPrice, reproposedPrice, settledPrice and questionId; the market status, winningOutcome and outcome prices still show the answer.
How do I read proposedPrice for a yes/no market?
The value is the oracle's integer answer. For a yes/no market 1000000000000000000 means Yes and 0 means No. settledPrice holds the final answer when the record carries one; a record without an oracle question has null prices.
What does wasDisputed mean?
An answer was challenged. extendedReview is true when the dispute went to a longer review. The status field moves through proposed, disputed and resolved as the oracle settles.
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}