Polymarket API reference / Data API v1
GET/positions

Get current positions for a user

**Data API v2:** this route has a v2 counterpart, `GET /v2/positions`. See [Migrating to Data API v2](/migrate/data-api-v1-to-v2).

Base URL
https://data-api.polymarket.com
Auth
Public, no key
Rate limit
150 req / 10s (15 per second)
Limit applies to
/positions

Things to know

Data API v1 has been frozen since 4 September 2026. It still answers, but new fields and endpoints only go to v2. The v2 version of this call is GET /v2/positions.

Parameters

NameInTypeRequiredDescription
userquerystringyesUser address (required)
marketqueryobject[]noComma-separated list of condition IDs. Mutually exclusive with eventId.
eventIdqueryinteger[]noComma-separated list of event IDs. Mutually exclusive with market.
sizeThresholdquerynumberno
redeemablequerybooleanno
mergeablequerybooleanno
includeArchivedquerybooleannoInclude positions in archived markets that are still active. Archived positions are excluded by default.
limitqueryintegerno
offsetqueryintegerno
sortByquerystringno
sortDirectionquerystringno
titlequerystringno

Example

curl -X GET "https://data-api.polymarket.com/positions?user=<user>"

Returns a list of objects with these fields

FieldTypeDescription
proxyWalletstringUser Profile Address (0x-prefixed, 40 hex chars)
assetstring
conditionIdstring0x-prefixed 64-hex string
sizenumber
avgPricenumber
initialValuenumber
grossInitialValuenumberRemaining entry basis including attributed BUY fees, at six-decimal source precision. `initialValue` and `avgPrice` keep their fee-exclusive semantics, so the fee-exclusive basis is…
entryFeesUsdcnumberAttributed BUY-fee component of `grossInitialValue`, at six-decimal source precision. SELL fees are exit costs and are never included. Returned as an explicit `0` when the fee component is zero.
currentValuenumber
cashPnlnumber
percentPnlnumber
totalBoughtnumber
realizedPnlnumber
percentRealizedPnlnumber
curPricenumber
redeemableboolean
mergeableboolean
titlestring
slugstring
iconstring
eventSlugstring
outcomestring
outcomeIndexinteger
oppositeOutcomestring
oppositeAssetstring
endDatestring
negativeRiskboolean

Responses

StatusMeaning
200Success
400Bad Request
401Unauthorized
500Server Error

Related endpoints

Polymarket's API serves current state only, so it cannot show what a market's book looked like after it resolved. PolyTest records Up/Down markets while they run and keeps the snapshots. Try it free, or read the full rate limit reference.

From Polymarket's published OpenAPI spec and rate-limit tables, synced 2026-10-04.