---
title: "List a Polymarket trader’s positions"
method: GET
path: "/v1/polymarket/user-positions"
tags: ["Polymarket"]
---

# List a Polymarket trader’s positions

`GET /v1/polymarket/user-positions`

## Request

- Base URL: `https://api.scrapeatlas.com`
- URL: `https://api.scrapeatlas.com/v1/polymarket/user-positions`
- Auth: API key in header `x-api-key`

List a trader’s positions with size, average and current price, value, cost and realized and unrealized PnL. Choose open, closed, redeemable, redeemable_lost or mergeable positions, sort them, and page with the returned cursor. Each successful request costs 1 account credit, including partial results. Failed requests cost 0 credits.

## Query parameters

- `user` string, required
- `status` 'open' | 'closed' | 'redeemable' | 'redeemable_lost' | 'mergeable'
- `sortBy` 'current_value' | 'price' | 'tokens' | 'unrealized_pnl' | 'realized_pnl' | 'total_pnl' | 'timestamp'
- `direction` 'asc' | 'desc'
- `limit` string
- `cursor` string

## Response `200`

Inspect the response status and failure or coverage fields.

- union
  - object
    - `requestId` string, uuid, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
    - `success` true, required
    - `status` 'success' | 'partial', required
    - `sourceUrl` string, uri, required
    - `fetchedAt` string, date-time, required
    - `coverage` object, required
      - `source` 'public_api', required
      - `complete` boolean, required
      - `warnings` string[], required
    - `wallet` string, required
    - `positions` object[], required
      - `proxy_wallet` string, required
      - `condition_id` string, required
      - `token_id` string, required
      - `title` string, required
      - `slug` string, required
      - `icon` string, required
      - `event_slug` string, required
      - `outcome` string, required
      - `outcome_index` integer, required
      - `event_id` string, required
      - `end_date` string, required
      - `opposite_outcome` string, required
      - `opposite_token_id` string, required
      - `status` string, required
      - `current_size` number, required
      - `total_size` number, required
      - `avg_price` number, required
      - `current_price` number, required
      - `current_value` number, required
      - `entry_cost_usdc` number, required
      - `entry_fees_usdc` number, required
      - `total_cost_usdc` number, required
      - `realized_pnl` number, required
      - `unrealized_pnl` number, required
      - `total_pnl` number, required
      - `percent_pnl` number, required
      - `percent_realized_pnl` number, required
      - `first_entry_at` integer, required
      - `last_event_at` integer, required
      - `redeemable` boolean, required
      - `mergeable` boolean, required
      - `negative_risk` boolean, required
      - `archived` boolean, required
      - `name` string, required
      - `profile_image` string, required
      - `verified` boolean, required
    - `nextCursor` string, nullable, required
  - object
    - `requestId` string, uuid, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
    - `success` false, required
    - `status` 'failed' | 'challenged', required
    - `failure` object, required
      - `code` 'invalid_request' | 'unauthorized' | 'not_found' | 'upstream_challenged' | 'upstream_rate_limited' | 'upstream_error' | 'unsupported_page' | 'response_too_large' | 'unsafe_redirect' | 'request_limit' | 'timeout' | 'busy' | 'payload_too_complex', required
      - `message` string, required

## Other responses

- `400`: Request could not complete; inspect error or failure.code.
- `401`: Request could not complete; inspect error or failure.code.
- `402`: Request could not complete; inspect error or failure.code.
- `403`: Request could not complete; inspect error or failure.code.
- `404`: Request could not complete; inspect error or failure.code.
- `408`: Request could not complete; inspect error or failure.code.
- `413`: Request could not complete; inspect error or failure.code.
- `429`: Request could not complete; inspect error or failure.code.
- `500`: Request could not complete; inspect error or failure.code.
- `502`: Request could not complete; inspect error or failure.code.
- `503`: Request could not complete; inspect error or failure.code.
- `504`: Request could not complete; inspect error or failure.code.

---

[API](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api.md) · [All operations](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api/revisions/9ba049316894?raw)
