Private WebSockets
Private data WebSocket
- All private data updates are realtime.
Establishing a WebSocket connection
- Getting private data from a single trading account.
- Connect to
/trading-api/v1/private-data?tradingAccountId=<id of the Trading Account> - For example, to subscribe to the
orderstopic, the following subscription message is sent:
{
"jsonrpc": "2.0",
"type": "command",
"method": "subscribe",
"params": {
"topic": "orders"
},
"id": "1611082473000"
}
- It is possible to subscribe to multiple topics with a single subscription message. For example, a topic of
assetAccounts+derivativesPositionsV2would subscribe to bothassetAccountsandderivativesPositionsV2
- Getting private data from multiple trading accounts.
- Connect to
/trading-api/v1/private-data - For example, to subscribe to the
orderstopic for each of your trading accounts, the following subscription message is sent for each trading account you wish to subscribe to:
{
"jsonrpc": "2.0",
"type": "command",
"method": "subscribe",
"params": {
"topic": "orders",
"tradingAccountId": "<Id of the Trading Account>"
},
"id": "1611082473000"
}
| Topic | Description | Data Type | Subscription Type |
|---|---|---|---|
| orders | Provides snapshot and updates on your orders. The snapshot will contain all open orders and the 20 most recent closed orders. | V1TAOrder | By <TOPIC> |
| trades | Provides snapshot and updates on your trades. The snapshot will contain the 20 most recent trades. | V1TATrade | By <TOPIC> |
Deprecated[more info] Provides snapshot and updates on assets in your account. | V1TASpotAccount | By <TOPIC> | |
| assetAccounts | Provides snapshot and updates on assets in your account. | V1TAAssetAccount | By <TOPIC> |
| tradingAccounts | Provides snapshot and updates on your trading account summary. | V1TATradingAccount | By <TOPIC> |
| heartbeat | Provides heartbeat updates for health check. | V1TAHeartbeat | By <TOPIC> |
Deprecated[Replaced by: derivativesPositionsV2] Provides derivative position information on your trading account. | V1TAPerpetualPosition | By <TOPIC> | |
| derivativesPositionsV2 | Provides derivative position information on your trading account. | V1TADerivativesPosition | By <TOPIC> |
| ammInstructions | Provides amm instructions update on your trading account. | V1TAAmmInstruction | By <TOPIC> |
| mmpTrigger | Provides snapshot and updates on your market maker protection trigger events. | V1TAMMPTrigger | By <TOPIC> |
| mmpRequest | Provides snapshot and updates on your market maker protection configurations. | V1TAMMPConfigRequest | By <TOPIC> |
Orders response
| Name | Type | Description |
|---|---|---|
| String | unique numeric (i64) identifier generated on the client side expressed as a string value Deprecatedto be remove towards the end of Q3 2024. Replaced by: clientOrderId | |
| clientOrderId | String | unique numeric (i64) identifier generated on the client side expressed as a string value |
| orderId | String | unique order id |
| symbol | String | market symbol |
| price | String | price, see asset value format |
| averageFillPrice | String | average fill price, see asset value format |
| stopPrice | String | stop price, see asset value format |
| Boolean | indicates if the order was allowed to borrow (does not indicate that borrowing occurred) Deprecatedto be remove towards the end of Q3 2024. Replaced by: allowBorrow | |
| allowBorrow | Boolean | indicates if the order was allowed to borrow (does not indicate that borrowing occurred) |
| quantity | String | quantity, see asset value format |
| quoteAmount | String | quote quantity deducted from asset account, see asset value format |
| quantityFilled | String | quantity filled, see asset value format |
| baseFee | String | base fee rate that will be charged upon trade execution, see asset value format |
| quoteFee | String | quote fee rate that will be charged upon trade execution, see asset value format |
| String | quantity borrowed, see asset value format - BUY order borrows quote, SELL order borrows base Deprecatedto be remove towards the end of Q3 2024. Replaced by: borrowedBaseQuantity & borrowedQuoteQuantity | |
| borrowedBaseQuantity | String | base quantity borrowed, see asset value format |
| borrowedQuoteQuantity | String | quote quantity borrowed, see asset value format |
| isLiquidation | Boolean | indicates if the order was executed as a liquidation order |
| side | String | order side |
| type | String | order type |
| timeInForce | String | time in force |
| status | String | order status |
| statusReason | String | status reason, describes why the order is in a specific state |
| statusReasonCode | Integer | status reason code, see details |
| createdAtDatetime | String | denotes the time the order was ACK'd by the exchange, ISO 8601 with millisecond as string |
| createdAtTimestamp | String | denotes the time the order was ACK'd by the exchange |
| publishedAtTimestamp | String | denotes the time the update was broadcasted to connected WebSockets |
{
"tradingAccountId": "1111",
"type": "snapshot",
"dataType": "V1TAOrder",
"data": [
{
"handle": null,
"orderId": "392883006043848705",
"symbol": "BTCUSD",
"price": "66858.2000",
"averageFillPrice": "66858.2000",
"stopPrice": null,
"margin": false,
"quantity": "2.00000000",
"quantityFilled": "2.00000000",
"quoteAmount": "23000.0000",
"baseFee": "0.00000000",
"quoteFee": "0.0005",
"side": "BUY",
"borrowedQuantity": "0.0010",
"isLiquidation": false,
"type": "LMT",
"timeInForce": "GTC",
"status": "CLOSED",
"statusReason": "Executed",
"statusReasonCode": 6002,
"createdAtDatetime": "2021-12-30T07:36:35.918Z",
"createdAtTimestamp": "1640849795918",
"publishedAtTimestamp": "1640849795920"
}
]
}
trades response
| Name | Type | Description |
|---|---|---|
| tradeId | String | unique trade id |
| orderId | String | unique order id |
| handle | String | unique numeric identifier (i64) generated on the client side expressed as a string value |
| symbol | String | market symbol |
| price | String | price, see asset value format |
| quantity | String | quantity, see asset value format |
| quoteAmount | String | quote quantity deducted from asset account, see asset value format |
| baseFee | String | base fee, see asset value format |
| quoteFee | String | quote fee, see asset value format |
| side | String | order side |
| tradeRebateAmount | String | amount of rebate that is credited to the user as part of the trade |
| tradeRebateAssetSymbol | String | symbol of the asset in which the rebate is paid |
| isTaker | Boolean | denotes whether this is a taker's trade |
| otcMatchId | String | unique OTC match id |
| otcTradeId | String | unique Bullish OTC trade id |
| clientOtcTradeId | String | unique client OTC trade id |
| createdAtDatetime | String | denotes the time the trade was executed by the exchange, ISO 8601 with millisecond as string |
| createdAtTimestamp | String | denotes the time the trade was executed by the exchange |
| publishedAtTimestamp | String | denotes the time the update was broadcasted to connected WebSockets |
{
"tradingAccountId": "1111",
"type": "snapshot",
"dataType": "V1TATrade",
"data": [
{
"tradeId": "100014000000000118",
"orderId": "392883006043848705",
"handle": "123456",
"symbol": "BTCUSD",
"price": "66858.2000",
"quantity": "2.00000000",
"quoteAmount": "23000.0000",
"baseFee": "0.00000000",
"quoteFee": "66.8582",
"side": "BUY",
"isTaker": false,
"tradeRebateAmount": "3.0000",
"tradeRebateAssetSymbol": "USDC",
"otcMatchId": "15",
"otcTradeId": "200014000000000118",
"clientOtcTradeId": "300014000000000118",
"createdAtDatetime": "2021-12-30T07:36:35.918Z",
"createdAtTimestamp": "1640849795918",
"publishedAtTimestamp": "1640849795920"
}
]
}
assetAccounts response
V1TAAssetAccountprovides a more granular view of the assets in your trading account compared toV1TASpotAccount.
| Name | Type | Description |
|---|---|---|
| tradingAccountId | String | id of the trading account |
| assetId | String | asset id |
| assetSymbol | String | asset symbol |
| availableQuantity | String | the assets that are available to use on the account, see asset value format |
| borrowedQuantity | String | the assets on the account that are borrowed, see asset value format |
| lockedQuantity | String | the assets on the account that are locked in orders, loans, and AMM instructions, see asset value format |
| loanedQuantity | String | the assets on the account that are being loaned, see asset value format |
| updatedAtDatetime | String | denotes the time the asset account was updated by the exchange, ISO 8601 with millisecond as string |
| updatedAtTimestamp | String | denotes the time the asset account was updated by the exchange |
| publishedAtTimestamp | String | denotes the time the update was broadcasted to connected WebSockets |
{
"tradingAccountId": "1111",
"type": "snapshot",
"dataType": "V1TAAssetAccount",
"data": [
{
"tradingAccountId": "1111",
"assetId": "1",
"assetSymbol": "BTC",
"availableQuantity": "4.00000000",
"borrowedQuantity": "20.00000000",
"lockedQuantity": "0.00000000",
"loanedQuantity": "10.00000000",
"updatedAtDatetime": "2021-12-30T07:36:35.918Z",
"updatedAtTimestamp": "1640849795918",
"publishedAtTimestamp": "1640849795920"
},
{
"tradingAccountId": "1111",
"assetId": "2",
"assetSymbol": "USD",
"availableQuantity": "229016.0734",
"borrowedQuantity": "20000.0000",
"lockedQuantity": "0.0000",
"loanedQuantity": "10000.0000",
"updatedAtDatetime": "2021-12-30T07:36:35.918Z",
"updatedAtTimestamp": "1640849795918",
"publishedAtTimestamp": "1640849795920"
}
]
}
tradingAccounts response
- Provides a summary of the total borrowed and total collateral values on the specific trading account id.
totalBorrowedQuantityandtotalCollateralQuantitydo not represent the absolute quantity of the borrowed assets and are notional values represented in the reference asset. snapshotcontains a list with a single entry corresponding to the trading account id specified in thetradingAccountIdquery parameter when opening the WebSocket connection.
| Name | Type | Description |
|---|---|---|
| tradingAccountId | String | id of the trading account |
| totalBorrowedQuantity | String | total borrowed across all assets in this trading account displayed in the reference asset |
| totalCollateralQuantity | String | total collateral across all assets in this trading account displayed in the reference asset |
| totalBorrowedUSD | String | total borrowed across all assets in this trading account displayed in USD |
| totalCollateralUSD | String | total collateral across all assets in this trading account displayed in USD |
| initialMarginUSD | String | The minimum margin one must maintain in order to be able to purposefully increase risk |
| warningMarginUSD | String | The minimum margin when the customer will receive warning via email/notifications over UI |
| liquidationMarginUSD | String | The minimum value of margin one must maintain in order to avoid liquidation |
| fullLiquidationMarginUSD | String | The value of margin when full liquidation occurs |
| endCustomerId | String | The end customer id used for self trade prevention (default is institution id, max 32 characters) |
| defaultedMarginUSD | String | The value of margin when this trading account will be moved into a Defaulted state |
| riskLimitUSD | String | The maximum allowed borrowing for this trading account displayed in USD |
| totalLiabilitiesUSD | String | The total liabilities for this trading account displayed in USD |
| maxInitialLeverage | String | The maximum initial leverage |
| isPrimaryAccount | String | Whether this trading account is the primary account |
| isBorrowing | String | Whether this trading account is borrowing any asset |
| isLending | String | Whether this trading account has any open loan offers |
| isDefaulted | String | Whether this trading account is in a defaulted state |
| String | Deprecated and no longer accurate. See tradeFeeRate at Get Trading Account instead | |
| String | Deprecated and no longer accurate. See tradeFeeRate at Get Trading Account instead | |
| referenceAssetSymbol | String | asset symbol |
| liquidityAddonUSD | String | Expected market impact of unwinding the portfolio in the case of a liquidation event |
| marketRiskUSD | String | The worst possible loss on the portfolio based on scenario analysis |
| marginProfile | Object | Contains the market risk multipliers applied to a trading account to derive the five individual Margin Requirement values |
| initialMarketRiskMultiplierPct | String | Market risk multiplier used to calculate initial margin requirement of the account |
| warningMarketRiskMultiplierPct | String | Market risk multiplier used to calculate warning margin requirement of the account |
| liquidationMarketRiskMultiplierPct | String | Market risk multiplier used to calculate liquidation margin requirement of the account |
| fullLiquidationMarketRiskMultiplierPct | String | Market risk multiplier used to calculate full liquidation margin requirement of the account |
| defaultedMarketRiskMultiplierPct | String | Market risk multiplier used to calculate defaulted margin requirement of the account |
| updatedAtDatetime | String | denotes the time the trading account was updated by the exchange, ISO 8601 with millisecond as string |
| updatedAtTimestamp | String | denotes the time the trading account was updated by the exchange |
| publishedAtTimestamp | String | denotes the time the update was broadcasted to connected WebSockets |
{
"tradingAccountId": "1111",
"type": "snapshot",
"dataType": "V1TATradingAccount",
"data": [
{
"tradingAccountId": "1111",
"totalBorrowedQuantity": "12000.0000",
"totalCollateralQuantity": "13000.0000",
"totalBorrowedUSD": "12000.0000",
"totalCollateralUSD": "13000.0000",
"referenceAssetSymbol": "USD",
"initialMarginUSD": "900000.0000",
"warningMarginUSD": "700000.0000",
"liquidationMarginUSD": "600000.0000",
"fullLiquidationMarginUSD": "500000.0000",
"endCustomerId": "PrimeBroker",
"defaultedMarginUSD": "300000.0000",
"riskLimitUSD": "1000000.0000",
"totalLiabilitiesUSD": "13000.0000",
"maxInitialLeverage": "3",
"isPrimaryAccount": true,
"isBorrowing": true,
"isLending": false,
"isDefaulted": false,
"takerFee": null,
"makerFee": null,
"liquidityAddonUSD": "100.0000",
"marketRiskUSD": "200.0000",
"marginProfile": {
"initialMarketRiskMultiplierPct": "200.00",
"warningMarketRiskMultiplierPct": "150.00",
"liquidationMarketRiskMultiplierPct": "100.00",
"fullLiquidationMarketRiskMultiplierPct": "75.00",
"defaultedMarketRiskMultiplierPct": "50.00"
},
"updatedAtDatetime": "2021-12-30T07:36:35.918Z",
"updatedAtTimestamp": "1640849795918",
"publishedAtTimestamp": "1640849795920"
}
]
}
Heartbeat response
- Provides heartbeat update every 30s as an indicator of platform healthiness. Please refer to the heartbeat section for the details.
| Name | Type | Description |
|---|---|---|
| sequenceNumber | String | sequence number of the heartbeat |
| createdAtTimestamp | String | time at which the heartbeat is generated |
{
"type": "update",
"dataType": "V1TAHeartbeat",
"data": [
{
"sequenceNumber": "3",
"createdAtTimestamp": "1611082473000"
}
]
}
Derivative position response
Deprecated: Topic derivativesPosition will be replaced by derivativesPositionV2
- Provide a detail view of the derivative position of each market.
| Name | Type | Description |
|---|---|---|
| tradingAccountId | String | id of the trading account |
| symbol | String | Market symbol, e.g. BTC-USDC-PERP |
| side | String | Side of the position |
| quantity | String | Current size of the position asset value format |
| notional | String | Notional value of the current position, calculated using the mark price |
| entryNotional | String | Notional value of the position, using the average entry price |
| mtmPnl | String | Sum of all mark-to-market profits and losses plus profits and losses realized from trading, accumulated since the last settlement |
| reportedMtmPnl | String | The profit/losses from the net price change since the last time the absolute quantity decreased. It is updated with every mark to market and is not updated during settlement or a position size increase |
| reportedFundingPnl | String | Sum of all funding payments received since the position was opened. This is updated every time funding is paid. |
| realizedPnl | String | Total profits realized since the trading account first opened this position. This is only updated every time a position's absolute quantity (aka size) is reduced. |
| createdAtDatetime | String | denotes the time the position was created by the exchange, ISO 8601 with millisecond as string |
| createdAtTimestamp | String | denotes the time the position was created by the exchange, number of milliseconds since EPOCH |
| updatedAtDatetime | String | denotes the time the position was updated by the exchange, ISO 8601 with millisecond as string |
| updatedAtTimestamp | String | denotes the time the position was updated by the exchange number of milliseconds since EPOCH |
| publishedAtTimestamp | String | denotes the time the update was broadcasted to connected WebSockets |
{
"tradingAccountId": "1111",
"type": "snapshot",
"dataType": "V1TAPerpetualPosition",
"data": [
{
"tradingAccountId": "111234567890",
"symbol": "BTC-USDC-PERP",
"side": "BUY",
"quantity": "1.00000000",
"notional": "30000.0000",
"entryNotional": "30000.0000",
"mtmPnl": "110.0000",
"reportedMtmPnl": "120.0000",
"reportedFundingPnl": "130.0000",
"realizedPnl": "140.0000",
"createdAtDatetime": "2020-01-01T00:00:00.000Z",
"createdAtTimestamp": "1577836800000",
"updatedAtDatetime": "2020-01-02T00:00:00.000Z",
"updatedAtTimestamp": "1577923200000",
"publishedAtTimestamp": "1577923300000"
}
]
}
Derivative position V2 response
- Provide a detail view of the derivative position of each market.
| Name | Type | Description |
|---|---|---|
| tradingAccountId | String | id of the trading account |
| symbol | String | Market symbol, e.g. BTC-USDC-PERP |
| side | String | Side of the position |
| quantity | String | Current size of the position asset value format |
| notional | String | Notional value of the current position, calculated using the mark price |
| entryNotional | String | Notional value of the position, using the average entry price |
| mtmPnl | String | Sum of all mark-to-market profits and losses plus profits and losses realized from trading, accumulated since the last settlement |
| reportedMtmPnl | String | The profit/losses from the net price change since the last time the absolute quantity decreased. It is updated with every mark to market and is not updated during settlement or a position size increase |
| reportedFundingPnl | String | Sum of all funding payments received since the position was opened. This is updated every time funding is paid. |
| realizedPnl | String | Total profits realized since the trading account first opened this position. This is only updated every time a position's absolute quantity (aka size) is reduced. |
| settlementAssetSymbol | String | Settlement asset symbol |
| eventType | String | Derivatives position update event types |
| createdAtDatetime | String | denotes the time the position was created by the exchange, ISO 8601 with millisecond as string |
| createdAtTimestamp | String | denotes the time the position was created by the exchange, number of milliseconds since EPOCH |
| updatedAtDatetime | String | denotes the time the position was updated by the exchange, ISO 8601 with millisecond as string |
| updatedAtTimestamp | String | denotes the time the position was updated by the exchange number of milliseconds since EPOCH |
| publishedAtTimestamp | String | denotes the time the update was broadcasted to connected WebSockets |
{
"tradingAccountId": "1111",
"type": "snapshot",
"dataType": "V1TADerivativesPosition",
"data": [
{
"tradingAccountId": "111234567890",
"symbol": "BTC-USDC-PERP",
"side": "BUY",
"quantity": "1.00000000",
"notional": "30000.0000",
"entryNotional": "30000.0000",
"mtmPnl": "110.0000",
"reportedMtmPnl": "120.0000",
"reportedFundingPnl": "130.0000",
"realizedPnl": "140.0000",
"settlementAssetSymbol": "USDC",
"eventType": "settlementUpdate",
"createdAtDatetime": "2020-01-01T00:00:00.000Z",
"createdAtTimestamp": "1577836800000",
"updatedAtDatetime": "2020-01-02T00:00:00.000Z",
"updatedAtTimestamp": "1577923200000",
"publishedAtTimestamp": "1577923300000"
}
]
}
ammInstruction response
- Provides
updatesof the active AMM instructions on the specific trading account id. - This topic does not provide
snapshot
| Name | Type | Description |
|---|---|---|
| tradingAccountId | String | id of the trading account |
| instructionId | String | unique AMM instruction id |
| symbol | String | market symbol |
| baseFee | String | base fee, see asset value format |
| quoteFee | String | quote fee, see asset value format |
| status | String | order status |
| statusReason | String | status reason, describes why the order is in a specific state |
| statusReasonCode | String | status reason code, see details |
| createdAtDatetime | String | denotes the time the order was ACK'd by the exchange, ISO 8601 with millisecond as string |
| createdAtTimestamp | String | denotes the time the order was ACK'd by the exchange |
| baseCurrentQuantity | String | amount of base asset this AMM instruction currently holds, only for AMM instruction with OPEN status |
| baseInvestQuantity | String | initial base investment |
| basePrice | String | current price of base asset |
| baseWithdrawQuantity | String | amount of base asset returned when AMM instruction is terminated |
| currentValue | String | value of assets (base and quote) in USD amount that this AMM instruction currently holds |
| feeTierId | String | unique fee tier id, see Get Market By Symbol |
| finalValue | String | value of assets (base and quote) in USD amount when AMM instruction was terminated, only for AMM instruction with CLOSED status |
| impermanentLoss | String | impermanent loss |
| liquidity | String | liquidity amount |
| lastDistributedPrice | String | (Perpetual market only) The price used at the time of settlement for AMM Instructions that can be used to determine mtmPnl and the actual Pnl |
| lowerBound | String | lower bound of price range, in quote currency |
| price | String | current price of AMM, see Get Tick By Symbol |
| quoteCurrentQuantity | String | amount of quote asset this AMM instruction currently holds, only for AMM instruction with OPEN status |
| quoteInvestQuantity | String | initial quote investment |
| quotePrice | String | current price of quote asset |
| quoteWithdrawQuantity | String | amount of quote asset returned when AMM instruction is terminated |
| requestID | String | unique request id |
| updatedAtDatetime | String | denotes the time the AMM instruction was updated by the exchange, ISO 8601 with millisecond as string |
| updatedAtTimestamp | String | denotes the time the AMM instruction was updated by the exchange |
| upperBound | String | upper bound of price range, in quote currency |
{
"tradingAccountId": "1111",
"type": "update",
"dataType": "V1TAAmmInstruction",
"data": [
{
"instructionId": "100",
"symbol": "BTCUSDC",
"baseFee": "1.00000000",
"quoteFee": "1.0000",
"status": "OPEN",
"statusReason": "Ok",
"statusReasonCode": "1001",
"createdAtDatetime": "2021-05-20T01:01:01.000Z",
"createdAtTimestamp": "1621490985000",
"baseCurrentQuantity": "0.00000000",
"baseInvestQuantity": "0.00000008",
"basePrice": "345.67000000",
"baseWithdrawQuantity": "0.00000010",
"currentValue": "0.0000",
"feeTierId": "1",
"finalValue": "0.0001",
"impermanentLoss": "0.0000",
"liquidity": "0.0001",
"lowerBound": "0.0013",
"price": "456.7800",
"quoteCurrentQuantity": "0.0000",
"quoteInvestQuantity": "0.0009",
"quotePrice": "1.0000",
"quoteWithdrawQuantity": "0.0011",
"lastDistributedPrice": null,
"requestId": "197735387747975680",
"updatedAtDatetime": "2021-05-20T01:01:01.000Z",
"updatedAtTimestamp": "1621490985000",
"upperBound": "14000.0000"
}
]
}
mmpTrigger response
| Name | Type | Description |
|---|---|---|
| tradingAccountId | String | id of the trading account |
| mmpTriggerId | String | unique MMP trigger id |
| underlyingAssetSymbol | String | underlying asset symbol |
| triggeredBy | String | trigger reason |
| frozenTimeInSecond | String | duration for which a market maker's trading activity is temporarily halted after a protective measure is triggered |
| frozenStartTime | String | start time of the MMP trigger in epoch milliseconds |
| frozenUntil | String | end time of the MMP trigger in epoch milliseconds |
{
"tradingAccountId": "111000000000000",
"type": "snapshot",
"dataType": "V1TAMMPTrigger",
"data": [
{
"mmpTriggerId": "100000000000000"
"tradingAccountId": "111000000000000",
"underlyingAssetSymbol": "BTC",
"triggeredBy": "Delta Limit",
"frozenTimeInSecond": "10",
"frozenStartTime": "1611082473000",
"frozenUntil": "1611082483000"
}
]
}
mmpRequest response
| Name | Type | Description |
|---|---|---|
| tradingAccountId | String | id of the trading account |
| requestId | String | id of the request |
| assetSymbol | String | underlying asset symbol |
| windowTimeInSecond | String | time window during which the MMP checks are conducted |
| frozenTimeInSecond | String | duration for which a market maker's trading activity is temporarily halted after a protective measure is triggered |
| quantityLimit | String | cap on the total number of contracts that a market maker can trade within windowTimeInSeconds |
| deltaLimit | String | net delta exposure that a market maker can accumulate within windowTimeInSeconds |
| status | String | status of the request |
| statusReason | String | status reason, describes why the request is in a specific state |
| isReset | String | boolean value that indicates if it was a set or reset MMP configuration request |
| createdAt | String | denotes the time the request was ACK'd by the exchange |
{
"tradingAccountId": "111000000000000",
"type": "snapshot",
"dataType": "V1TAMMPConfigRequest",
"data": [
{
"requestId": "1",
"tradingAccountId": "111000000000000",
"assetSymbol": "BTC",
"windowTimeInSecond": "10",
"frozenTimeInSecond": "10",
"quantityLimit": "1000",
"deltaLimit": "500",
"status": "CLOSED",
"statusReason": "Ok",
"isReset": "false",
"createdAt": "1611082473000"
}
]
}
See connect to private data WebSocket for a sample Python script.