Place Order

Submits a new buy or sell order to the exchange for immediate or conditional execution, supporting Market, Limit, and Stop Market order types.

This endpoint is the primary method for executing trades. To place an order, the request must include the symbol (e.g., BTCUSDT.PERP), the side (BUY or SELL), and the order type (MARKET, LIMIT, or STOP_MARKET). Users should specify the size of the order by providing either the quantity (denominated in the base asset) or the amount (denominated in the quote asset).

For Limit orders, the price field allows users to set a specific execution price. Additionally, a priceMatchStrategy can be specified to define advanced matching behaviors for limit orders.

For risk management, the reduceOnly flag can be set to true to ensure the order only reduces an existing position and does not open a new one. A maxSlippagePrice can also be defined to protect against excessive price deviation during execution.

Furthermore, the timeInForce parameter allows users to specify how long an order remains active. For Limit orders, the default policy is GTC (Good Till Cancelled), but users may also select IOC (Immediate or Cancel). For Market orders, while they are processed as IOC internally, providing an explicit timeInForce value will trigger a 400 Bad Request error. Please note that when an order is executed as IOC, any unfilled portion is immediately canceled; consequently, the API response will reflect the actually filled amount in the quantity field and the order status will be marked as CANCELLED.

circle-info

Ensure the symbol parameter exists in the 'Tradable Symbol List'. If a symbol is not supported to be traded, the request will be rejected with a 400 Bad Request or specific error code indicating the symbol is not tradable.

Request Body Example

  • Market Buy Order (1 BTC Long)

This example demonstrates opening a Long position with a specific quantity (1 BTC) using a Market order.

{
  "symbol": "BTCUSDT.PERP",
  "side": "BUY",
  "type": "MARKET",
  "quantity": "1.0"
}
  • Limit Sell Order (Fixed Price)

This example demonstrates placing a Limit order to Sell a specific value (e.g., 9,000 USDT worth) at a fixed price of 90,000. The system will calculate the corresponding base asset quantity (in this case, 0.1 BTC).

{
  "symbol": "BTCUSDT.PERP",
  "side": "SELL",
  "type": "LIMIT",
  "price": "90000",
  "quantity": "0.1"
}
  • Limit Buy Order with BBO Strategy

This example demonstrates placing a Limit order where the price is automatically set to the current Best Bid or Offer (BBO) using the priceMatchStrategy, instead of specifying a fixed price.

  • Stop Market Buy Order

This example demonstrates placing a Stop Market order to enter a Long position (Buy) only when the price reaches or crosses 86,000. This is typically used to catch an upward trend breakout.

  • Limit Order with IOC (Immediate or Cancel)

This example demonstrates placing a Limit order with the timeInForce parameter set to IOC. This ensures that the order is executed immediately at the specified price or better. If the order cannot be fully filled instantly, any remaining quantity is automatically canceled rather than staying on the order book.

circle-exclamation

Place Order

post
chevron-right
lockRequired scopes
This endpoint requires the following scopes:
Authorizations
api-keystringRequired

For third party retail API users

Body
symbolstringRequired

Trading symbol

Example: BTCUSDT.PERPPattern: ^[A-Z0-9]+(\.[A-Z0-9]+)?$
sidestring · enumRequired

Order side

Possible values:
typestring · enumRequired

Order type

Possible values:
reduceOnlybooleanOptionalDefault: false
pricestring · nullableOptional

the limit or trigger price for execution.

Example: ###.###
amountstring · nullableOptional

order size designated in base asset units (e.g., BTC amount)

Example: ###.###
quantitystring · nullableOptional

specifies the order size denominated in the base asset units (e.g., BTC for a BTCUSDT pair).

Example: ###.###
maxSlippagePricestring · nullableOptional

prevents the order from being executed at a price worse than this specified limit.

Example: ###.###
priceMatchStrategystring · enum · nullableOptional

Automatically sets the limit order price to the current Best Bid or Offer (BBO) when selected.

Possible values:
timeInForcestring · enum · nullableOptional

Time in force for limit orders. Only applicable when orderType is LIMIT. Accepts GTC (default) or IOC. If omitted, defaults to GTC.

Example: GTCPossible values:
Responses
chevron-right
200

OK

application/json
post
/api/v1/trade/order

Last updated