optionsPositions subscription, then request a snapshot with emitOptionsPositions.
Changes arrive as optionsPositionsDelta messages.
Positions Snapshot Request
Request
| Field | Type | Required | Description |
|---|---|---|---|
message | string | Yes | emitOptionsPositions |
content.clientRequestId | string | No | Client-generated UUID for correlation |
content.market | string | No | A contract name to filter, or ALL for every position |
content.pageSize | number | No | Page size for paginated results |
content.pageToken | string | No | Cursor for the next page |
Response
| Field | Type | Required | Description |
|---|---|---|---|
resultType | string | Yes | optionsPositions |
market | string | Yes | Contract name |
data.positions[].market | string | Yes | Contract name |
data.positions[].side | string | Yes | long or short |
data.positions[].optionType | string | Yes | call or put |
data.positions[].qty | string | Yes | Position quantity |
data.positions[].value | string | Yes | Position value |
data.positions[].entryPrice | string | Yes | Average entry price |
data.positions[].markPrice | string | Yes | Current mark price |
data.positions[].markIV | string | Yes | Mark implied volatility |
data.positions[].underlyingPrice | string | Yes | Underlying index price |
data.positions[].breakEvenPrice | string | Yes | Break-even price |
data.positions[].initialMargin | string | Yes | Initial margin (short positions; 0 for long) |
data.positions[].realizedPnl | string | Yes | Realized PnL |
data.positions[].unrealizedPnl | string | Yes | Unrealized PnL |
data.positions[].updatedAt | number | Yes | Last update (ms since epoch) |
data.statusCode | number | Yes | 200 |
data.clientRequestId | string | No | Client-generated UUID for correlation |
Position Updates
optionsPositionsDelta messages carry changed positions in the same shape under
data.positions.