Orders
Establish a WebSocket connection to get real-time updates for trade orders. Subscribe to live status updates for your trade orders, including individual fills for an order. Send messages when statuses update.
Header Params
-
Authorizationstring requiredBearer token for authorization
Body Params
object
Subscribe or unsubscribe to order events for a specific account.
Multiple subscriptions are supported on a single connection — send separate subscribe
messages for each accountId. Each subscribe/unsubscribe triggers a subscription_response
message confirming the outcome.
Behavior changes (previously silent, now explicit):
- Subscribing to an already-subscribed accountId returns status
already_subscribedinstead of being silently ignored. - Unsubscribing from an accountId that is not currently subscribed returns an error message instead of being silently ignored.
-
typestring enum requiredThe event type ("subscribe" or "unsubscribe")subscribeunsubscribe -
channelstring enum requiredThe subscription channel ("orders" for trade orders)orders -
accountIdstring requiredThe ID of the account
Responses
101
Switching Protocols. Once connected, the server may send:
WsTradeOrdersResponse — order events and subscription confirmations
WsSubscriptionResponse — confirmation after every subscribe/unsubscribe request
Switching Protocols. Once connected, the server may send:
WsTradeOrdersResponse— order events and subscription confirmationsWsSubscriptionResponse— confirmation after every subscribe/unsubscribe request
Response Body
ONE OF
- WsOrderCreated
- WsFillUpdated
- WsOrderCompleted
- WsOrderCanceled
- WsOrderError
- WsSubscriptionResponse
No matching variants
-
channelstringThe channel you are subscribed to. -
timestring date-time -
creationDatestring date-time -
completionDatestring date-time -
settleDatestring date-time -
scheduledDatestring date-timeDate to schedule the order. If not provided, the order will be placed immediately. -
lastFillDatestring date-time -
accountIdstringThe ID of the account -
clientOrderIdstringCustom order ID provided by the client. This must be a unique ID for each individual order and cannot be the same across multiple requests. Can be used to ensure idempotency of order requests. -
orderIdstringThe ID of the order. -
productstringProduct name. -
fundingTypestring enumThe funding type of the order.
- Funded orders will be placed using the Go account balance.
- Margin orders will be placed using the margin account balances. See our Trade Guide for more details on each funding type.
marginfunded -
statusstring enumpending_openopencompletedpending_cancelcancelederrorscheduled -
execTypestringThe type of update, using FIX 4.4 ExecType (tag 150) values. Use this field to distinguish order status updates from fill events.
F(Trade) — a fill occurred; checktradeId,fillQuantity,fillPricefor fill details0(New) — order accepted by the exchangeA(Pending New) — order submitted, awaiting acceptance6(Pending Cancel) — cancel request sent4(Canceled) — order canceled8(Rejected) — order rejected or internal failureI(Order Status) — terminal status summary (e.g. completed)
-
typestring enumThe type of order to be placed. See our Trade Guide for more details on each order type.markettwaplimitsteady_pacestop -
sidestring enumbuysell -
quantitystring decimalThe specified quantity. -
quantityCurrencystringThe specified quantity currency. -
cumulativeQuantitystring decimalThe total base quantity filled for the order. -
cumulativeQuoteQuantitystring decimalThe total quote quantity filled for the order. -
leavesQuantitystring decimalFor orders created with base currency, this field is set to the remaining unfilled base quantity.
- Only one of leavesQuantity or leavesQuoteQuantity will be set.
- This field is set to null for orders created with quote currency.
-
leavesQuoteQuantitystring decimalFor orders created with quote currency, this field is set to the remaining unfilled quote quantity.
- Only one of leavesQuantity or leavesQuoteQuantity will be set.
- This field is set to null for orders created with base currency.
-
averagePricestring decimalThe average price for the order's fills. -
tradeIdstringThe ID of the trade. -
fillQuantitystring decimalThe quantity of the fill for the trade. -
fillPricestring decimalThe price of the fill for the trade. -
sourcestringThe originating channel for the order.
api_fix— order placed via FIX 4.4 sessionapi_rest— order placed via REST API
-
triggerPricestring decimal nullableStop/trigger price for stop and stop-limit orders. Null for other order types. -
limitPricestring decimal nullableLimit price for limit, TWAP-with-limit, and SteadyPace-with-limit orders. Null when not set. -
timeInForcestring nullableTime-in-force (1GTC,3IOC,4FOK,6GTD). Null when not set. -
durationinteger nullableOrder duration in seconds for TWAP and SteadyPace orders. Null for other order types. -
twapIntervalinteger nullableTWAP slice interval in minutes whenisTimeSlicedis true. Null for non-TWAP orders and when not time-sliced. -
isTimeSlicedboolean nullableTWAP time-slicing flag. Null for non-TWAP orders. When true, usetwapInterval; when false,boundsControlmay be set instead. -
boundsControlstring nullableTWAP bounds control (narrow,standard,wide) for non-time-sliced TWAP orders. Null for time-sliced TWAP and non-TWAP orders. -
intervalinteger nullableSteadyPace interval length. Null for non-SteadyPace orders. -
intervalUnitstring nullableSteadyPace interval unit (second,minute,hour). Null for non-SteadyPace orders. -
subOrderSizestring decimal nullableSteadyPace sub-order size. Null for non-SteadyPace orders. -
variancestring decimal nullableOptional SteadyPace sub-order size variance (0–1). Null for non-SteadyPace orders.
-
channelstringThe channel you are subscribed to. -
timestring date-time -
creationDatestring date-time -
completionDatestring date-time -
settleDatestring date-time -
scheduledDatestring date-timeDate to schedule the order. If not provided, the order will be placed immediately. -
lastFillDatestring date-time -
accountIdstringThe ID of the account -
clientOrderIdstringCustom order ID provided by the client. This must be a unique ID for each individual order and cannot be the same across multiple requests. Can be used to ensure idempotency of order requests. -
orderIdstringThe ID of the order. -
productstringProduct name. -
fundingTypestring enumThe funding type of the order.
- Funded orders will be placed using the Go account balance.
- Margin orders will be placed using the margin account balances. See our Trade Guide for more details on each funding type.
marginfunded -
statusstring enumpending_openopencompletedpending_cancelcancelederrorscheduled -
execTypestringThe type of update, using FIX 4.4 ExecType (tag 150) values. Use this field to distinguish order status updates from fill events.
F(Trade) — a fill occurred; checktradeId,fillQuantity,fillPricefor fill details0(New) — order accepted by the exchangeA(Pending New) — order submitted, awaiting acceptance6(Pending Cancel) — cancel request sent4(Canceled) — order canceled8(Rejected) — order rejected or internal failureI(Order Status) — terminal status summary (e.g. completed)
-
typestring enumThe type of order to be placed. See our Trade Guide for more details on each order type.markettwaplimitsteady_pacestop -
sidestring enumbuysell -
quantitystring decimalThe specified quantity. -
quantityCurrencystringThe specified quantity currency. -
cumulativeQuantitystring decimalThe total base quantity filled for the order. -
cumulativeQuoteQuantitystring decimalThe total quote quantity filled for the order. -
leavesQuantitystring decimalFor orders created with base currency, this field is set to the remaining unfilled base quantity.
- Only one of leavesQuantity or leavesQuoteQuantity will be set.
- This field is set to null for orders created with quote currency.
-
leavesQuoteQuantitystring decimalFor orders created with quote currency, this field is set to the remaining unfilled quote quantity.
- Only one of leavesQuantity or leavesQuoteQuantity will be set.
- This field is set to null for orders created with base currency.
-
averagePricestring decimalThe average price for the order's fills. -
tradeIdstringThe ID of the trade. -
fillQuantitystring decimalThe quantity of the fill for the trade. -
fillPricestring decimalThe price of the fill for the trade. -
sourcestringThe originating channel for the order.
api_fix— order placed via FIX 4.4 sessionapi_rest— order placed via REST API
-
triggerPricestring decimal nullableStop/trigger price for stop and stop-limit orders. Null for other order types. -
limitPricestring decimal nullableLimit price for limit, TWAP-with-limit, and SteadyPace-with-limit orders. Null when not set. -
timeInForcestring nullableTime-in-force (1GTC,3IOC,4FOK,6GTD). Null when not set. -
durationinteger nullableOrder duration in seconds for TWAP and SteadyPace orders. Null for other order types. -
twapIntervalinteger nullableTWAP slice interval in minutes whenisTimeSlicedis true. Null for non-TWAP orders and when not time-sliced. -
isTimeSlicedboolean nullableTWAP time-slicing flag. Null for non-TWAP orders. When true, usetwapInterval; when false,boundsControlmay be set instead. -
boundsControlstring nullableTWAP bounds control (narrow,standard,wide) for non-time-sliced TWAP orders. Null for time-sliced TWAP and non-TWAP orders. -
intervalinteger nullableSteadyPace interval length. Null for non-SteadyPace orders. -
intervalUnitstring nullableSteadyPace interval unit (second,minute,hour). Null for non-SteadyPace orders. -
subOrderSizestring decimal nullableSteadyPace sub-order size. Null for non-SteadyPace orders. -
variancestring decimal nullableOptional SteadyPace sub-order size variance (0–1). Null for non-SteadyPace orders.
-
channelstringThe channel you are subscribed to. -
timestring date-time -
creationDatestring date-time -
completionDatestring date-time -
settleDatestring date-time -
scheduledDatestring date-timeDate to schedule the order. If not provided, the order will be placed immediately. -
lastFillDatestring date-time -
accountIdstringThe ID of the account -
clientOrderIdstringCustom order ID provided by the client. This must be a unique ID for each individual order and cannot be the same across multiple requests. Can be used to ensure idempotency of order requests. -
orderIdstringThe ID of the order. -
productstringProduct name. -
fundingTypestring enumThe funding type of the order.
- Funded orders will be placed using the Go account balance.
- Margin orders will be placed using the margin account balances. See our Trade Guide for more details on each funding type.
marginfunded -
statusstring enumpending_openopencompletedpending_cancelcancelederrorscheduled -
execTypestringThe type of update, using FIX 4.4 ExecType (tag 150) values. Use this field to distinguish order status updates from fill events.
F(Trade) — a fill occurred; checktradeId,fillQuantity,fillPricefor fill details0(New) — order accepted by the exchangeA(Pending New) — order submitted, awaiting acceptance6(Pending Cancel) — cancel request sent4(Canceled) — order canceled8(Rejected) — order rejected or internal failureI(Order Status) — terminal status summary (e.g. completed)
-
typestring enumThe type of order to be placed. See our Trade Guide for more details on each order type.markettwaplimitsteady_pacestop -
sidestring enumbuysell -
quantitystring decimalThe specified quantity. -
quantityCurrencystringThe specified quantity currency. -
cumulativeQuantitystring decimalThe total base quantity filled for the order. -
cumulativeQuoteQuantitystring decimalThe total quote quantity filled for the order. -
leavesQuantitystring decimalFor orders created with base currency, this field is set to the remaining unfilled base quantity.
- Only one of leavesQuantity or leavesQuoteQuantity will be set.
- This field is set to null for orders created with quote currency.
-
leavesQuoteQuantitystring decimalFor orders created with quote currency, this field is set to the remaining unfilled quote quantity.
- Only one of leavesQuantity or leavesQuoteQuantity will be set.
- This field is set to null for orders created with base currency.
-
averagePricestring decimalThe average price for the order's fills. -
tradeIdstringThe ID of the trade. -
fillQuantitystring decimalThe quantity of the fill for the trade. -
fillPricestring decimalThe price of the fill for the trade. -
sourcestringThe originating channel for the order.
api_fix— order placed via FIX 4.4 sessionapi_rest— order placed via REST API
-
triggerPricestring decimal nullableStop/trigger price for stop and stop-limit orders. Null for other order types. -
limitPricestring decimal nullableLimit price for limit, TWAP-with-limit, and SteadyPace-with-limit orders. Null when not set. -
timeInForcestring nullableTime-in-force (1GTC,3IOC,4FOK,6GTD). Null when not set. -
durationinteger nullableOrder duration in seconds for TWAP and SteadyPace orders. Null for other order types. -
twapIntervalinteger nullableTWAP slice interval in minutes whenisTimeSlicedis true. Null for non-TWAP orders and when not time-sliced. -
isTimeSlicedboolean nullableTWAP time-slicing flag. Null for non-TWAP orders. When true, usetwapInterval; when false,boundsControlmay be set instead. -
boundsControlstring nullableTWAP bounds control (narrow,standard,wide) for non-time-sliced TWAP orders. Null for time-sliced TWAP and non-TWAP orders. -
intervalinteger nullableSteadyPace interval length. Null for non-SteadyPace orders. -
intervalUnitstring nullableSteadyPace interval unit (second,minute,hour). Null for non-SteadyPace orders. -
subOrderSizestring decimal nullableSteadyPace sub-order size. Null for non-SteadyPace orders. -
variancestring decimal nullableOptional SteadyPace sub-order size variance (0–1). Null for non-SteadyPace orders.
-
channelstringThe channel you are subscribed to. -
timestring date-time -
creationDatestring date-time -
completionDatestring date-time -
settleDatestring date-time -
scheduledDatestring date-timeDate to schedule the order. If not provided, the order will be placed immediately. -
lastFillDatestring date-time -
accountIdstringThe ID of the account -
clientOrderIdstringCustom order ID provided by the client. This must be a unique ID for each individual order and cannot be the same across multiple requests. Can be used to ensure idempotency of order requests. -
orderIdstringThe ID of the order. -
productstringProduct name. -
fundingTypestring enumThe funding type of the order.
- Funded orders will be placed using the Go account balance.
- Margin orders will be placed using the margin account balances. See our Trade Guide for more details on each funding type.
marginfunded -
statusstring enumpending_openopencompletedpending_cancelcancelederrorscheduled -
execTypestringThe type of update, using FIX 4.4 ExecType (tag 150) values. Use this field to distinguish order status updates from fill events.
F(Trade) — a fill occurred; checktradeId,fillQuantity,fillPricefor fill details0(New) — order accepted by the exchangeA(Pending New) — order submitted, awaiting acceptance6(Pending Cancel) — cancel request sent4(Canceled) — order canceled8(Rejected) — order rejected or internal failureI(Order Status) — terminal status summary (e.g. completed)
-
typestring enumThe type of order to be placed. See our Trade Guide for more details on each order type.markettwaplimitsteady_pacestop -
sidestring enumbuysell -
quantitystring decimalThe specified quantity. -
quantityCurrencystringThe specified quantity currency. -
cumulativeQuantitystring decimalThe total base quantity filled for the order. -
cumulativeQuoteQuantitystring decimalThe total quote quantity filled for the order. -
leavesQuantitystring decimalFor orders created with base currency, this field is set to the remaining unfilled base quantity.
- Only one of leavesQuantity or leavesQuoteQuantity will be set.
- This field is set to null for orders created with quote currency.
-
leavesQuoteQuantitystring decimalFor orders created with quote currency, this field is set to the remaining unfilled quote quantity.
- Only one of leavesQuantity or leavesQuoteQuantity will be set.
- This field is set to null for orders created with base currency.
-
averagePricestring decimalThe average price for the order's fills. -
tradeIdstringThe ID of the trade. -
fillQuantitystring decimalThe quantity of the fill for the trade. -
fillPricestring decimalThe price of the fill for the trade. -
sourcestringThe originating channel for the order.
api_fix— order placed via FIX 4.4 sessionapi_rest— order placed via REST API
-
triggerPricestring decimal nullableStop/trigger price for stop and stop-limit orders. Null for other order types. -
limitPricestring decimal nullableLimit price for limit, TWAP-with-limit, and SteadyPace-with-limit orders. Null when not set. -
timeInForcestring nullableTime-in-force (1GTC,3IOC,4FOK,6GTD). Null when not set. -
durationinteger nullableOrder duration in seconds for TWAP and SteadyPace orders. Null for other order types. -
twapIntervalinteger nullableTWAP slice interval in minutes whenisTimeSlicedis true. Null for non-TWAP orders and when not time-sliced. -
isTimeSlicedboolean nullableTWAP time-slicing flag. Null for non-TWAP orders. When true, usetwapInterval; when false,boundsControlmay be set instead. -
boundsControlstring nullableTWAP bounds control (narrow,standard,wide) for non-time-sliced TWAP orders. Null for time-sliced TWAP and non-TWAP orders. -
intervalinteger nullableSteadyPace interval length. Null for non-SteadyPace orders. -
intervalUnitstring nullableSteadyPace interval unit (second,minute,hour). Null for non-SteadyPace orders. -
subOrderSizestring decimal nullableSteadyPace sub-order size. Null for non-SteadyPace orders. -
variancestring decimal nullableOptional SteadyPace sub-order size variance (0–1). Null for non-SteadyPace orders.
-
channelstringThe channel you are subscribed to. -
timestring date-time -
creationDatestring date-time -
completionDatestring date-time -
settleDatestring date-time -
scheduledDatestring date-timeDate to schedule the order. If not provided, the order will be placed immediately. -
lastFillDatestring date-time -
accountIdstringThe ID of the account -
clientOrderIdstringCustom order ID provided by the client. This must be a unique ID for each individual order and cannot be the same across multiple requests. Can be used to ensure idempotency of order requests. -
orderIdstringThe ID of the order. -
productstringProduct name. -
fundingTypestring enumThe funding type of the order.
- Funded orders will be placed using the Go account balance.
- Margin orders will be placed using the margin account balances. See our Trade Guide for more details on each funding type.
marginfunded -
statusstring enumpending_openopencompletedpending_cancelcancelederrorscheduled -
execTypestringThe type of update, using FIX 4.4 ExecType (tag 150) values. Use this field to distinguish order status updates from fill events.
F(Trade) — a fill occurred; checktradeId,fillQuantity,fillPricefor fill details0(New) — order accepted by the exchangeA(Pending New) — order submitted, awaiting acceptance6(Pending Cancel) — cancel request sent4(Canceled) — order canceled8(Rejected) — order rejected or internal failureI(Order Status) — terminal status summary (e.g. completed)
-
typestring enumThe type of order to be placed. See our Trade Guide for more details on each order type.markettwaplimitsteady_pacestop -
sidestring enumbuysell -
quantitystring decimalThe specified quantity. -
quantityCurrencystringThe specified quantity currency. -
cumulativeQuantitystring decimalThe total base quantity filled for the order. -
cumulativeQuoteQuantitystring decimalThe total quote quantity filled for the order. -
leavesQuantitystring decimalFor orders created with base currency, this field is set to the remaining unfilled base quantity.
- Only one of leavesQuantity or leavesQuoteQuantity will be set.
- This field is set to null for orders created with quote currency.
-
leavesQuoteQuantitystring decimalFor orders created with quote currency, this field is set to the remaining unfilled quote quantity.
- Only one of leavesQuantity or leavesQuoteQuantity will be set.
- This field is set to null for orders created with base currency.
-
averagePricestring decimalThe average price for the order's fills. -
tradeIdstringThe ID of the trade. -
fillQuantitystring decimalThe quantity of the fill for the trade. -
fillPricestring decimalThe price of the fill for the trade. -
sourcestringThe originating channel for the order.
api_fix— order placed via FIX 4.4 sessionapi_rest— order placed via REST API
-
triggerPricestring decimal nullableStop/trigger price for stop and stop-limit orders. Null for other order types. -
limitPricestring decimal nullableLimit price for limit, TWAP-with-limit, and SteadyPace-with-limit orders. Null when not set. -
timeInForcestring nullableTime-in-force (1GTC,3IOC,4FOK,6GTD). Null when not set. -
durationinteger nullableOrder duration in seconds for TWAP and SteadyPace orders. Null for other order types. -
twapIntervalinteger nullableTWAP slice interval in minutes whenisTimeSlicedis true. Null for non-TWAP orders and when not time-sliced. -
isTimeSlicedboolean nullableTWAP time-slicing flag. Null for non-TWAP orders. When true, usetwapInterval; when false,boundsControlmay be set instead. -
boundsControlstring nullableTWAP bounds control (narrow,standard,wide) for non-time-sliced TWAP orders. Null for time-sliced TWAP and non-TWAP orders. -
intervalinteger nullableSteadyPace interval length. Null for non-SteadyPace orders. -
intervalUnitstring nullableSteadyPace interval unit (second,minute,hour). Null for non-SteadyPace orders. -
subOrderSizestring decimal nullableSteadyPace sub-order size. Null for non-SteadyPace orders. -
variancestring decimal nullableOptional SteadyPace sub-order size variance (0–1). Null for non-SteadyPace orders.
-
typestring enum requiredAlways "subscription_response".subscription_response -
channelstring enum requiredThe channel the subscription applies to ("orders" or "level2").orderslevel2 -
statusstring enum requiredOutcome of the subscribe/unsubscribe request:
subscribed— subscription was accepted and is now active.already_subscribed— (orders channel only) a subscription for this accountId was already active; no duplicate was created. For the level2 channel, duplicate subscribe requests return an error instead, becauseincludeCumulativeis fixed for the lifetime of a subscription and cannot be changed without unsubscribing first.unsubscribed— subscription was successfully removed.
subscribedalready_subscribedunsubscribed -
accountIdstringThe ID of the account -
productIdstringThe product ID, present for level2 subscriptions. -
session_idstringThe session ID for this WebSocket connection.
403
Forbidden - Insufficient permissions
Response Body
object
-
errorstring required -
errorNamestring required -
reqIdstring required