---
title: "Request Model Positions"
method: POST
path: "/fa/model/positions"
tags: ["tradingFaAllocationManagement"]
---

# Request Model Positions

`POST /fa/model/positions`

Request all positions held within the model.

## Request body

- object
  - `reqID` integer — Request identifier to uniquely track a request.
  - `model` string — Name of your model.
  - `sortField` 'actual' | 'actualRangeMax' | 'actualRangeMin' | 'ccy' | 'conid' | 'dlv' | 'instrumentImbalance' | 'instrument' | 'mismatchType' | 'mv' | 'position' | 'target' — Field to sort the response by. * `actual` - Current actual model allocation for the instrument. * `actualRangeMax` - Maximum actual model allocation allowed for the instrument. * `actualRangeMin` - Minimum actual model allocation allowed for the instrument. * `ccy` - Currency of the instrument. * `conid` - Contract identifier, or conid. * `dlv` - Market value. * `instrumentImbalance` - How far an instrument's actual allocation is from its model. * `instrument` - Symbol of the security. * `mv` - Market value of the model position. * `position` - Number of shares held by the model. * `target` - Target percentage of an instrument held within a model.
  - `sortDirection` 'ASC' | 'DESC' — Direction to sort the request by. * `ASC` - Sort from greatest to smallest. * `DESC` - Sort from smallest to greatest.
  - `limit` integer — Maximum number of positions to return.

## Response `200`

Successfully retrieve position details

- ModelPositionResponse
  - `cash` ModelPositionResponseCashItems[] — An object representing each currency held in the model.
    - `actual` number, double — Actual percent of the model held in the postion.
    - `ccy` string — Currency symbol.
    - `exchangeRate` number, double — Exchange rate of the account base currency to the model base currency.
    - `instrumentImbalance` number, double — Describes the percentage of imbalance of the actual allocation from the model.
    - `mv` number, double — Market value of the position.
    - `target` number, double — Target percentage of the model to hold in the position.
  - `mismatched` boolean — Notes if the Actual allocation has become misalligned with the Target.
  - `model` string — Name of the model.
  - `nlv` number, double — Market value of the model.
  - `positionList` ModelPositionResponsePositionListItems[] — List of object containing each equity in the model.
    - `actual` number, double — Actual percent of the model held in the postion.
    - `actualRangeMax` number, double — Maximum accepted tolerance above the target.
    - `actualRangeMin` number, double — Minimum accepted tolerance below the target.
    - `ccy` string — Currency symbol.
    - `conid` integer — Contract identifier for the instrument.
    - `dlv` number, double — Displayed liquidation value.
    - `exchangeRate` integer — Used internally for client portal. Should be ignored.
    - `flags` integer — Used internally for client portal. Should be ignored.
    - `instrumentImbalance` number, double — Describes the percentage of imbalance of the actual allocation from the model.
    - `instrument` string — Symbol of the position.
    - `mismatchType` number, double — Used internally for client portal. Should be ignored.
    - `mv` number, double — Market Value.
    - `position` number, double — The total size of the position held in the model.
    - `target` number, double — The desired allocation percentage of the position in the model.
  - `positionTs` integer — Epoch timestamp when the position was retrieved.
  - `reqID` integer — Request identifier to uniquely track a request.
  - `stkOnly` boolean — Describes if the model contains only stocks.
  - `subscriptionStatus` integer — Describes if the model is in polling mode.
  - `totalDlv` number, double — Diplayed total liquidation value of the model.
  - `totalMv` number, double — Market value of the entire position.

## Other responses

- `401` — Missing, invalid, or unparseable Authorization token.
- `500` — internal server error, returned when incoming request cannot be processed. It can sometimes include subset of bad requests. For example, wrong accountId passed and it can only be detected later in handling request. Error contains reason of the problem.
- `503` — service is unavailable. For example if request takes more than 10s due to some internal service unavailability, request aborted and this status returned

---

[API](https://skmtc.net/interactivebrokers/apis/api-reference.md) · [All operations](https://skmtc.net/interactivebrokers/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/interactivebrokers/api-reference/revisions/67f9f562c2c6/schema)
