Skip to main content

Order updates

Real-time order state updates. Requires authentication.

Subscribe

{"op": "subscribe", "args": ["orders"]}

Topic format: orders (per-account, not per-symbol).

Update Message

Pushed on each order state change. Each message is a full replacement of the order state — there are no partial deltas.

{
"channel": "orders",
"type": "update",
"code": "f1e2d3c4-b5a6-7890-fedc-ba9876543210",
"customer_code": "c1d2e3f4-a5b6-7890-cdef-123456789abc",
"symbol": "BTCUSDC_PERP",
"action": "buy",
"order_type": "limit",
"status": "filled",
"amount": "100",
"filled_amount": "100",
"limit_price": "67500.00",
"stop_loss_price": null,
"take_profit_price": null,
"average_fill_price": "67498.50",
"time_in_force": "GTC",
"expire_time": null,
"reference_id": "my-order-001",
"reason": null,
"timestamp": "2025-06-15T07:30:01.456Z"
}
FieldDescription
codeUnique order identifier
customer_codeCustomer identifier
symbolInstrument symbol
actionbuy or sell
order_typemarket, limit, stop_market, stop_limit, or take_profit_stop_loss
statusopen, canceled_partially_filled, filled, canceled, expired, or rejected
amountOriginal order amount in contracts
filled_amountCumulative filled amount
limit_priceLimit price (null for market orders)
trigger_priceTrigger price (null for non-stop orders)
stop_loss_priceStop-loss trigger price (null for non-TakeProfitStopLoss orders)
take_profit_priceTake-profit trigger price (null for non-TakeProfitStopLoss orders)
average_fill_priceVolume-weighted average fill price (null if no fills)
time_in_forceGTC, IOC, FOK, or GTD
expire_timeExpiration time for GTD orders
reference_idClient-assigned order identifier
reasonRejection or cancellation reason
timestampServer-side event time (maps to updated in REST)

Notes:

  • There is no initial snapshot on subscribe — use REST GET /orders for current state.
  • order_type corresponds to type in the REST Order schema (renamed to avoid collision with the message type field).
  • timestamp corresponds to updated in the REST Order schema.