
# Place Order (TRADE)

- **POST** ```/capi/v3/order```

<strong>Request Weight</strong>

1 on 10s order rate limit(X-ORDER-COUNT-10S); 1 on 1min order rate limit(X-ORDER-COUNT-1M); 0 on IP rate limit(X-USED-WEIGHT-1M);


<div class='api-content-wrap'>
<div>


<strong>Request Body</strong>


| Parameter        | Type    | Required?   | Description                                                                                                   |
|------------------|---------|-------------|---------------------------------------------------------------------------------------------------------------|
| symbol           | String  | Yes         | Trading pair, for example `BTCUSDT`.                                                                          |
| side             | String  | Yes         | Order side. Supported values: `BUY`, `SELL`.                                                                  |
| positionSide     | String  | Yes         | Position side. Supported values: `LONG`, `SHORT`.                                                             |
| type             | String  | Yes         | Order type. Supported values: `LIMIT`, `MARKET`.                                                              |
| timeInForce      | String  | Conditional | Time-in-force policy. Required when `type = LIMIT`. Supported values: `GTC`, `IOC`, `FOK`, `POST_ONLY`. BBO orders only support `GTC`.       |
| quantity         | String  | Yes         | Order quantity. Must be greater than 0.                                                                       |
| price | String | Conditional | Limit price, required and greater than 0 when `type=LIMIT` and `priceMatch` is omitted. Mutually exclusive with `priceMatch`. |
| priceMatch | enum | No | Only effective for `LIMIT` orders; do not send together with `price`. `timeInForce` must be `GTC`. Enum: `OPPONENT`, `OPPONENT_5`, `QUEUE`, `QUEUE_5`. Example: `OPPONENT`. |
| newClientOrderId | String  | Yes         | Client order identifier (1-36 characters, pattern `^[\\.A-Z\:/a-z0-9_-]{1,36}$`).                             |
| tpTriggerPrice   | String  | No          | Optional take-profit trigger price.                                                                           |
| slTriggerPrice   | String  | No          | Optional stop-loss trigger price.                                                                             |
| TpWorkingType    | String  | No          | Take-profit trigger price source. Supported values: `CONTRACT_PRICE`, `MARK_PRICE`. Default `CONTRACT_PRICE`. |
| SlWorkingType    | String  | No          | Stop-loss trigger price source. Supported values: `CONTRACT_PRICE`, `MARK_PRICE`. Default `CONTRACT_PRICE`.   |
| reduceOnly       | Boolean | No          | Whether the order is reduce-only.                                                                             |

BBO rules: enabled only when `type=LIMIT` and `priceMatch` is provided. Explicitly set `timeInForce=GTC` and omit `price`. A positive price is rejected (`price=0` is accepted for compatibility; the exchange receives price `0`). `NONE` is response-only and cannot be submitted. Requests without `priceMatch` keep the regular order flow; non-`LIMIT` orders ignore `priceMatch`.

</div>
<div class='api-align'>
  <div class='code-wrap'>
<strong>Request example</strong>

```powershell
curl -X POST "https://api-contract.weex.com/capi/v3/order" \
   -H "ACCESS-KEY:*******" \
   -H "ACCESS-SIGN:*******" \
   -H "ACCESS-PASSPHRASE:*****" \
   -H "ACCESS-TIMESTAMP:1659076670000" \
   -H "Content-Type: application/json" \
   -d '{
     "symbol": "BTCUSDT",
     "side": "BUY",
     "positionSide": "LONG",
     "type": "LIMIT",
     "timeInForce": "GTC",
     "quantity": "0.01",
     "price": "69000",
     "newClientOrderId": "my-order-0001",
     "tpTriggerPrice": "70000",
     "slTriggerPrice": "68000",
     "TpWorkingType": "CONTRACT_PRICE",
     "SlWorkingType": "MARK_PRICE",
     "reduceOnly": false
   }'
```
  </div>
  </div>

</div>

<div class='api-content-wrap'>
  <div>
<strong>Response parameters</strong>


| Field          | Type    | Description |
|----------------|---------|-------------|
| orderId        | String  | Order ID assigned by the system. |
| clientOrderId  | String  | Echo of `newClientOrderId`. |
| success        | Boolean | Whether the order request was accepted. |
| errorCode      | String  | Error code when `success = false`; otherwise empty. |
| errorMessage   | String  | Error message when `success = false`; otherwise empty. |

  </div>
  <div class='api-align'>

  <div class='code-wrap'>
<strong>Response example</strong>

```json
{
  "orderId": "702345678901234567",
  "clientOrderId": "my-order-0001",
  "success": true,
  "errorCode": "",
  "errorMessage": ""
}
```
  </div>
    </div>
</div>

**BBO request body example**

```json
{
  "symbol": "ETHUSDT",
  "side": "BUY",
  "positionSide": "LONG",
  "type": "LIMIT",
  "timeInForce": "GTC",
  "quantity": "0.001",
  "priceMatch": "OPPONENT",
  "newClientOrderId": "bbo-order-0001"
}
```
