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

# List positions

> Query open positions for a verified account.

## What this operation does

Use offset from 0 and total from 1 to 1000 (100 by default). Traverse all pages and keep the Position ticket for closing orders.

## Response fields

A successful response contains only `retcode` and an `answer` array.
Each position allows only these fields: `Position`, `Symbol`, `Action`, `TimeCreate`, `PriceOpen`, `PriceCurrent`, `PriceSL`, `PriceTP`, `Volume`, `Profit`, `Storage`.

Additional MT5 fields are excluded. Received values and types are preserved;
missing fields are omitted. With no positions, `answer` is `[]`.
`TimeCreate` and `TimeUpdate` are Unix timestamps in seconds; their `Msc`
variants use milliseconds. Errors retain their usual format.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "retcode": "0 Done",
  "answer": [
    {
      "Position": "82313217",
      "Symbol": "XAUUSD",
      "Action": "1",
      "TimeCreate": "1790252238",
      "PriceOpen": "4269.64",
      "PriceCurrent": "4151.76",
      "PriceSL": "0.00",
      "PriceTP": "0.00",
      "Volume": "10000",
      "Profit": "11788.00",
      "Storage": "-260.88"
    }
  ]
}
```

## Complete workflow

See [the step-by-step guide](/accounts) and [errors and their handling](/errors).

Playground values are examples. Replace the account, symbol, volume, and price with valid data for your integration.


## OpenAPI

````yaml openapi.json GET /api/v1/accounts/{login}/positions
openapi: 3.1.0
info:
  title: MT5 API — Partner Portal
  description: >-
    Secure endpoints for account ownership verification, market data, and
    trading on previously verified accounts.
  version: 0.1.0
servers:
  - url: https://api-trading.vexprofx.com
    description: API Trading · Partners
security: []
paths:
  /api/v1/accounts/{login}/positions:
    get:
      tags:
        - Positions
      summary: List open positions
      operationId: positions_api_v1_accounts__login__positions_get
      parameters:
        - name: login
          in: path
          required: true
          schema:
            type: integer
            title: Login
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            default: 0
            title: Offset
        - name: total
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000
            minimum: 1
            default: 100
            title: Total
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PositionsResponse'
        '422':
          description: Invalid request or incompatible closing parameters.
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    type: string
              example:
                detail: Invalid request
      security:
        - HTTPBearer: []
components:
  schemas:
    PositionsResponse:
      properties:
        retcode:
          type: string
          title: Retcode
        answer:
          items:
            $ref: '#/components/schemas/PositionData'
          type: array
          title: Answer
      additionalProperties: false
      type: object
      required:
        - retcode
        - answer
      title: PositionsResponse
    PositionData:
      properties:
        Position:
          anyOf:
            - type: string
            - type: integer
            - type: 'null'
          title: Position
        Symbol:
          anyOf:
            - type: string
            - type: 'null'
          title: Symbol
        Action:
          anyOf:
            - type: string
            - type: integer
            - type: 'null'
          title: Action
        TimeCreate:
          anyOf:
            - type: string
            - type: integer
            - type: 'null'
          title: Timecreate
        PriceOpen:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: 'null'
          title: Priceopen
        PriceCurrent:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: 'null'
          title: Pricecurrent
        PriceSL:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: 'null'
          title: Pricesl
        PriceTP:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: 'null'
          title: Pricetp
        Volume:
          anyOf:
            - type: string
            - type: integer
            - type: 'null'
          title: Volume
        Profit:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: 'null'
          title: Profit
        Storage:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: 'null'
          title: Storage
      additionalProperties: false
      type: object
      title: PositionData
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer
      description: >-
        Send the provider-issued token in the Authorization header using Bearer
        authentication.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.