---
title: "Get Positions"
method: GET
path: "/v1/accounts/{account_id}/positions"
tags: ["Positions"]
---

# Get Positions

`GET /v1/accounts/{account_id}/positions`

Retrieves all positions for the specified trading account.

## Path parameters

- `account_id` integer, required

## Query parameters

- `page_size` integer
- `page_token` string, byte — Base64URL-encoded pagination token
- `instrument_ids` string[]
- `sort_by` 'SYMBOL' | 'INSTRUMENT_TYPE' | 'QUANTITY' | 'MARKET_VALUE' | 'POSITION_TYPE' | 'UNREALIZED_PNL' | 'DAILY_UNREALIZED_PNL' | 'DAILY_REALIZED_PNL'
- `sort_direction` 'ASC' | 'DESC' — Sort direction sorted results

## Response `200`

List of positions

- object
  - `error` ApiError — A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required — The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required — A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required — Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable — Base64URL-encoded pagination token
    - `page_number` integer, nullable — Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable — Base64URL-encoded pagination token
    - `request_id` string, required — A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable — Total number of items available (not just in this page).
    - `total_pages` integer, nullable — Total number of pages available.
  - `data` Position[], required
    - `account_id` integer, required — The account this position belongs to
    - `available_quantity` string, required — The quantity of a position that is free to be operated on.
    - `avg_price` string, nullable — The average price paid per share or contract for this position When a null/undefined value is observed, it indicates that there is no available data.
    - `closing_price` string, nullable — The closing price used to value the position for the last trading day When a null/undefined value is observed, it indicates that there is no available data.
    - `closing_price_date` string, date, nullable — The market date associated with `closing_price` When a null/undefined value is observed, it indicates that there is no available data.
    - `cost_basis` string, nullable — The total cost basis for this position When a null/undefined value is observed, it indicates that there is no available data.
    - `daily_realized_pnl` string, nullable — The realized profit or loss for this position for the current day When a null/undefined value is observed, it indicates that there is no available data.
    - `daily_unrealized_pnl` string, nullable — The unrealized profit or loss for this position relative to the previous close When a null/undefined value is observed, it indicates that there is no available data.
    - `daily_unrealized_pnl_pct` string, nullable — The unrealized profit/loss for the position for the current day, expressed as a percentage of the baseline value (range: 0-100). When a null/undefined value is observed, it indicates that there is no available data.
    - `instrument_id` string, uuid, required — Unique instrument identifier
    - `instrument_price` string, nullable — The current market price of the instrument When a null/undefined value is observed, it indicates that there is no available data.
    - `instrument_type` 'COMMON_STOCK' | 'INDEX' | 'OPTION' | 'CASH', required — Security type
    - `market_value` string, required — The current market value of the position
    - `position_type` 'LONG' | 'SHORT', required — Position type classification
    - `quantity` string, required — The number of shares or contracts. Can be positive (long) or negative (short)
    - `symbol` string, required — The trading symbol for the instrument
    - `underlying_instrument_id` string, uuid, nullable — Identifier of the underlying instrument, when available When a null/undefined value is observed, it indicates it does not apply.
    - `unrealized_pnl` string, nullable — The total unrealized profit or loss for this position based on current market value When a null/undefined value is observed, it indicates that there is no available data.
    - `unrealized_pnl_pct` string, nullable — The unrealized profit/loss for the position, expressed as a percentage of the position's cost basis (range: 0-100). When a null/undefined value is observed, it indicates that there is no available data.

## Other responses

- `403` — Forbidden
- `500` — Internal server error

---

[API](https://skmtc.net/clear-street/apis/clear-street-trading-api.md) · [All operations](https://skmtc.net/clear-street/apis/clear-street-trading-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clear-street/clear-street-trading-api/revisions/80e6fb2644e0/schema)
