---
title: "Get FCM Positions"
method: GET
path: "/fcm/positions"
tags: ["fcm"]
---

# Get FCM Positions

`GET /fcm/positions`

Endpoint for FCM members to get market positions filtered by subtrader ID.
This endpoint requires FCM member access level and allows filtering positions by subtrader ID.

## Query parameters

- `subtrader_id` string, required
- `ticker` string
- `event_ticker` string
- `count_filter` string
- `settlement_status` 'all' | 'unsettled' | 'settled'
- `limit` integer
- `cursor` string

## Response `200`

Positions retrieved successfully

- GetPositionsResponse
  - `cursor` string — The Cursor represents a pointer to the next page of records in the pagination. Use the value returned here in the cursor query parameter for this end-point to get the next page containing limit records. An empty value of this field indicates there is no next page.
  - `market_positions` MarketPosition[], required — List of market positions
    - `ticker` string, required — Unique identifier for the market
    - `total_traded_dollars` string, required — US dollar amount as a fixed-point decimal string with up to 6 decimal places of precision. This is the maximum supported precision; valid quote intervals for a given market are constrained by that market's price level structure.
    - `position_fp` string, required — Fixed-point contract count string (2 decimals, e.g., "10.00"; referred to as "fp" in field names). Requests accept 0-2 decimal places (e.g., "10", "10.0", "10.00"); responses always emit 2 decimals. Fractional contract values (e.g., "2.50") are supported; the minimum granularity is 0.01 contracts.
    - `market_exposure_dollars` string, required — US dollar amount as a fixed-point decimal string with up to 6 decimal places of precision. This is the maximum supported precision; valid quote intervals for a given market are constrained by that market's price level structure.
    - `realized_pnl_dollars` string, required — US dollar amount as a fixed-point decimal string with up to 6 decimal places of precision. This is the maximum supported precision; valid quote intervals for a given market are constrained by that market's price level structure.
    - `fees_paid_dollars` string, required — US dollar amount as a fixed-point decimal string with up to 6 decimal places of precision. This is the maximum supported precision; valid quote intervals for a given market are constrained by that market's price level structure.
    - `last_updated_ts` string, date-time, required — Last time the position is updated
  - `event_positions` EventPosition[], required — List of event positions
    - `event_ticker` string, required — Unique identifier for events
    - `total_cost_dollars` string, required — US dollar amount as a fixed-point decimal string with up to 6 decimal places of precision. This is the maximum supported precision; valid quote intervals for a given market are constrained by that market's price level structure.
    - `total_cost_shares_fp` string, required — Fixed-point contract count string (2 decimals, e.g., "10.00"; referred to as "fp" in field names). Requests accept 0-2 decimal places (e.g., "10", "10.0", "10.00"); responses always emit 2 decimals. Fractional contract values (e.g., "2.50") are supported; the minimum granularity is 0.01 contracts.
    - `event_exposure_dollars` string, required — US dollar amount as a fixed-point decimal string with up to 6 decimal places of precision. This is the maximum supported precision; valid quote intervals for a given market are constrained by that market's price level structure.
    - `realized_pnl_dollars` string, required — US dollar amount as a fixed-point decimal string with up to 6 decimal places of precision. This is the maximum supported precision; valid quote intervals for a given market are constrained by that market's price level structure.
    - `fees_paid_dollars` string, required — US dollar amount as a fixed-point decimal string with up to 6 decimal places of precision. This is the maximum supported precision; valid quote intervals for a given market are constrained by that market's price level structure.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `404` — Not found
- `500` — Internal server error

---

[API](https://skmtc.net/kalshi/apis/kalshi-trade-api-manual-endpoints.md) · [All operations](https://skmtc.net/kalshi/apis/kalshi-trade-api-manual-endpoints/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kalshi/kalshi-trade-api-manual-endpoints/versions/6e6402bf667d/schema)
