Skip to main content
This stream provides your open option positions with mark price, margin, and PnL. Subscribe with the optionsPositions subscription, then request a snapshot with emitOptionsPositions. Changes arrive as optionsPositionsDelta messages.

Positions Snapshot Request

Request

{
  "message": "emitOptionsPositions",
  "content": {
    "clientRequestId": "b8c56794-c7f8-467d-b331-be8c765a5378",
    "market": "BTC-10JUL26-55000-C"
  }
}
FieldTypeRequiredDescription
messagestringYesemitOptionsPositions
content.clientRequestIdstringNoClient-generated UUID for correlation
content.marketstringNoA contract name to filter, or ALL for every position
content.pageSizenumberNoPage size for paginated results
content.pageTokenstringNoCursor for the next page

Response

{
  "resultType": "optionsPositions",
  "market": "BTC-10JUL26-55000-C",
  "data": {
    "positions": [
      {
        "market": "BTC-10JUL26-55000-C",
        "side": "long",
        "optionType": "call",
        "qty": "1",
        "value": "6948.86",
        "entryPrice": "6948.86",
        "markPrice": "7194.0717439",
        "markIV": "0.490087689370473",
        "underlyingPrice": "62142.5973392596",
        "breakEvenPrice": "61955.80886",
        "initialMargin": "0",
        "realizedPnl": "0",
        "unrealizedPnl": "245.2117439",
        "updatedAt": 1783079880460
      }
    ],
    "statusCode": 200,
    "clientRequestId": "b8c56794-c7f8-467d-b331-be8c765a5378"
  }
}
FieldTypeRequiredDescription
resultTypestringYesoptionsPositions
marketstringYesContract name
data.positions[].marketstringYesContract name
data.positions[].sidestringYeslong or short
data.positions[].optionTypestringYescall or put
data.positions[].qtystringYesPosition quantity
data.positions[].valuestringYesPosition value
data.positions[].entryPricestringYesAverage entry price
data.positions[].markPricestringYesCurrent mark price
data.positions[].markIVstringYesMark implied volatility
data.positions[].underlyingPricestringYesUnderlying index price
data.positions[].breakEvenPricestringYesBreak-even price
data.positions[].initialMarginstringYesInitial margin (short positions; 0 for long)
data.positions[].realizedPnlstringYesRealized PnL
data.positions[].unrealizedPnlstringYesUnrealized PnL
data.positions[].updatedAtnumberYesLast update (ms since epoch)
data.statusCodenumberYes200
data.clientRequestIdstringNoClient-generated UUID for correlation

Position Updates

optionsPositionsDelta messages carry changed positions in the same shape under data.positions.