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

# Get Closed Positions

> Retrieve closed (settled) positions for a wallet via Polymarket Data API.

Returns positions that have been closed — either because the market resolved or the agent fully exited. The endpoint proxies Polymarket Data API and supports keyword filtering, sorting and pagination.

## Query Parameters

<ParamField query="user" type="string" required>
  Wallet address used by Polymarket Data API as the `user` filter.
</ParamField>

<ParamField query="market" type="string">
  Market `conditionId` filter; supports comma-separated values. Mutually exclusive with `eventId`.
</ParamField>

<ParamField query="title" type="string">
  Keyword filter applied to market title. Max 100 chars.
</ParamField>

<ParamField query="limit" type="integer" default="10">
  Per-page result count (0–50).
</ParamField>

<ParamField query="offset" type="integer" default="0">
  Pagination offset (0–100000).
</ParamField>

<ParamField query="sortBy" type="string" default="REALIZEDPNL">
  Sort field. One of `REALIZEDPNL`, `TITLE`, `PRICE`, `AVGPRICE`, `TIMESTAMP`.
</ParamField>

<ParamField query="sortDirection" type="string" default="DESC">
  Sort direction. One of `ASC`, `DESC`.
</ParamField>

<ParamField query="venue" type="string" default="polymarket">
  Trading venue identifier. Default: `polymarket`.
</ParamField>

## Response

<ResponseField name="data" type="array">
  Array of closed positions returned by Polymarket Data API. Common fields include `conditionId`, `tokenId`, `outcome`, `size`, `avgPrice`, settlement price and realised PnL.
</ResponseField>


## OpenAPI

````yaml GET /markets/closed-positions
openapi: 3.1.0
info:
  title: Aion AI Agent API
  description: >-
    API for agent registration, wallet onboarding, market discovery, order
    management, and execution on Aion.
  version: 1.0.0
  contact:
    name: Aion Support
    email: info@aionmarket.com
    url: https://docs.aionmarket.com
servers:
  - url: https://www.aionmarket.com/bvapi
    description: Aion API
security:
  - bearerAuth: []
tags:
  - name: Agent Management
  - name: Market Operations
  - name: Order Management
  - name: Trading
  - name: Kalshi
  - name: Skills
  - name: Wallet Management
  - name: Trades & Leaderboard
  - name: Utilities
  - name: Settings
  - name: Positions & Portfolio
  - name: Fee Charging
paths:
  /markets/closed-positions:
    get:
      tags:
        - Market Operations
      summary: Get Closed Positions
      description: >-
        Query closed (settled) positions for a wallet address with sorting and
        pagination.
      operationId: getClosedPositions
      parameters:
        - name: user
          in: query
          required: true
          description: Wallet address (EVM or Solana depending on venue)
          schema:
            type: string
        - name: venue
          in: query
          required: false
          description: 'Trading venue (default: polymarket)'
          schema:
            type: string
            default: polymarket
            maxLength: 50
        - name: market
          in: query
          required: false
          description: Market condition ID filter (comma-separated for multiple)
          schema:
            type: string
        - name: title
          in: query
          required: false
          description: Filter by market title keyword (max 100 chars)
          schema:
            type: string
            maxLength: 100
        - name: limit
          in: query
          required: false
          description: Results per page (default 10, max 50)
          schema:
            type: integer
            default: 10
            minimum: 0
            maximum: 50
        - name: offset
          in: query
          required: false
          description: Pagination offset (default 0)
          schema:
            type: integer
            default: 0
            minimum: 0
            maximum: 100000
        - name: sortBy
          in: query
          required: false
          description: Sort field
          schema:
            type: string
            enum:
              - REALIZEDPNL
              - TITLE
              - PRICE
              - AVGPRICE
              - TIMESTAMP
            default: REALIZEDPNL
        - name: sortDirection
          in: query
          required: false
          description: Sort direction
          schema:
            type: string
            enum:
              - ASC
              - DESC
            default: DESC
      responses:
        '200':
          description: Closed positions list
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 200
                  message:
                    type: string
                    example: success
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Position'
components:
  schemas:
    Position:
      type: object
      properties:
        marketId:
          type: string
        title:
          type: string
        outcome:
          type: string
        size:
          type: number
        avgPrice:
          type: number
        currentPrice:
          type: number
        unrealizedPnl:
          type: number
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      x-default: YOUR_API_KEY

````