Get Smart Balance Info

Query the current status and details of a Smart Balance portfolio, including all legs, fills, fees, and dynamic state.

Endpoint

GET /tt/themis-broker/openapi/portfolios/info

Authentication: HMAC apiKey signature via REST headers. See Authentication.

Parameters

Query string parameters.

Parameter Type Required Description
portfolioId long true Portfolio ID to query

Request Example

GET /tt/themis-broker/openapi/portfolios/info?portfolioId=144115188955249274 HTTP/1.1
Authorization: Bearer pkQJQ1
Signalplus-API-Timestamp: 1776665215780
Signalplus-API-Nonce: e43b0618-6965-4b0b-a62d-a3a4f78eed52
Signalplus-API-Signature: <base64 hmac>

Response Example

{
  "succ": true,
  "code": 0,
  "message": "",
  "value": {
    "uid": "13554298",
    "nickname": "tyx100681",
    "accountId": "10003443",
    "accountName": "rfq-test-01",
    "exchange": "DERIBIT",
    "portfolioId": "144115188955249274",
    "submitTimestamp": "1776668666388",
    "updateTimestamp": "1776668676325",
    "portfolioStatus": 2,
    "portfolioType": "BALANCE",
    "balanceTrade": {
      "parts": 3,
      "eachLimitMs": "15000",
      "totalLimitMs": "0",
      "totalEndAction": 2,
      "totalMs": "9937",
      "fees": [
        {"fee": "0.00053717", "defaultPvCcy": "BTC"}
      ]
    },
    "customizedNote": "themis openapi test",
    "lastEditedUid": "13554298",
    "legs": [
      {
        "legId": "216172783206681210",
        "side": 1,
        "instrument": "BTC-25DEC26-40000-P",
        "instrumentType": "OPTION",
        "legStatus": 2,
        "placeQuantity": "1.5",
        "quantityIn": "BTC",
        "placePriceOptions": {
          "priceType": "DYNAMIC",
          "priceIn": "IV",
          "price": "0.6",
          "dynamicPriceStrategy": "MARK",
          "dynamicPriceOffset": "0",
          "dynamicMs": "30000"
        },
        "priceSnapshot": [
          {"price": "2144.89", "priceIn": "USD", "placePrice": "2144.89", "placePriceIn": "USD"},
          {"price": "0.031", "priceIn": "BTC", "placePrice": "0.031", "placePriceIn": "BTC"},
          {"price": "0.6", "priceIn": "IV", "placePrice": "0.6", "placePriceIn": "IV"}
        ],
        "timeInForce": 1,
        "postOnly": false,
        "reduceOnly": false,
        "hidden": false,
        "pendingPrice": null,
        "filledAvgPrice": "0.155",
        "filledQuantity": "1.5",
        "remainingQuantity": "0",
        "cancelledQuantity": "0",
        "cancelType": null,
        "cancelledReason": null,
        "fee": "0.00045",
        "exOrderId": null,
        "forCcy": "BTC",
        "domCcy": "USD",
        "markCcy": "BTC",
        "notionalCcy": "BTC",
        "defaultPvCcy": "BTC",
        "tradeMode": null,
        "positionSide": null,
        "leverage": null,
        "updateTimestamp": "1776668678243",
        "comboLegs": []
      }
    ]
  }
}

Response

Top-level fields inside value.

Name Type Description
uid string User ID
nickname string User display name
accountId string Account ID (stringified long)
accountName string Account display name
exchange string DERIBIT
portfolioId string Portfolio ID (stringified long)
submitTimestamp string Submit time in ms
updateTimestamp string Last update time in ms
portfolioStatus int 1=PENDING/ACTIVE, 2=FILLED, 3=CANCELLED (see Enum Reference)
portfolioType string BALANCE
balanceTrade object Non-null when portfolioType = BALANCE; see below
customizedNote string User-supplied note at submit
lastEditedUid string UID of last editor
legs array Array of Leg objects; per-leg runtime state

balanceTrade fields.

Name Type Description
parts int Configured split count
eachLimitMs string Configured per-part time budget (ms)
totalLimitMs string Configured total time budget (ms); "0" disables
totalEndAction int 1=CANCEL_REMAINING / 2=FILL_BY_MARKET
totalMs string Actual elapsed ms — running value while in-flight, final value when terminal
fees array Aggregate fee per settlement ccy: [{fee, defaultPvCcy}, ...]

legs[].Leg fields — info-side shape.

Name Type Description
legId string Leg ID (stringified long)
side int 1=BUY / 2=SELL
instrument string Exchange symbol
instrumentType string OPTION / PERPETUAL / DELIVERY_FUTURES / SPOT
legStatus int 1=ACTIVE/PENDING, 2=FILLED, 3=CANCELLED, 4=CANCELLING
placeQuantity string Placed amount
quantityIn string Denomination currency
placePriceOptions object Nested price configuration; see below
priceSnapshot array [{price, priceIn, placePrice, placePriceIn}, ...] reference prices at submit
timeInForce int 1=GTC / 2=IOC / 3=FOK / 4=GTD
postOnly boolean
reduceOnly boolean
hidden boolean
pendingPrice string Current dynamic price (null if never repriced)
filledAvgPrice string Weighted average fill price
filledQuantity string Total filled
remainingQuantity string Unfilled quantity
cancelledQuantity string Cancelled quantity
cancelType int Non-null only when cancelled: 1=by system, 2=by user, 5=by no dynamic price
cancelledReason string Human-readable cancel reason
fee string Per-leg fee (denominated in defaultPvCcy)
exOrderId string Exchange-side order ID (may be null)
forCcy string Foreign currency
domCcy string Domestic currency
markCcy string Mark currency
notionalCcy string Notional currency
defaultPvCcy string Default PV currency
tradeMode int 1=CASH / 2=CROSS / 3=ISOLATED
positionSide int 1=LONG / 2=SHORT / 3=NET
leverage string Leverage multiplier
updateTimestamp string Leg last update time in ms
comboLegs array Combo sub-legs (empty for native legs)
priority boolean true if this leg is the priority (leading) leg that drives portfolio pacing; others follow by ratio. Absent or false otherwise
hedge boolean true if this leg is an auto-derived hedge leg (non-option leg in a mixed option+linear portfolio). Absent or false otherwise

placePriceOptions fields.

Name Type Description
priceType string LIMIT / MARKET / DYNAMIC
priceIn string USD / USDT / USDC / BTC / IV
price string Configured price
dynamicPriceStrategy string MID / MARK / MODEL / BID / ASK (non-null when priceType=DYNAMIC)
dynamicPriceOffset string Offset from dynamic reference
dynamicMs string Reprice interval in ms

Naming inconsistency across surfaces — the same conceptual "price config" is named differently:

  • Submit request body → leg.priceOptions

  • Info response → leg.placePriceOptions (this document)

  • WebSocket trade-news push → flat placePrice / placePriceIn / placePriceLabel directly on leg

Client mapping code must handle all three shapes.

results matching ""

    No results matching ""