Skip to main content
Coming soon: order placement over WebSocket becomes available on September 2, 2026, on the global platform only. The EU platform is not yet supported.
Change the size, price, or trigger of a live order without a separate cancel-and-replace round trip. The method works across spot, margin, and futures markets — no collateral_ variant exists.

Rate limits

Modify order

Request parameters

The market parameter routes the call, so it stays required even when the order id alone would identify the order. Supply exactly one identifier — order_id or client_order_id — and at least one of price, amount, total, or activation_price. Omitted fields keep the previous values. Sending no change returns error 1, and so does sending amount and total together, since the two express the same quantity in different units.

Response

The order id changes. Internally the engine cancels and re-places the order, so the result carries a new id and a fresh ctime, and the order loses its queue priority. Any client tracking orders by engine id must adopt the new one from this response.
The client_order_id value carries over to the replacement, which makes it the stabler handle for anything modified repeatedly. Modifying by client order id therefore needs no bookkeeping between calls:
Moving a trigger works the same way — send activation_price on a conditional order, with or without a new amount:
Group legs cannot be modified. An OCO or OTO leg returns error 155, and a TPSL leg returns error 160. Cancel the group and place a new one instead — see order_cancel_conditional for OCO and OTO, and order_cancel for TPSL legs.

Error codes

Standard transport errors and the shared account, rate-limit, and region codes are listed in Order Management.