# List Positions

> Returns position history for the authenticated user

Source: /trader/api/history/position-history

## `GET /accounts/{account_id}/history/positions`

**List Positions**

Returns position history for the authenticated user

Tags: `History`

#### Path parameters

- `account_id` (string) (required) — Account ID to fetch position history for

#### Query parameters

- `from` (string) — From date created to fetch position history for
- `to` (string) (required) — To date created to fetch position history for


### Responses

#### `200` — Successfully retrieved position history

**Content-Type:** `application/json`

- `positions` (array) (required)
  - items:
    - `id` (string) (required) — Position identifier
    - `symbol_id` (string) (required) — Trading symbol identifier
    - `account_id` (string) (required) — Account identifier
    - `order_id` (string) — Opening order identifier
    - `symbol_name` (string) (required) — Symbol display name
    - `open_price` (number) (required) — Position opening price
    - `close_price` (number) (required) — Position closing price (if closed)
    - `side` (string) (required) — Trade side (buy/sell)
      - enum: `TRADE_SIDE_UNSPECIFIED`, `TRADE_SIDE_BUY`, `TRADE_SIDE_SELL`
    - `status` (string) (required)
      - enum: `POSITION_STATUS_UNSPECIFIED`, `POSITION_STATUS_OPEN`, `POSITION_STATUS_CLOSED`, `POSITION_STATUS_CANCELLED`
    - `is_closing` (boolean) — Whether this order closes a position. e.g. stop loss or take profit
    - `commission` (number) (required) — Commission charged for the position
    - `swap` (number) (required) — Swap charges
    - `profit` (number) (required) — Current profit/loss
    - `units` (number) (required) — Position size in units
    - `qty` (number) (required) — Position quantity in lots
    - `qty_closed` (number) — Quantity already closed
    - `comment` (string) — Position comment
    - `created_at` (string) — Position creation timestamp
    - `updated_at` (string) — Position last update timestamp
    - `funding_accrued` (number) — Cumulative funding charges accrued on this position (account currency)

#### `400` — Bad request (missing or invalid account_id)

**Content-Type:** `application/json`

- `error` (object) (required)
  - `type` (string) (required) — Error type code
  - `message` (string) (required) — Human-readable error message
  - `field` (string) — Field name if error is field-specific

#### `401` — Unauthorized (invalid or missing JWT token)

**Content-Type:** `application/json`



#### `403` — Forbidden (account access denied)

**Content-Type:** `application/json`



#### `404` — Account not found

**Content-Type:** `application/json`



#### `500` — Internal server error

**Content-Type:** `application/json`



