Real-time push updates on individual trade executions for sub-orders generated by algo strategies. Each time a sub-order is filled (in full or partially), a message is pushed on the SUB_TRADE channel. Pushed automatically after login — no explicit subscription required.
Push Message
{
"channel": "SUB_TRADE",
"instId": "BINANCE_PERP_ETH_USDT",
"data": {
"transactionId": "1735613056931000",
"portfolioId": "1730798094087000",
"orderId": "1735613056910000",
"algoOrderId": "674712518659",
"clientOrderId": "2024123110441600",
"sym": "BINANCE_PERP_ETH_USDT",
"exchangeType": "BINANCE",
"businessType": "PERP",
"price": "3343.02",
"quantity": "0.01",
"tradingFee": "0.01170057",
"tradingFeeCoin": "USDT",
"side": "BUY",
"rpnl": "0",
"createAt": "1735613056931",
"execType": "TAKER"
}
}
| Field | Type | Description |
|---|---|---|
channel | String | Always SUB_TRADE. |
instId | String | Trading pair identifier. |
data | Object | Trade execution details. |
> transactionId | String | Unique transaction ID for this trade. |
> portfolioId | String | Portfolio ID the trade belongs to. |
> orderId | String | Sub-order ID that generated this trade. |
> algoOrderId | String | Parent algo order ID. |
> clientOrderId | String | Your own order ID, if provided. |
> sym | String | Trading pair. |
> exchangeType | String | Exchange: BINANCE or OKX. |
> businessType | String | SPOT, PERP, or MARGIN. |
> price | String | Execution price. |
> quantity | String | Quantity filled in this trade. OKX: number of contracts. Binance: coin amount. |
> tradingFee | String | Fee charged for this trade. Positive = taker fee. Negative = maker rebate. |
> tradingFeeCoin | String | Currency the fee was charged in. |
> side | String | BUY or SELL. |
> rpnl | String | Realized profit/loss from this trade. |
> createAt | String | Trade execution timestamp in milliseconds. |
> execType | String | TAKER or MAKER. |
