---
title: "Get Wallet Positions"
method: GET
path: "/v2/polymarket/wallet/positions/{wallet}"
tags: ["polymarket"]
---

# Get Wallet Positions

`GET /v2/polymarket/wallet/positions/{wallet}`

Fetch current positions for a wallet address.

Returns all open positions with cost basis, current market prices, and P&L calculations.
Supports filtering by market_slug or condition_id.

## Path parameters

- `wallet` string, required — Wallet address to fetch positions for

## Query parameters

- `include_closed` boolean — Include zero-balance (closed) positions
- `min_shares` number — Minimum number of shares to include
- `market_slug` string, nullable — Filter by market slug
- `condition_id` string, nullable — Filter to a specific market by condition ID
- `sort_by` 'value' | 'unrealized_pnl' | 'realized_pnl' | 'cost' | 'avg_price' | 'current_price' | 'entry_date' — Sort options for positions.
- `order` 'asc' | 'desc' — Sort order direction enum.
- `limit` integer — Maximum number of positions to return (1-200)
- `pagination_key` string, nullable — Cursor for pagination

## Response `200`

Successful Response

- WalletPositionsResponse — Wallet positions endpoint response.
  - `wallet_address` string, required
  - `positions` Position[], required
    - `market` PositionMarketInfo, required — Market info for a position.
      - `condition_id` string, required
      - `market_slug` string, required
      - `title` string, required
      - `side` 'YES' | 'NO', required — Position side (YES/NO).
      - `side_label` string, required — Human-readable outcome label (e.g., 'Trump wins' instead of 'Yes')
      - `token_id` string, required
      - `status` 'open' | 'resolved_win' | 'resolved_loss', required — Market status for a position.
    - `position` PositionDetails, required — Position size and cost basis.
      - `shares` number, required — Number of shares currently held (0 for closed positions)
      - `total_shares_bought` number, required — DEPRECATED — approximate for positions fully closed and reopened at a different price. Use total_bought_usd for the exact lifetime buy total
      - `total_bought_usd` number — Total USD ever spent buying this position, lifetime cumulative (preserved even after redemption)
      - `avg_entry_price` number, required — Average entry price (0-1)
      - `total_cost_usd` number, required — Total cost basis in USD
      - `net_fees_usd` number — Net taker fees for this position (charged minus refunded, USD)
    - `current` PositionCurrentState, required — Current market state for a position.
      - `price` number, required — Current market price (0-1)
      - `value_usd` number, required — Current position value in USD
    - `pnl` PositionPnL, required — Profit and loss for a position.
      - `unrealized_usd` number, required — Unrealized P&L in USD
      - `unrealized_pct` number, required — Unrealized P&L as percentage
      - `realized_usd` number, required — Realized P&L in USD
  - `summary` PositionsSummary, required — Summary of all positions.
    - `total_positions` integer, required
    - `total_value_usd` number, required
    - `total_cost_usd` number, required
    - `total_unrealized_pnl_usd` number, required
    - `total_realized_pnl_usd` number, required
    - `win_rate` number, nullable
    - `winning_positions` integer, nullable
    - `losing_positions` integer, nullable
    - `fees_paid` number, nullable — Total taker fees paid (USD)
    - `fees_refunded` number, nullable — DEPRECATED: always 0. Refunds are already netted into fees_paid.
    - `net_fees` number, nullable — Net fees paid (same as fees_paid, which is already net of refunds)
  - `pagination` CursorPagination, required — Cursor-based pagination for endpoints that don't support offset.
    - `limit` integer, required — Requested limit
    - `count` integer, required — Number of items in current response
    - `pagination_key` string, nullable — Base64-encoded cursor for next page
    - `has_more` boolean, required — Whether there are more items available

## Other responses

- `400` — Bad Request
- `422` — Validation Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/predexon/apis/predexon-api.md) · [All operations](https://skmtc.net/predexon/apis/predexon-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/predexon/predexon-api/versions/80a306fbdb39/schema)
