Skip to main content

Place Strategy Order

Place Strategy Order

Description​

Place a strategy order

  • API Broker rebate identifier:
    The following code block needs to be added to the HTTP Header of the request.

    "X-CHANNEL-API-CODE":"your-channel-api-code"

HTTP Request​

  • POST /api/v3/trade/place-strategy-order
  • Speed limit is 10 times/s (UID)
  • Permission: UTA trade (read & write)
Request
curl -X POST "https://api.bitget.com/api/v3/trade/place-strategy-order" \
-H "ACCESS-KEY:your apiKey" \
-H "ACCESS-SIGN:*" \
-H "ACCESS-PASSPHRASE:*" \
-H "ACCESS-TIMESTAMP:1659076670000" \
-H "locale:zh-CN" \
-H "Content-Type: application/json" \
-d '{ "category": "usdt-futures","symbol": "BTCUSDT","posSide": "long","stopLoss": "99000","takeProfit": "100800","clientOid": "121211212122"}'

Common Request Parameters​

These fields apply to every strategy type. The parameters specific to each strategy type are listed separately in the sections below.

ParameterTypeRequiredComments
categoryStringYesProduct type
SPOT Spot
MARGIN Margin
USDT-FUTURES USDT futures
COIN-FUTURES Coin-M futures
USDC-FUTURES USDC futures
symbolStringYesSymbol name
e.g.,BTCUSDT
typeStringNoStrategy Type
tpsl Take-Profit and Stop-Loss
trigger Trigger Order
oco OCO
trailing_stop Trailing Stop
iceberg Iceberg
twap TWAP
Default:tpsl
sideStringNoTrade side
buy/sell
Hedge-mode:
Open long: side=buy & posSide=long
Open short: side=sell & posSide=short
Close long: side=sell & posSide=long
Close short: side=buy & posSide=short
One-way mode:
Open long: side=buy
Open short: side=sell
Close long: side=sell & reduceOnly=yes
Close short: side=buy & reduceOnly=yes
posSideStringNoPosition side
long/short
qtyStringNoOrder Quantity
clientOidStringNoClient order ID
Only valid when type=tpsl; not supported for other strategy types

Strategy Type​

Bitget UTA supports the following strategy order types via the type parameter. Not every strategy type is available on every product line — check the support matrix below before placing an order.

typeDescriptionSPOTMARGINUSDT-FUTURESCOIN-FUTURESUSDC-FUTURES
tpslTake-Profit and Stop-Loss✅✅✅✅✅
triggerTrigger Order✅✅✅✅✅
ocoOCO (One-Cancels-the-Other)✅✅❌❌❌
trailing_stopTrailing Stop✅❌✅❌✅
icebergIceberg Order✅❌✅❌✅
twapTWAP (Time-Weighted Average Price)✅❌✅❌✅

Take-Profit and Stop-Loss (type=tpsl)​

Attach take-profit and/or stop-loss protection to an existing position. When the market (or mark) price reaches the configured trigger price, Bitget submits a limit or market order on your behalf to close the position.

ParameterTypeRequiredComments
tpslModeStringNoTake-Profit and Stop-Loss Mode
fullAll Positions Take-Profit and Stop-Loss
partialPartial Position Take-Profit and Stop-Loss
If left blank, the default value is full
qtyStringNoOrder Quantity
Required when tpslMode=partial. Unit is in the base coin
reduceOnlyStringNoWhether it is reduce-only
yes/no
tpTriggerByStringNoTake-Profit Trigger Type
market: Market Price
mark: Mark Price
If not specified, the default value is market price
slTriggerByStringNoStop-Loss Trigger Type
market: Market Price
mark: Mark Price
If not filled in, the default value is market price
takeProfitStringNoTake-Profit Trigger Price
stopLossStringNoStop-Loss Trigger Price
tpOrderTypeStringNoTake-Profit Trigger Strategy Order Type
limit: Limit Order
market: Market Order
If not filled in, the default value is market price
slOrderTypeStringNoStop-Loss Trigger Strategy Order Type
limit: Limit Order
market: Market Order
If not filled in, the default value is market price
tpLimitPriceStringNoTake-Profit Strategy Order Execution Price
This field is only valid for limit orders (when tpOrderType=limit); it is ignored for market orders.
slLimitPriceStringNoStop-Loss Strategy Order Execution Price
This field is only valid for limit orders (when slOrderType=limit); it is ignored for market orders

Trigger Order (type=trigger)​

Place a single conditional order that only submits to the order book once the market reaches your trigger price — useful for breakout entries or stop-loss entries without holding a position yet.

ParameterTypeRequiredComments
qtyStringNoOrder Quantity
Required for trigger orders. Unit is in the base coin
reduceOnlyStringNoWhether it is reduce-only
yes/no
triggerByStringNoTrigger order trigger price type
market: Market Price
mark: Mark Price
If not specified, the default value is market price
triggerPriceStringNoTrigger order trigger price
Only valid for limit orders (when triggerOrderType=limit); ignored for market orders
triggerOrderTypeStringNoTrigger order type
limit: Limit Order
market: Market Order
triggerOrderPriceStringNoTrigger order execution price
Only valid for limit orders (when triggerOrderType=limit); ignored for market orders

