# Place Order Channel

### Description

:::tip

The ACK response only indicates that the request has been successfully accepted. Please use the [WebSocket order](/docs/uta/websocket/private/Order-Channel) push channel to confirm the actual order status.

:::

This endpoint allows order placement across spot, margin, or futures markets, as well as Reality (rToken) stocks, with customizable parameters, including
price, quantity, and order type, etc.

- Reality (rToken) rate limit<br/>
  User level: 5/sec/UID by default, 30/sec/UID for whitelisted users (contact your BD/RM to apply).

- Futures<br/>
  For one-way mode, reduce-only orders are allowed to place. If a reduce only order already exists and the order
  quantity equals the position size, or if a new reduce only order exceeds the remaining position size, the previous
  reduction order will be automatically canceled and replaced. In this case, the returned orderId will be null.
  It is recommended to always provide a clientOid.
- Margin<br/>
  Margin orders will automatically trigger fund borrowing.
- Order Check
    - Futures:price must meet the price multiplier and be a multiple of priceMultiplier, and conform to the
      pricePrecision decimal places. qty must be greater than or equal to minOrderAmount and be a multiple of
      sizeMultiplier.
    - Spot:price must meet the decimal place requirement. qty must be greater than or equal to minOrderAmount.
- Open Position Logic
    - Hedge-mode<br/>
      Open long: side=buy & posSide=long<br/>
      Open Short: side=sell & posSide=short<br/>
      Close long: side=sell & posSide=long<br/>
      Close short: side=buy & posSide=short<br/>
    - One-way-mode<br/>
      Open long: side=buy<br/>
      Open short: side=sell<br/>
      Close long: side=sell & reduceOnly=yes<br/>
      Close short: side=buy & reduceOnly=yes<br/>
- Order Limit
    - Futures: 400 orders across all USDT, Coin-M, and USDC futures trading pairs.
    - Spot: 400 orders across all spot and margin trading pairs.
- ClientOid Constraints
  Please ensure your clientOid matches the regular expression `^[0-9A-Za-z_:#\\-+\\s]{1,32}$`, consisting of 1 to 32
  characters, including periods (.), uppercase letters, colons (:), lowercase letters, numbers, underscores (_), and
  hyphens (-).
- Request Monitor <br/>
  The API requests will be monitored. If the total number of orders for a single account (including master and
  sub-accounts) exceeds a set daily limit (UTC 00:00 - UTC 24:00), the platform reserves the right to issue reminders,
  warnings, and enforce necessary restrictions. By using the API, clients acknowledge and agree to comply with these
  terms.
- Error Sample `{ "code":"40762", "msg":"The order size is greater than the max open size", "requestTime":1627293504612 }`
  This error code may occur in the following scenarios.
    - Insufficient account balance.
    - The position tier for this symbol has reached its
      limit. <a href='https://www.bitget.com/trade-info/position-gear?symbolId=BTCUSDT_UMCBL'>Position tiers</a>
- Note: If the following errors occur when placing an order, please use clientOid to query the order details to confirm
  the final result of the operation.<br/>

- **COIN-M Futures Symbol Format Description:**<br/>
    - <u>The symbol format for the new COIN-M business line is "XXXUSD_CM". For example, the BTCUSD trading pair in
      COIN-M futures is formatted as BTCUSD_CM.</u>
    - The new COIN-M business line does not support modifying orders, ADL, strategy orders，or preset
      take-profit/stop-loss orders.

```json title="Error Code Examples"
{ "code": "40010", "msg": "Request timed out", "id": 1666268894074, "event":"error" }
{ "code": "40725", "msg": "service return an error", "id": 1666268894071, "event":"error" }
{ "code": "45001", "msg": "Unknown error", "id": 1666268894071, "event":"error" }
```

<div className="api-aligning">

```json title="Request Example" 
{
  "op": "trade",
  "id": "1750034396082",
  "category": "spot",
  "topic": "place-order",
  "requestTime": "1750034396082",
  "args": [
    {
      "orderType": "limit",
      "price": "100",
      "qty": "0.1",
      "side": "buy",
      "symbol": "BTCUSDT",
      "timeInForce": "gtc",
    }
  ]
}
```

### Request Parameters

