Place Order

Submit a new order over the authenticated WebSocket connection. The response confirms LTP has accepted the order. The order then goes through state changes (NEWOPENPARTIALLY_FILLEDFILLED / CANCELLED) which are delivered via the Orders push channel.

Rate limit: 1200 requests per 60 seconds

Exchange requirements: The limitPrice must not exceed the symbol's minimum price increment (tick size). The order notional (limitPrice × orderQty) must be at or above the exchange's minimum notional value. Violations return error codes 401015 (price precision) or 401017 (below min notional).


Request

Send the following message after login to place an order.

{
  "id": "XXX",
  "action": "place_order",
  "args": {
    "clientOrderId": "XXXX",
    "sym": "BINANCE_SPOT_BTC_USDT",
    "side": "BUY",
    "orderType": "LIMIT",
    "timeInForce": "GTC",
    "orderQty": "1000",
    "limitPrice": "60000",
    "reduceOnly": "false"
  }
}
FieldTypeRequiredDescription
idStringNRequest ID
actionStringYMust be place_order..
argsObjectYOrder parameters (see below).
> clientOrderIdStringNYour own order ID. Only lowercase letters (a-z) and digits (0-9). Max 32 characters recommended. If omitted, LTP generates one automatically.
> symStringYTrading pair identifier in Exchange_BusinessType_Base_Counter format. Examples: BINANCE_SPOT_BTC_USDT, BINANCE_PERP_BTC_USDT, OKX_PERP_ETH_USDT. Supported: SPOT / MARGIN / PERP on BINANCE and OKX; PERP on EDX.
> sideStringYBUY or SELL.
> orderTypeStringYLIMIT (rests on the book at a specified price) or MARKET (executes immediately at the best available price).
> timeInForceStringNControls how long a LIMIT order stays active. GTC (Good Till Cancel, default — stays open until filled or cancelled), IOC (Immediate Or Cancel — unfilled portion is cancelled immediately), FOK (Fill Or Kill — must fill entirely or be cancelled entirely), GTX (Post-only — rejected if it would match immediately, ensuring you receive the maker rebate rate rather than paying taker fees). Do not send for MARKET orders.
> orderQtyStringNOrder quantity. Required unless placing a spot market buy using quoteOrderQty. For Binance and EDX: base asset quantity (e.g. amount of BTC in BTC/USDT). For OKX: number of contracts.
> limitPriceStringNOrder price. Required when orderType is LIMIT.
> quoteOrderQtyStringNOrder amount in quote currency. Only for spot market buy orders (e.g. spend exactly 100 USDT to buy BTC). Cannot be used together with orderQty.
> reduceOnlyStringN"true" or "false". When "true", the order can only reduce an existing position and will never open or increase one. For derivatives only.
> positionSideStringNNONE for one-way mode (default). LONG or SHORT required in hedge mode.
> tpTriggerPriceStringNTake-profit trigger price. When the market reaches this price, a take-profit order is submitted automatically.
> tpTriggerTypeStringNPrice type for the take-profit trigger: LAST_PRICE (default) or MARK_PRICE.
> tpPriceStringNTake-profit execution price. "0" means execute at market price when triggered.
> slTriggerPriceStringNStop-loss trigger price. When the market reaches this price, a stop-loss order is submitted automatically.
> slTriggerTypeStringNPrice type for the stop-loss trigger: LAST_PRICE (default) or MARK_PRICE.
> slPriceStringNStop-loss execution price. "0" means execute at market price when triggered.

Response

The response is sent immediately after LTP receives the request. A successful response means the order has been accepted — not that it has been filled.

Success:

{
  "id": "XXXX",
  "event": "place_order",
  "code": 200000,
  "msg": "Success",
  "data": {
    "orderId": "XXXXX",
    "clientOrderId": "XXXXX"
  }
}

Failure:

{
  "id": "***",
  "event": "place_order",
  "code": 60009,
  "msg": "CreateOrder failed.",
  "data": {}
}
FieldTypeDescription
idStringRequest ID.
eventStringAlways place_order — for both success and failure responses.
codeLong200000 = order accepted. Any other value indicates an error — check msg for the reason.
msgString"Success" on success, or an error message explaining why the order was rejected.
dataObjectAlways present. On success: contains orderId and clientOrderId. On failure: empty object {}.
> orderIdStringLTP-assigned order ID. Present on success only.
> clientOrderIdStringEchoed from the request. Present on success only.