Place an order
POST🔒 Trading
Places a LIMIT or MARKET order. The orderType field selects the request variant and its required fields.
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| BROKER-ID | String | No | Optional broker/partner identifier to tag orders placed through them |
Request Body
Limit
| Name | Type | Required | Description |
|---|---|---|---|
| orderType | String | Yes | Order type. Must be LIMIT for this variant. |
| clOrderId | String | No | Client-assigned order identifier for tracking and idempotency. |
| symbol | String | Yes | Trading pair symbol. |
| orderSide | String | Yes | Order side: BUY or SELL. |
| orderSize | Long | Yes | Order size in number of contracts. |
| takeProfitTriggerType | String | No | Reference price type used to evaluate the take-profit trigger. — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
| stopLossTriggerType | String | No | Reference price type used to evaluate the stop-loss trigger. — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
| takeProfitTriggerPrice | Double | No | Take-profit trigger price. When reached, an attached take-profit order is fired. |
| stopLossTriggerPrice | Double | No | Stop-loss trigger price. When reached, an attached stop-loss order is fired. |
| positionMode | String | No | Position mode this order applies to (one-way or hedge). — ONE_WAY · HEDGE · ISOLATED |
| reduceOnly | Boolean | No | If true, the order can only reduce an existing position and cannot open or increase one. |
| timeInForce | String | No | Time-in-force policy for the limit order. Defaults to GTC when omitted. — FOK · GTC · IOC · HALFSEC · HALFMIN · FIVEMIN · HOUR · TWELVEHOUR · DAY · WEEK · MONTH |
| postOnly | Boolean | No | If true, the order is rejected if it would take liquidity, ensuring maker-only execution. |
| orderPrice | Double | Yes | Limit price for the order. |
Market
| Name | Type | Required | Description |
|---|---|---|---|
| orderType | String | Yes | Order type. Must be MARKET for this variant. — LIMIT · MARKET · OCO · TWAP · PEG · CONDITIONAL · TRAILING |
| clOrderId | String | No | Client-assigned order identifier for tracking and idempotency. |
| symbol | String | Yes | Trading pair symbol. |
| orderSide | String | Yes | Order side: BUY or SELL. |
| orderSize | Long | Yes | Order size in number of contracts. |
| takeProfitTriggerType | String | No | Reference price type used to evaluate the take-profit trigger. — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
| stopLossTriggerType | String | No | Reference price type used to evaluate the stop-loss trigger. — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
| takeProfitTriggerPrice | Double | No | Take-profit trigger price. When reached, an attached take-profit order is fired. |
| stopLossTriggerPrice | Double | No | Stop-loss trigger price. When reached, an attached stop-loss order is fired. |
| positionMode | String | No | Position mode this order applies to (one-way or hedge). — ONE_WAY · HEDGE · ISOLATED |
| reduceOnly | Boolean | No | If true, the order can only reduce an existing position and cannot open or increase one. |
Response Content
| Name | Type | Description |
|---|---|---|
| status | Integer | Order status code returned for this placement. |
| type | Integer | Order type code. |
| symbol | String | Trading pair symbol. |
| postOnly | Boolean | True if the order was accepted as maker-only. |
| orderSide | String | Order side: BUY or SELL. |
| orderId | String | Server-assigned order id. |
| clOrderID | String | Client-assigned order id echoed from the request. |
| timestamp | Long | Server timestamp of the placement, in milliseconds since epoch. |
| price | Double | Limit price submitted with the order. |
| avgFilledPrice | Double | Average fill price across executions so far. Zero if nothing has filled. |
| message | String | Human-readable message returned by the platform (e.g. rejection reason). |
| originalOrderSize | Long | Original order size in number of contracts as submitted. |
| currentOrderSize | Long | Current remaining order size after fills or amendments. |
| filledSize | Long | Size filled in the most recent match, in contracts. |
| totalFilledSize | Long | Cumulative filled size across all matches, in contracts. |
| remainingSize | Long | Remaining unfilled size, in contracts. |
| positionMode | String | Position mode this order applies to (one-way or hedge). — ONE_WAY · HEDGE · ISOLATED |
| positionDirection | String | Position direction the order will affect: LONG or SHORT. |
| positionId | String | Identifier of the position the order is bound to. |
| timeInForce | String | Time-in-force policy applied to the order (e.g. GTC, IOC, FOK). |
example
POST
https://api.btse.com/futures/api/v3/trade/ordersRequest (Limit)
{
"symbol": "BTC-PERP",
"orderType": "LIMIT",
"orderSide": "BUY",
"orderSize": 1,
"orderPrice": 57009.5
}
Request (Market)
{
"symbol": "BTC-PERP",
"orderType": "MARKET",
"orderSide": "BUY",
"orderSize": 1
}
Response (Limit)
{
"status": 2,
"type": 0,
"symbol": "BTC-PERP",
"postOnly": false,
"orderSide": "BUY",
"orderId": "0251ea47-88b5-48c0-aeb3-b38774fd1f90",
"clOrderID": "",
"timestamp": 1784882344361,
"price": 57009.5,
"avgFilledPrice": 0,
"message": null,
"originalOrderSize": 1,
"currentOrderSize": 1,
"filledSize": 0,
"totalFilledSize": 0,
"remainingSize": 1,
"positionMode": "ONE_WAY",
"positionDirection": null,
"positionId": "BTC-PERP-USDT",
"timeInForce": "GTC"
}
Response (Market)
{
"status": 4,
"type": 0,
"symbol": "BTC-PERP",
"postOnly": false,
"orderSide": "BUY",
"orderId": "8ad94105-8cce-4e01-86b8-2d0fb403db66",
"clOrderID": "",
"timestamp": 1784882344446,
"price": 60010,
"avgFilledPrice": 60010,
"message": null,
"originalOrderSize": 1,
"currentOrderSize": 1,
"filledSize": 1,
"totalFilledSize": 1,
"remainingSize": 0,
"positionMode": "ONE_WAY",
"positionDirection": null,
"positionId": "BTC-PERP-USDT",
"timeInForce": "GTC"
}