Submit a market, limit, or stop order
Submits an order to the command queue for processing. Returns a command_id you can use to track status.
Order types:
market— executes immediately at best available pricelimit— executes when price reaches your level or better (requiresprice)stop— triggers a market order when price reaches stop level (requiresprice)
Bracket orders: optionally attach take_profit and/or stop_loss prices. These create child limit/stop orders that auto-cancel each other (OCO) when one fills.
Validation: checks account ownership, trading status, lockout, max contracts rule, and tick size before accepting.
Requires x-idempotency-key header to prevent duplicate submissions.
Body
Order submission request
Submit a market, limit, or stop order for a specific trading account.
Examples
Market Order (immediate execution):
Limit Order (execute at specified price or better):
Stop Order (trigger market order when price reached):
UUID of the trading account to place order on (required)
"550e8400-e29b-41d4-a716-446655440000"
Contract symbol (e.g., "ESH6" for E-mini S&P 500 March 2026)
"ESH6"
Number of contracts to trade (positive integer)
x >= 12
Order side: "buy" (go long) or "sell" (go short/close long)
"buy"
How this order's TP/SL relate to the position's existing bracket when SCALING IN (adding to an open position). Optional:
"position"— the levels are ticket defaults (e.g. tick offsets): consolidate into ONE stop / ONE target for the whole position. The existing position bracket grows to cover the added contracts at its own price; this order's levels are dropped for the legs that already exist."ladder"— the levels were chosen deliberately for these contracts: they become their own TP/SL legs alongside the position bracket (partial-exit ladder).- omitted — legacy behavior: legs at the same price as the position bracket consolidate; legs at a different price ladder.
Has no effect when the order opens a fresh position or carries no TP/SL.
"position"
Order type: "market" (default), "limit", or "stop"
"market"
Price for limit/stop orders (required for limit/stop, ignored for market)
6050.25
Stop loss price for bracket orders (optional). Creates a stop order to close position at this price. For buy orders: SL should be below entry price. For sell orders: SL should be above entry price.
Partial fills follow the same lifecycle as take_profit: armed on
the first fill for the filled contracts, grown with later fills,
kept when the entry remainder is cancelled.
6000
Stop-loss distance in ticks from the entry (optional). Same anchoring
semantics as take_profit_ticks. Ignored when stop_loss is
provided.
x >= 060
Take profit price for bracket orders (optional). Creates a limit order to close position at this price. For buy orders: TP should be above entry price. For sell orders: TP should be below entry price.
Partial fills: a resting entry that fills in several executions arms its TP on the FIRST fill, sized to the contracts filled so far, and the TP grows automatically as the remainder fills. Cancelling the unfilled remainder keeps the armed TP for the open contracts. If the TP/SL closes the position while part of the entry is still unfilled, the remainder is cancelled too (the bracket strategy is complete).
6100
Take-profit distance in ticks from the entry (optional). The engine
prices the bracket off the ACTUAL entry — the fill price for market
orders, the limit/trigger price for resting orders — so a stale
client-side market snapshot can never plant a bracket on the wrong
side of the real market. Ignored when take_profit is provided.
x >= 0120