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

# Get FCM Positions

`GET /fcm/positions`

## Request

- Base URL: `https://external-api.kalshi.com/trade-api/v2`
- URL: `https://external-api.kalshi.com/trade-api/v2/fcm/positions`
- Auth: API key in header `KALSHI-ACCESS-KEY` and API key in header `KALSHI-ACCESS-SIGNATURE` and API key in header `KALSHI-ACCESS-TIMESTAMP`

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.
API keys bound to a single FCM subtrader may also call this endpoint: `subtrader_id` may be
omitted and defaults to the key's bound subtrader, and if supplied it must equal the bound
subtrader or the request is rejected.

## Query parameters

- `subtrader_id` string
- `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
    - `exchange_index` integer, required: Identifier for an exchange shard.
    - `total_traded_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. 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: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
    - `realized_pnl_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
    - `fees_paid_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. 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: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. 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: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
    - `realized_pnl_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
    - `fees_paid_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden - the API key is bound to a different FCM subtrader
- `404`: Not found
- `500`: Internal server error

## Changes

- **2026-09-16** `75869bb35cb3`: 2 info
  - the `query` request parameter `subtrader_id` became optional
  - added the non-success response with the status `403`
- **2026-08-19** `87cbea53ccd8`: 1 info
  - added the required property `market_positions/items/exchange_index` to the response with the `200` status
- **2026-07-13** `a671b3e77f35`: 1 breaking
  - removed the required property `market_positions/items/resting_orders_count` from the response with the `200` status
- **2026-04-13** `218c1f661cbd`: 10 breaking, 2 info
  - removed the required property `event_positions/items/event_exposure` from the response with the `200` status
  - removed the required property `event_positions/items/fees_paid` from the response with the `200` status
  - removed the required property `event_positions/items/realized_pnl` from the response with the `200` status
  - removed the required property `event_positions/items/total_cost` from the response with the `200` status
  - …8 more
- **2026-01-26** `ea5437268cb9`: 2 info
  - added the required property `event_positions/items/total_cost_shares_fp` to the response with the `200` status
  - added the required property `market_positions/items/position_fp` to the response with the `200` status

[Operation history](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/changes/fcm/positions/get.md)

---

[API](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints.md) - [All operations](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/revisions/e6691cdd1915?raw)
