Get wallet open positions

/v4/data/prediction/wallets/{address}/positions

100 credits per API call

Current open positions held by a wallet — one row per outcome token, with unrealised PnL, current value, lifetime cost basis, and the parent market's question, slug and outcome metadata. Useful for "what's in my portfolio right now" views and per-market drill-downs.

Platform support

  • Polymarket only. Kalshi wallets return 400.

Filtering, sorting and pagination

  • market scopes the response to a comma-separated list of condition ids (0x + 64 hex), up to 50 entries.
  • eventId scopes the response to a comma-separated list of Polymarket numeric event ids, up to 50 entries. Mutually exclusive with market — passing both returns 400.
  • sizeThreshold filters out positions smaller than the given size. Defaults to 1; pass 0 to include dust.
  • redeemable=true returns positions on resolved markets that the wallet has won but has not yet redeemed. mergeable=true returns positions eligible for merging back to USDC. Both default to false.
  • sortBy accepts CURRENT, INITIAL, TOKENS, CASHPNL, PERCENTPNL, TITLE, RESOLVING, PRICE, AVGPRICE. Defaults to TOKENS. Combine with sortDirection (ASC / DESC, defaults to DESC).
  • title filters by a substring of the market question.
  • Pagination is offset-based — limit (1..500, default 100) and offset (0..10000, default 0).

Other notes

  • address is normalised to lowercase before being echoed in the response (every row's proxyWallet).
  • negativeRisk indicates whether the parent market is part of Polymarket's negative-risk grouping (e.g. multi-candidate winner-take-all markets).
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

Wallet address (0x + 40 hex). Kalshi addresses return 400.

Query Params
string

Comma-separated list of condition ids (0x + 64 hex) to scope the response to. Up to 50 entries. Mutually exclusive with eventId.

string

Comma-separated list of Polymarket numeric event ids to scope the response to. Up to 50 entries. Mutually exclusive with market.

number
≥ 0
Defaults to 1

Minimum position size to include. Defaults to 1; pass 0 to include dust positions.

boolean
Defaults to false

When true, returns positions on resolved markets that the wallet has won but has not yet redeemed. Defaults to false.

boolean
Defaults to false

When true, returns positions eligible for merging back to USDC. Defaults to false.

string
enum

Sort key. Defaults to TOKENS.

string
enum

Sort direction. Defaults to DESC.

Allowed:
string
length ≤ 100

Filter rows where the market question contains this substring.

integer
1 to 500
Defaults to 100

Page size. Defaults to 100.

integer
0 to 10000
Defaults to 0

Page offset. Defaults to 0.

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json