Submit Iceberg Order
Submit a new Iceberg order for execution.
This operation uses the same OpenAPI endpoint as Smart Balance. Set
portfolioTypetoICEBERGand provideicebergTrade.
Endpoint
POST /tt/themis-broker/openapi/portfolios/submit
Authentication: HMAC apiKey signature via REST headers. See Authentication.
Parameters
Top-level fields — the request body is flat, with no envelope.
| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | long | true | Reality account ID |
| portfolioType | string | true | Must be ICEBERG |
| strategy | string | false | Free-text strategy label |
| icebergTrade | object | true | Iceberg slicing and timeout configuration (see below) |
| legs | array | true | Array containing exactly 1 Leg object; Iceberg does not support multiple legs |
| customizedNote | string | false | Maximum 100 characters |
| sendToDummyAccountIds | array | false | Array of long account IDs to mirror the order to |
icebergTradefields — required whenportfolioType = ICEBERG.
| Parameter | Type | Required | Description |
|---|---|---|---|
| parts | int | one of parts/eachQuantity | Number of slices; must be greater than 0 |
| eachQuantity | decimal | one of parts/eachQuantity | Quantity per slice; must be greater than 0 |
| totalLimitMs | long | true | Total time limit in milliseconds; 0 disables the total timeout |
| totalEndAction | int | false | 1 CANCEL_REMAINING / 2 FILL_REMAINING_BY_MARKET; default 1 |
Provide exactly one of
partsoreachQuantity. Providing both, or neither, is invalid.
legs[].Leg— the single leg of the order.
| Parameter | Type | Required | Description |
|---|---|---|---|
| instrument | string | true | Exchange symbol |
| instrumentType | string | true | OPTION / PERPETUAL / DELIVERY_FUTURES / SPOT |
| side | int | true | 1 BUY / 2 SELL |
| quantity | decimal | true | Total order quantity before slicing |
| priceOptions | object | true | Price configuration (see below) |
| priceSnapshot | array | false | Reference prices captured at submit time for audit |
| timeInForce | int | false | 1 GTC / 2 IOC / 3 FOK / 4 GTD |
| postOnly | boolean | false | Default false |
| reduceOnly | boolean | false | Default false |
| hidden | boolean | false | Default false |
| tradeMode | int | false | 1 CASH / 2 CROSS / 3 ISOLATED |
| positionSide | int | false | 1 LONG / 2 SHORT / 3 NET |
| hedge | boolean | false | Hedge flag; default false |
priceOptions— nested under the leg.
| Parameter | Type | Required | Description |
|---|---|---|---|
| priceType | string | true | LIMIT / MARKET / DYNAMIC |
| price | decimal | when priceType=LIMIT or DYNAMIC | Order price |
| priceIn | string | when priceType=LIMIT or DYNAMIC | Price currency or IV, as supported by the instrument and exchange |
| dynamicPriceStrategy | string | when priceType=DYNAMIC | MID / MARK / MODEL / BID / ASK |
| dynamicPriceOffset | decimal | false | Offset applied to the dynamic reference; may be negative |
| dynamicMs | long | when dynamicPriceStrategy is provided | Reprice interval in milliseconds |
Request Example
POST /tt/themis-broker/openapi/portfolios/submit HTTP/1.1
Authorization: Bearer <api-key>
Signalplus-API-Timestamp: 1776665215780
Signalplus-API-Nonce: e43b0618-6965-4b0b-a62d-a3a4f78eed52
Signalplus-API-Signature: <base64 hmac>
Content-Type: application/json
{
"accountId": 10003443,
"portfolioType": "ICEBERG",
"strategy": "Iceberg",
"customizedNote": "five-slice iceberg order",
"icebergTrade": {
"parts": 5,
"totalLimitMs": 600000,
"totalEndAction": 1
},
"legs": [
{
"instrument": "BTC-25DEC26-40000-P",
"instrumentType": "OPTION",
"side": 1,
"quantity": 10,
"priceOptions": {
"priceType": "LIMIT",
"price": 0.031,
"priceIn": "BTC",
"dynamicPriceStrategy": null,
"dynamicPriceOffset": null,
"dynamicMs": null
},
"priceSnapshot": [],
"timeInForce": 1,
"postOnly": false,
"reduceOnly": false,
"tradeMode": 2,
"positionSide": 3
}
]
}
Response Example
{
"succ": true,
"code": 0,
"message": "",
"value": {
"portfolioId": 144115188955249274
}
}
Response
| Name | Type | Description |
|---|---|---|
| portfolioId | long | Newly created portfolio ID; use this for /info, /cancel, and WebSocket correlation |