Polymarket

List Polymarket user positions

List a wallet's open, closed and redeemable Polymarket positions with profit.

GET/v1/polymarket/users/{wallet}/positions
1credit
x-api-keystringheader

API key (`sfk_...`)

Parameters
6
walletstringrequiredpath

Wallet address: 0x followed by 40 hex digits.

pattern: ^0x[0-9a-fA-F]{40}$

statusstringoptionalquery

Which positions to list. Default: `open`.

one of: open, closed, redeemable, mergeable

sortstringoptionalquery

Sort field, largest first. Default: `currentValue`.

one of: currentValue, totalPnl, realizedPnl, unrealizedPnl, tokens, price

eventIdstringoptionalquery

Only positions in this event.

pattern: ^\d{1,10}$

limitintegeroptionalquery

Items per page, 1–1000. Default: 50.

≥ 1 · ≤ 1000

cursorstringoptionalquery

Pass `page.nextCursor` from the previous response to get the next page. Keep the other filters the same.

min 1 chars · max 6000 chars

Response fields
44

Endpoint-specific response payload.

datalookupStatus
string

`found` on success. A wallet with no positions, or one that does not exist, returns an empty list.

one of: found, not_found

datawallet
string

The wallet asked for.

Positions.

datapositions[]tokenId
stringnullable

Outcome token id.

datapositions[]conditionId
stringnullable

Condition id of the market.

The market the position is in.

datapositions[]markettitle
stringnullable

Market question.

datapositions[]marketslug
stringnullable

Market slug.

datapositions[]marketeventSlug
stringnullable

Event slug.

datapositions[]marketicon
stringnullable

Icon URL.

datapositions[]marketeventId
stringnullable

Event id.

datapositions[]marketendDate
stringnullable

Scheduled end date (YYYY-MM-DD).

datapositions[]outcome
stringnullable

Outcome held.

datapositions[]outcomeIndex
integernullable

Position of the outcome in the market.

datapositions[]oppositeOutcome
stringnullable

The other outcome.

datapositions[]oppositeTokenId
stringnullable

Token id of the other outcome.

datapositions[]status
stringnullable

`OPEN`, `CLOSED`, `REDEEMABLE` or `MERGEABLE`.

datapositions[]shares

Shares held now. A number, or an exact decimal string when the value has more digits than a number can hold.

datapositions[]totalShares

Shares ever bought. A number, or an exact decimal string when the value has more digits than a number can hold.

datapositions[]averagePrice
numbernullable

Average entry price.

datapositions[]entryCost

Dollars paid for the shares held. A number, or an exact decimal string when the value has more digits than a number can hold.

datapositions[]entryFees

Fees paid when the shares were bought, in dollars. A number, or an exact decimal string when the value has more digits than a number can hold.

datapositions[]totalCost

Entry cost plus entry fees, in dollars. A number, or an exact decimal string when the value has more digits than a number can hold.

datapositions[]currentPrice
numbernullable

Current price of the outcome.

datapositions[]currentValue

Current value in dollars. A number, or an exact decimal string when the value has more digits than a number can hold.

datapositions[]realizedPnl

Profit already taken. A number, or an exact decimal string when the value has more digits than a number can hold.

datapositions[]unrealizedPnl

Profit on paper. A number, or an exact decimal string when the value has more digits than a number can hold.

datapositions[]totalPnl

Realized plus unrealized profit. A number, or an exact decimal string when the value has more digits than a number can hold.

datapositions[]percentPnl
numbernullable

Total profit as a percent of cost.

datapositions[]percentRealizedPnl
numbernullable

Realized profit as a percent of cost.

datapositions[]archived
booleannullable

Whether Polymarket archived the market.

datapositions[]redeemable
booleannullable

Whether the position can be redeemed.

datapositions[]mergeable
booleannullable

Whether the position can be merged.

datapositions[]negRisk
booleannullable

Whether the market is a winner-takes-all group.

datapositions[]firstEntryAt
stringnullable

When the position was opened (ISO-8601, UTC).

datapositions[]lastActivityAt
stringnullable

When the position last changed (ISO-8601, UTC).

Pagination state for the current page.

datapagehasMore
boolean

Whether another page is available.

datapagenextCursor
stringnullable

Cursor to pass in the next request when more pages exist; null on the last page.

Metadata describing the request and billing outcome.

metarequestId
string

Unique request identifier for tracing this API call.

min 1 chars

metacreditsCharged
integer

Credits charged for this request.

≥ 0

metaversion
string

Public API version that served the response.

one of: v1

Code example

curl "https://api.socialfetch.dev/v1/polymarket/users/0x93abbc022ce98d6f45d4444b594791cc4b7a9723/positions?status=open&limit=10" \
  -H "x-api-key: YOUR_API_KEY"

Responses

Polymarket user positions.