Trading
Stream real-time open orders, open and closed positions with live updates, PnL tracking, and order status monitoring
Get open orders
Connection
/frontoffice/ws/v4/account?access_token={YOUR_ACCESS_TOKEN}arguments array
The connection parameters.
In the first element, provide the accountId as a string.
invocationId string
The invocation identifier.
Must be unique and increase by 1 for each sent message.
target string
The stream name.
Specify "OpenOrders".
type int
The operation type.
Set to 4 to indicate a subscription to the stream.
{
"arguments": [
"67d0456f8c7b1108e4cf5d46"
],
"invocationId": "0",
"target": "OpenOrders",
"type": 4
}Message
type string
The operation type.
2 indicates the streaming is in progress.
invocationId string
The invocation identifier. Same as in the request.
item array of objects
The array of market objects.
item.marketId string
The market identifier, in the following format: {marketType}.{baseAssetId}_{quoteAssetId}, for example: cfd.eth_eur.
item.marketType string
The market type.
Possible values:
SpotCfdPerp
item.marketDisplayName string
The market ticker.
item.marketFullName string
The market full name or description (optional).
item.orderId string
The unique identifier of the order assigned by the system.
item.timeInForce string
The time-in-force policy for the order, controlling its lifetime.
Possible values:
GtcIocFokGtdDay
item.status string
The current order status.
Possible values:
StartedPendingWorking
item.source string
The source of the order.
Possible values:
Manual— the order was created manually via UI or API.
item.reason string
The reason for placing the order.
Possible values:
TraderStopOutMarketHaltedMarketDisabledTakeProfitStopLossAdmin
item.side string
The order side, indicating the direction of the trade.
Possible values:
BuySell
item.orderType string
The order type.
Possible values:
MarketLimit
item.requestedAmount decimal string
The quantity of the base asset to buy or sell. For market orders, this represents the total base amount to fill; the executed amount may be lower if liquidity is insufficient.
item.remainingAmount decimal string
The order amount that hasn't yet been filled, in the base asset.
item.requestedPrice decimal string
The limit price for Limit orders; null for Market orders.
item.executionPrice decimal string
The volume-weighted average price of the order executions.
item.createdAt dateTime
The timestamp when the order was created, in ISO 8601 format.
item.updatedAt dateTime
The timestamp of the most recent update to the order, in ISO 8601 format.
item.cancellationDate dateTime
The timestamp when the order was cancelled or expired, in ISO 8601 format; null if not cancelled.
item.commissionAssetId string
The currency in which the commission was held.
item.commissionAmount decimal string
The total commissions put on hold for executing the order.
item.leverage int
Applicable only to CFD markets.
The leverage ratio used when placing the order.
item.fillFactor decimal string
The proportion of the order amount filled so far, where 1 represents 100% fulfillment.
item.takeProfit decimal string
The Take Profit price, if set.
item.stopLoss decimal string
The Stop Loss price, if set.
{
"type": 2,
"invocationId": "0",
"item": [
{
"marketId": "cfd.eur_chf",
"marketType": "Cfd",
"marketDisplayName": "EUR/CHF",
"marketFullName": "",
"orderId": "01JVQBFSTVC40VK03A0AY7K016",
"timeInForce": "Gtc",
"status": "Pending",
"source": "Manual",
"reason": "Trader",
"side": "Buy",
"orderType": "Limit",
"requestedAmount": "10000",
"remainingAmount": "10000",
"requestedPrice": "0.9",
"executionPrice": "0",
"createdAt": "2025-05-20T17:22:31.899Z",
"updatedAt": "2025-05-20T17:22:31.9001213Z",
"cancellationDate": null,
"commissionAssetId": "eur",
"commissionAmount": "0",
"leverage": 1,
"fillFactor": "0",
"takeProfit": null,
"stopLoss": null
}
]
}Get open positions
Connection
/frontoffice/ws/v4/account?access_token={YOUR_ACCESS_TOKEN}arguments array
The connection parameters.
In the first element, provide the accountId as a string.
invocationId string
The invocation identifier.
Must be unique and increase by 1 for each sent message.
target string
The stream name.
Specify "OpenPositions".
type int
The operation type.
Set to 4 to indicate a subscription to the stream.
{
"arguments": [
"67d0456f8c7b1108e4cf5d46"
],
"invocationId": "0",
"target": "OpenPositions",
"type": 4
}Message
type string
The operation type.
2 indicates the streaming is in progress.
invocationId string
The invocation identifier. Same as in the request.
item object
The dataset object.
item.item array of objects
The array of position objects.
item.item.positionId string
The unique identifier of the position assigned by the system.
item.item.marketId string
The market identifier, in the following format: {marketType}.{baseAssetId}_{quoteAssetId}, for example: cfd.eth_eur.
item.item.marketType string
The market type.
Possible values:
SpotCfdPerp
item.item.marketDisplayName string
The market ticker.
item.item.marketFullName string
The market full name or description (optional).
item.item.createdAt dateTime
The timestamp when the position was opened, in ISO 8601 format.
item.item.updatedAt dateTime
The timestamp of the most recent update to the position, in ISO 8601 format.
item.item.side string
The position side. Possible values:
BuySell
item.item.status string
The current position status. Always "Open".
item.item.leverage int
Applicable only to CFD markets.
The leverage ratio used when opening the position.
item.item.positionLotAmount decimal string
The position volume, in lots.
item.item.positionPriceInRAT decimal string
The current position price, in conversion to RAT.
item.item.rateToRAT decimal string
The current exchange rate of a quote asset to RAT.
item.item.usedMarginInRAT decimal string
The amount of trader’s funds used for maintaining a position, in conversion to RAT.
item.item.openPrice decimal string
The volume-weighted average price (VWAP) at which the position was opened.
item.item.currentMarketPrice decimal string
The current market price of the base asset: bid for Long positions and ask for Short positions.
item.item.unrealizedPnlDayInRAT decimal string
The potential profit or loss earned for a current day, in conversion to RAT.
For Long positions, this value is calculated as Position size × (Current bid price – First bid price for today).
For Short positions, this value is calculated as Position size × (First ask price for today – Current ask price).
If a position was opened today, then the Open VWAP is used instead of the First price for today.
item.item.unrealizedPnlDayPercent decimal string
The potential profit or loss earned for a current day, in percents.
item.item.unrealizedPnlTotalInRAT decimal string
The potential profit or loss earned for the entire period from the moment the position was opened, in conversion to RAT.
For Long positions, this value is calculated as Position size × (Current bid price – Open VWAP).
For Short positions, this value is calculated as Position size × (Open VWAP – Current ask price).
item.item.unrealizedPnlTotalPercent decimal string
The potential profit or loss earned for the entire period from the moment the position was opened, in conversion to RAT, in percents.
item.item.takeProfit decimal string
The Take Profit price, if set.
item.item.stopLoss decimal string
The Stop Loss price, if set.
item.item.positionModifier string
The reason for the latest position update.
snapshot boolean
The data snapshot.
If snapshot: true, it indicates the message contains the full dataset. Subsequent messages with snapshot: false only include updates or changes since the initial snapshot.
{
"type": 2,
"invocationId": "0",
"item": {
"item": [
{
"positionId": "01JP4H3AMS7Q1H6Y6H3XJ52JTA",
"marketId": "cfd.eur_chf",
"marketType": "Cfd",
"marketDisplayName": "EUR/CHF",
"marketFullName": "",
"createdAt": "2025-03-12T06:36:31.257Z",
"updatedAt": "2025-03-12T06:36:31.257Z",
"side": "Buy",
"status": "Open",
"leverage": 1,
"positionLotAmount": "0.01",
"positionPriceInRAT": "1000.46",
"rateToRAT": "1.07",
"usedMarginInRAT": "1000.53",
"openPrice": "0.96304",
"currentMarketPrice": "0.93501",
"unrealizedPnlDayInRAT": "1.86",
"unrealizedPnlDayPercent": "0.0018",
"unrealizedPnlTotalInRAT": "-29.93",
"unrealizedPnlTotalPercent": "-0.0291",
"takeProfit": null,
"stopLoss": null,
"positionModifier": "Trader"
},
{
"positionId": "01JVQB9ZWJ6G4QV0P98X0QWNA7",
"marketId": "cfd.eur_chf",
"marketType": "Cfd",
"marketDisplayName": "EUR/CHF",
"marketFullName": "",
"createdAt": "2025-05-20T17:19:21.49Z",
"updatedAt": "2025-05-20T17:19:21.491321Z",
"side": "Buy",
"status": "Open",
"leverage": 100,
"positionLotAmount": "0.1",
"positionPriceInRAT": "10004.6",
"rateToRAT": "1.07",
"usedMarginInRAT": "100.06",
"openPrice": "0.93666",
"currentMarketPrice": "0.93501",
"unrealizedPnlDayInRAT": "18.61",
"unrealizedPnlDayPercent": "0.0018",
"unrealizedPnlTotalInRAT": "-17.02",
"unrealizedPnlTotalPercent": "-0.0017",
"takeProfit": null,
"stopLoss": null,
"positionModifier": "Trader"
}
],
"snapshot": false
}
}Get closed positions
Connection
arguments array
The connection parameters.
In the first element, provide the accountId as a string.
invocationId string
The invocation identifier.
Must be unique and increase by 1 for each sent message.
target string
The stream name.
Specify "ClosePositionsOrders".
type int
The operation type.
Set to 4 to indicate a subscription to the stream.
Message
type string
The operation type.
2 indicates the streaming is in progress.
invocationId string
The invocation identifier. Same as in the request.
item array of objects
The array of position objects.
item.marketId string
The market identifier, in the following format: {marketType}.{baseAssetId}_{quoteAssetId}, for example: cfd.eth_eur.
item.marketType string
The market type.
Possible values:
SpotCfdPerp
item.marketDisplayName string
The market ticker.
item.marketFullName string
The market full name or description (optional).
item.orderId string
The unique identifier of the order assigned by the system.
item.orderType string
The order type.
Possible values:
MarketLimit
item.timeInForce string
The time-in-force policy for the order, controlling its lifetime.
Possible values:
GtcIocFokGtdDay
item.side string
The order side, indicating the direction of the trade.
Possible values:
BuySell
item.positionCloseLotAmount decimal string
The closed volume, in lots, which is equivalent to the corresponding filled order volume.
item.reason string
The reason for position closing.
Possible values:
TraderStopOutMarketHaltedMarketDisabledTakeProfitStopLossAdmin
item.realizedPnlInRAT decimal string
The actual profit or loss earned, in conversion to RAT.
For Long positions, this value is calculated as Position size × (Close price – Open price).
For Short positions, this value is calculated as Position size × (Open price – Close price).
item.closedAt dateTime
The timestamp when the position was closed, in ISO 8601 format.
item.positionId string
The unique identifier of the position assigned by the system.
item.openPrice decimal string
The volume-weighted average price (VWAP) at which the position was opened.
item.closePrice decimal string
The volume-weighted average price (VWAP) of trades related to a position-closing order.
item.positionPriceInRAT decimal string
The position price, in conversion to RAT.
item.rateToRAT decimal string
The conversion rate to RAT.
item.openedAt dateTime
The timestamp when the position was opened, in ISO 8601 format.
Last updated

