Polymarket Positions API
A wallet's positions, with cost, current value and profit per outcome.
GET /v1/polymarket/users/{wallet}/positions1 credit Failed requests are free
About this endpoint
GET /v1/polymarket/users/{wallet}/positions returns a page of positions in data.positions. Each position has tokenId, conditionId, a market object with title, slug and eventSlug, outcome, outcomeIndex, oppositeOutcome, oppositeTokenId, status, shares, totalShares, averagePrice, entryCost, entryFees, totalCost, currentPrice, currentValue, realizedPnl, unrealizedPnl, totalPnl, percentPnl, percentRealizedPnl, redeemable, mergeable and dates.
status is open (default), closed, redeemable or mergeable. sort is currentValue (default), totalPnl, realizedPnl, unrealizedPnl, tokens or price. eventId narrows to one event, limit is 1 to 1000 and defaults to 50. A wallet with no positions returns a found answer with an empty list.
Polymarket Positions API FAQ
What does redeemable or mergeable mean?
redeemable marks a position in a resolved market that can be exchanged for its payout. mergeable marks opposite positions that can be combined. They are status filters on this route, not actions this API takes.
Are closed positions included?
Not by default. Pass status=closed for positions that have been closed, or status=redeemable or mergeable for those states. A position's totalPnl includes realized and unrealized profit.
How do I page a large portfolio?
Read data.page.nextCursor and pass it as cursor with the same status, sort and eventId filters. Keep the filters stable while paging or the cursor may no longer match.
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}