Polymarket API reference / Data API v1
GET/v1/market-positions

Get positions for a market

**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
1,000 req / 10s (100 per second)
Limit applies to
Data API general

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.

Parameters

NameInTypeRequiredDescription
marketquerystringyesThe condition ID of the market to query positions for
userquerystringnoFilter to a single user by proxy wallet address
statusquerystringnoFilter positions by status. - `OPEN` — Only positions with size > 0.01 - `CLOSED` — Only positions with size <= 0.01 - `ALL` — All positions regardless of size
sortByquerystringnoSort positions by: - `TOKENS` — Position size (number of tokens) - `CASH_PNL` — Unrealized cash PnL - `REALIZED_PNL` — Realized PnL - `TOTAL_PNL` — Total PnL (cash_pnl + realized_pnl)
sortDirectionquerystringno
limitqueryintegernoMax number of positions to return per outcome token
offsetqueryintegernoPagination offset per outcome token

Example

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

Returns a list of objects with these fields

FieldTypeDescription
tokenstringThe outcome token asset ID
positionsobject[]

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.