OCO (type=oco)​

OCO (One-Cancels-the-Other) places two orders at once — a direct limit order and a conditional (trigger) order — as a single pair. Whichever leg fills or triggers first automatically cancels the other, letting you set a take-profit/bottom-fishing limit and a chase-up/stop-loss trigger in one request.

ParameterTypeRequiredComments
ocoParamsList<String>YesOCO parameters list
>ocoLimitPriceStringYesLimit order price for OCO
side=buy: limit buy price (bottom fishing)
side=sell: limit sell price (take-profit)
Applied to the non-triggered direct limit order
>ocoTriggerPriceStringYesTrigger price for the conditional order leg
side=buy: chase-up trigger price
side=sell: stop-loss trigger price
Applied to the triggered conditional order leg
>ocoOrderTypeStringYesOrder type for the conditional order leg
limit: Limit Order
market: Market Order
>ocoOrderPriceStringNoExecution price for the conditional order leg
side=buy: chase-up price
side=sell: stop-loss price
Required when ocoOrderType=limit

Trailing Stop (type=trailing_stop)​

Trailing stop dynamically follows the market price by a fixed ratio or spread once activated, then submits a preset order when the price pulls back by that trailing distance — allowing you to lock in profit as the market keeps moving in your favor.

ParameterTypeRequiredComments
trailingStopParamsList<String>YesTrailing stop parameters list
>activationPriceStringYesActivation price
Trailing starts when the market reaches this price
>activationTypeStringYesActivation price type
market: Market Price
mark: Mark Price
index: Index Price
For futures only; spot supports market only
>trailTypeStringYesTrailing mode
ratio: Percentage
spread: Spread
>trailVarianceStringYesTrailing variance
When trailType=ratio: spot range [0.1, 20], futures range [0.1, 10]
>preOrderTypeStringYesPreset order type
limit: Limit Order
market: Market Order
>preOrderPriceStringNoPreset order price
Required when preOrderType=limit

Iceberg Order (type=iceberg)​

Iceberg order splits a large order into a series of smaller sub-orders and drips them into the order book over time, reducing market impact and concealing the full order size.

ParameterTypeRequiredComments
icebergParamsList<String>YesIceberg parameters list
>splitModeStringYesSplit mode
quantity: By quantity per sub-order
order: By number of sub-orders
>qtyPerOrderStringNoQuantity per sub-order
Required when splitMode=quantity
>splitOrderNumbersStringNoNumber of sub-orders
Required when splitMode=order
Range: [1, 100]
>orderPreferenceStringYesOrder preference
faster_execution: Faster execution
fixed_distance: Fixed distance
fixed_price: Fixed price
>executionStrategyStringNoSub-order execution strategy
queue1: Same-direction price 1
counterparty1: Counterparty price 1
Valid when orderPreference=faster_execution; default queue1
>fixedDistanceTypeStringNoFixed distance type
spread: By spread
percentage: By percentage
Distance from best bid/ask
Valid when orderPreference=fixed_distance; default spread
>distanceStringNoDistance value
Spread value when fixedDistanceType=spread; percentage when fixedDistanceType=percentage
>fixedPriceStringNoFixed price for sub-orders
Required when orderPreference=fixed_price
>priceLimitStringNoPrice protection limit
Sub-orders will not be placed if price exceeds this limit
Valid when orderPreference=faster_execution or orderPreference=fixed_distance

TWAP (type=twap)​

TWAP (Time-Weighted Average Price) splits an order into equal-interval sub-orders spread evenly across a configured duration, executing gradually to approximate the time-weighted average price instead of filling all at once.

ParameterTypeRequiredComments
twapParamsList<String>YesTWAP parameters list
>durationStringYesTotal duration in minutes
Range: [1, 1440] (1 minute to 24 hours)
>intervalStringYesFrequency in seconds
Enum: 5, 10, 20, 30, 60
>orderTypeStringNoSub-order type
market: Market Order
limit: Limit Order
Default: market
>limitOffsetTypeNumberNoLimit offset type
percentage: Percentage
spread: Spread
Valid when orderType=limit; default percentage
>limitOffsetPercentageNumberNoLimit offset percentage
Decimal format, range [0.001, 0.1]; 0.1 means 10%
Required when limitOffsetType=percentage
>limitOffsetSpreadNumberNoLimit offset spread
Required when limitOffsetType=spread
Spread from latest trade price cannot exceed 20%
>twapTriggerPriceNumberNoStrategy trigger price
>twapTerminationPriceNumberNoStrategy termination price
Strategy terminates early when market reaches this price
Response
{
"code": "00000",
"msg": "success",
"requestTime": 1695806875837,
"data": {
"clientOid": "121211212122",
"orderId": "121211212122"
}
}

Response Parameters​

ParameterTypeComments
orderIdStringOrder ID
clientOidStringClient order ID

How was your Reading Experience with us?

★
★
★
★
â˜