> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polynode.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Position History

> A wallet's perps positions over time — how each position changed, opened, or closed, with equity and PnL trajectory. Polymarket only returns a wallet's *current* portfolio; this is the accumulated history. Filter by `instrument` and time window (`after`/`before`). A read also captures a fresh snapshot when the latest is stale, so the current state is always included.

Follow one wallet's perps positions through time — how each position grew, shrank, opened, or closed, with the mark, notional, and unrealized PnL captured at each point. Filter to a single `instrument` and bound the window with `after` / `before`.

Polymarket returns only a wallet's *current* portfolio. This is the accumulated history of it, which exists nowhere else. Coverage begins when we started capturing (July 9, 2026) and grows continuously; each row carries its `snapshot_ts`. When you query, we also capture a fresh snapshot if the latest one is stale, so the current state is always part of what you get back.

Accepts either address form — profile address or signer — resolved automatically.


## OpenAPI

````yaml GET /v3/perps/wallets/{address}/positions/history
openapi: 3.1.0
info:
  title: PolyNode API
  description: >-
    Real-time Polymarket data API with decoded mempool settlements, OHLCV
    candles, and full Polygon JSON-RPC proxy.
  contact:
    name: PolyNode
    url: https://polynode.dev
  license:
    name: ''
  version: 2.0.0
servers:
  - url: https://api.polynode.dev
    description: Production
security:
  - api_key: []
paths:
  /v3/perps/wallets/{address}/positions/history:
    get:
      tags:
        - Perps
      summary: Position history
      description: >-
        A wallet's perps positions over time — how each position changed,
        opened, or closed, with equity and PnL trajectory. Polymarket only
        returns a wallet's *current* portfolio; this is the accumulated history.
        Filter by `instrument` and time window (`after`/`before`). A read also
        captures a fresh snapshot when the latest is stale, so the current state
        is always included.
      operationId: perps_positions_history
      parameters:
        - name: address
          in: path
          required: true
          description: >-
            Polymarket proxy wallet or signer EOA (`0x...`). Resolved
            automatically.
          schema:
            type: string
        - name: instrument
          in: query
          required: false
          description: Restrict to one instrument
          schema:
            type: string
        - name: after
          in: query
          required: false
          description: Only rows after this time (Unix s or ms)
          schema:
            type: integer
        - name: before
          in: query
          required: false
          description: Only rows before this time
          schema:
            type: integer
        - name: limit
          in: query
          required: false
          description: Max rows (default 500)
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                data:
                  - entry_price: '29618'
                    instrument_id: 4
                    mark_price: '29512'
                    notional: '785550.416000'
                    side: long
                    size: '26.6180'
                    snapshot_ts: 1783602532386
                    symbol: NAS100-USD
                    unrealized_pnl: '-2872.9108921767877465840364244'
                  - entry_price: '7467.5'
                    instrument_id: 1
                    mark_price: '7497.8'
                    notional: '1004045.393600'
                    side: short
                    size: '-133.91200'
                    snapshot_ts: 1783602532386
                    symbol: SP500-USD
                    unrealized_pnl: '-2324.0915037805232000'
                  - entry_price: '1780.9'
                    instrument_id: 7
                    mark_price: '1746'
                    notional: '25872.402600'
                    side: long
                    size: '14.8181'
                    snapshot_ts: 1783602532386
                    symbol: ETH-USD
                    unrealized_pnl: '-384.58514035658596514675578757'
                signer: '0x4f78dcb560f85bb028d6b75467c4bcb6412f8731'
components:
  securitySchemes:
    api_key:
      type: apiKey
      in: header
      name: x-api-key

````