| Parameter         | Type               | Required | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 
|:------------------|:-------------------|----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| op                | String             | Yes      | Operation: <br/> `trade`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| id                | String             | Yes      | Request identifier                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| topic             | String             | Yes      | Topic: <br/> `place-order`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| category          | String             | Yes      | Category (must be lowercase)<br/>`spot`Spot<br/>`margin` Margin<br/> `usdt-futures` USDT futures<br/>`coin-futures` Coin futures<br/>`usdc-futures` USDC futures                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| apiCode           | String             | No       | API rebate identifier                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| requestTime       | String             | No       | Request time (client-side timestamp)<br/>Used to calculate the time difference with `receiveWindow`<br/>If not provided, `receiveWindow` will have no effect <br/>Millisecond timestamp                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| args              | List&lt;Object&gt; | Yes      | Channel list                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| &gt; symbol       | String             | Yes      | Symbol name                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| &gt; [orderType](/docs/uta/enum#ordertype)    | String             | Yes      | Order type <br/>`limit` : Limit order<br/> `market` : Market order                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| &gt; qty          | String             | Yes      | Order quantity <br/>`Spot/Margin`<br/> For market buy orders,the unit is **quote coin**<br/>For limit and market sell orders, the unit is **base coin**<br/> `USDT/USDC-Futures` <br/> The unit is **base coin** <br/> `COIN-Futures` <br/> The unit is **<u>quote coin</u>**                                                                                                                                                                                                                                                                                                                                                                                                           |
| &gt; price        | String             | No       | Order price <br/> This field is required when the order type is a `limit` order .<br/>This field is not applicable  when the order type is a `market` order.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| &gt; side         | String             | Yes      | Order side<br/>`buy`<br/>`sell`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| &gt; posSide      | String             | No       | Position side<br/>`long` <br/>`short` <br/>This field is required in hedge-mode positions.<br/>Available only for futures                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| &gt; timeInForce  | String             | No       | [Time in force](https://www.bitget.com/support/articles/12560603818004) <br/> `gtc`: Good 'til canceled. It remains active until it is either filled or manually canceled.<br/>`ioc`: Immediate or cancel. It must be executed immediately, with any unfilled portion canceled.<br/>`fok`: Fill or kill. It must be fully executed immediately, or it is canceled entirely. <br/> `post_only`: Post only. It will only be added to the order book as a maker. <br/>[`rpi`](https://www.bitget.com/support/articles/12560603867770) Retail Price Improvement order. A non-displayed limit order that provides price improvement for retail order flow. Only available for accounts with RPI market maker permissions.<br/> When orderType is `limit`, it defaults to `gtc`; <br/>when orderType is `market`, the system will execute it as `ioc`<br/>This field is ignored when trading Reality stock pairs (rtoken, e.g. rAAPLUSDT) |
| &gt; reduceOnly   | String             | No       | Reduce-only identifier<br/>`YES`/`NO`<br/>default`NO`; `YES` indicates that your position may only be reduced in size upon the activation of this order                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| &gt; clientOid    | String             | No       | Client order ID<br/>Must match the regular expression `^[0-9A-Za-z_:#\-+\s]{1,32}$`, i.e. 1 to 32 characters, consisting of uppercase and lowercase letters, digits, underscores (_), hyphens (-), plus signs (+), colons (:), number signs (#), and spaces                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| &gt; stpMode      | String             | No       | [STP Mode(Self Trade Prevention)](https://www.bitget.com/support/articles/12560603812732)<br/>`none`: STP is not applied; orders are matched normally without comparing user IDs (Default)<br/>`cancel_taker`: when a self-trade is detected, the taker order is canceled and the maker order remains in the order book  <br/>`cancel_maker`: when a self-trade is detected, the maker order is canceled and the taker order continues to execute  <br/>`cancel_both`: when a self-trade is detected, both the taker and maker orders are canceled<br/>The STP action is determined by the taker order's `stpMode`; the maker order's existing `stpMode` setting is not considered.                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| &gt; tpTriggerBy  | String             | No       | Preset Take-Profit Trigger Type<br/>`market`Market Price<br/>`mark` Mark Price<br/>If not specified, the default value is market price <br/> Note: This field is only valid for the contract business lines: USDT-Futures, COIN-Futures, and USDC-Futures.                                                                                                                                                                                                                                                                                                                                                                                                                              |
| &gt; slTriggerBy  | String             | No       | Preset Stop-Loss Trigger Type<br/>`market`Market Price<br/>`mark` Mark Price<br/>If not specified, the default value is market price <br/> Note: This field is only valid for the contract business lines: USDT-Futures, COIN-Futures, and USDC-Futures.                                                                                                                                                                                                                                                                                                                                                                                                                                |
| &gt; takeprofit   | String             | No       | Preset Take-Profit Trigger Price                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| &gt; stoploss     | String             | No       | Preset Stop-Loss Trigger Price                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| &gt; tpOrderType  | String             | No       | Take-Profit Trigger Strategy Order Type<br/>`limit` Limit Order<br/>`market` Market Order<br/>For Reality (rtoken) trading pairs, only `market` is currently supported.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| &gt; slOrderType  | String             | No       | Stop-Loss Trigger Strategy Order Type<br/>`limit` Limit Order<br/>`market` Market Order<br/>For Reality (rtoken) trading pairs, only `market` is currently supported.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| &gt; tpLimitPrice | String             | No       | Take-Profit Strategy Order Execution Price<br/>This field is only valid for limit orders (when `tpOrderType=limit`); it is ignored for market orders.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| &gt; slLimitPrice | String             | No       | Stop-Loss Strategy Order Execution Price<br/>This field is only valid for limit orders (when `slOrderType=limit`); it is ignored for market orders.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| &gt; marginMode      | String             | No       | Margin mode<br/>`crossed` Cross margin<br/>`isolated` Isolated margin<br/>If not provided, defaults to cross margin<br/>Available only for futures                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| &gt; autoBorrow      | String             | No       | Auto borrow switch<br/>`yes` Enable<br/>`no` Disable (default)<br/>Only applicable to spot orders. When enabled, if the obtained coin does not support borrowing while the consumed coin does, and the available balance of the consumed coin is insufficient, the system automatically borrows the consumed coin to make up the shortfall. |
| &gt; pxAmendType     | String             | No       | Order price amendment type<br/>`no` When the order price exceeds the price limit range, the system is not allowed to adjust the order price; the order will be rejected (default)<br/>`yes` When the order price exceeds the price limit range, the system is allowed to adjust the price to the best value within the limit range and place the order<br/>Only applicable to limit orders (`orderType`=`limit`) |
| &gt; venue           | String             | No       | Order routing strategy<br/>`internalization` Route directly to the internal (on-exchange) pool<br/>`lit_market` Public market. Prioritizes internal matching; if unavailable internally, routes to the external pool; if still unmatched, rests as a limit order<br/>If not provided, defaults to `lit_market`<br/>This field is only effective for Reality (rtoken) trading pairs |
| &gt; rTokenTimeInForce | String           | No       | Order execution strategy for Reality (rtoken) trading pairs<br/>`gtd` Valid for the current session. If placed during US market trading hours (weekdays), the limit order is valid until the end of after-hours trading; if placed on weekends, it is valid until just before the next US market open<br/>`gtc` Valid for 90 days<br/>If not provided, defaults to `gtd`<br/>This field is only effective for Reality (rtoken) trading pairs |
| &gt; receiveWindow   | String             | No       | Valid window period (order TTL mechanism)<br/>Unit: milliseconds. Valid range: [10, 60000]<br/>If not specified, the order remains valid until canceled or filled<br/>If specified, the order must satisfy the formula: `expiry time = requestTime + receiveWindow`<br/>The order is valid only before `requestTime + receiveWindow`. If it is not filled by then, the system cancels it automatically and sets `cancelReason` to `cancel_receiveWindow`<br/>Note: `receiveWindow` is only effective when `requestTime` is also provided                                                                                                                                                                                                                                                                                                                                                                                                                                       |

</div>


<div className="api-aligning">

```json title="Response Example"
{
  "event": "trade",
  "id": "1750034396082",
  "category": "spot",
  "topic": "place-order",
  "args": [
    {
      "symbol": "BTCUSDT",
      "orderId": "xxxxxxxx",
      "clientOid": "xxxxxxxx",
      "cTime": "1750034397008",
      "receiveTime": "1750034396998123",
      "pushTime": "1750034397076456"
    }
  ],
  "code": "0",
  "msg": "success",
  "connId": "xxxxxxxxxx",
  "rateLimit": [
    {
      "limit": "10",
      "remaining": "9"
    }
  ],
  "ts": "1750034397076"
}
```

### Response Parameters

| Parameters        | Type               | Description                                                                                                                                   |
|:------------------|:-------------------|:----------------------------------------------------------------------------------------------------------------------------------------------|
| event             | String             | Event<br/>`trade`/`error`                                                                                                                     |
| id                | String             | Request identifier                                                                                                                            |
| topic             | String             | Topic<br/>`place-order`                                                                                                                       |
| category          | String             | Category <br/>`spot`Spot<br/>`margin` Margin<br/> `usdt-futures` USDT futures<br/>`coin-futures` Coin futures<br/>`usdc-futures` USDC futures |
| args              | List&lt;Object&gt; | Channel list                                                                                                                                  |
| &gt; symbol       | String             | Symbol name                                                                                                                                   |
| &gt; orderId      | String             | Order ID                                                                                                                                      |
| &gt; clientOid    | String             | Client order ID                                                                                                                               |
| &gt; cTime        | String             | Order creation time <br/>Generated by OMS<br/>Unix millisecond timestamp                                                                                           |
| &gt; receiveTime  | String             | Gateway receive time <br/>Unix microsecond timestamp                                                                                          |
| &gt; pushTime     | String             | Gateway push time <br/>Unix microsecond timestamp                                                                                             |
| code              | String             | Code                                                                                                                                          |
| msg               | String             | Message                                                                                                                                       |
| connId            | String             | Connection ID                                                                                                                                 |
| rateLimit         | Array              | Rate limit balance array                                                                                                                      |
| &gt; limit        | String             | Rate limit quota for this dimension                                                                                                           |
| &gt; remaining    | String             | Remaining available quota                                                                                                                     |
| ts                | String             | Timestamp <br/>Generated by the gateway<br/>Unix millisecond timestamp                                                                                                                                     |

</div>

































