Bitget APIBitget API
UTAClassic
Legacy Doc
  • Overview
  • API Documentation
  • WebSocket
  • Agent Hub
  • SDK
  • Changelog
Copied to clipboard
Trading
    Order Management
      Place OrderpostModify OrderpostCancel OrderpostBatch OrderpostBatch Modify OrderspostBatch CancelpostCancel All OrderspostGet Order DetailsgetGet Open OrdersgetGet Order HistorygetGet Fill HistorygetCountDown Cancel AllpostPlace Reality OrderpostCancel Reality Orderpost
    Position Management
      Close All PositionspostMove PositionspostGet Move Position HistorygetGet Position InfogetGet Positions HistorygetGet Max Open AvailablepostGet Position ADL RankgetGet Loan Dataget
    Strategy Trading
      Place Strategy OrderpostModify Strategy OrderpostCancel Strategy OrderpostUnfilled Strategy OrdersgetHistory Strategy OrdersgetGet Strategy Sub-ordersget
    Grid Trading
      Add Investment AmountpostGet Grid Bot DetailgetClose Grid BotpostCreate Grid BotpostCreate Neutral Grid BotpostGet Grid Bot Order DetailsgetModify Grid Bot ParameterspostModify Grid Interval and Grid NumberpostModify Neutral Grid Bot ParameterspostModify Neutral Grid Interval and Grid NumberpostGet Neutral Grid Bot DetailgetGet Neutral Grid Bot Order DetailsgetValidate Neutral Grid ParameterspostValidate Grid Parameterspost
Trading
Trading

Strategy Trading

Strategy Trading


Place Strategy Order

POST
https://api.bitget.com
/api/v3/trade/place-strategy-order

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"

  • Speed limit is 10 times/s (UID)
  • Permission: UTA trade (read & write)

Place Strategy Order › Request Parameters

category
​string · required

Product type SPOT Spot MARGIN Margin USDT-FUTURES USDT futures COIN-FUTURES Coin-M futures USDC-FUTURES USDC futures

symbol
​string · required

Symbol name e.g.,BTCUSDT

type
​string

Strategy Type tpsl Take-Profit and Stop-Loss trigger Trigger Order oco One-Cancels-the-Other Order trailing_stop Trailing Stop Order iceberg Iceberg Order twap TWAP Order Default:tpsl

side
​string

Trade 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

posSide
​string

Position side long/short

qty
​string

Order Quantity

marginMode
​string

Margin mode
crossed Cross margin
isolated Isolated margin
If not provided, defaults to cross margin
Available only for futures

clientOid
​string

Client order ID The idempotent validity period is six hours (not fully guaranteed) Only valid when type=tpsl; not supported for other strategy types

oneOf
Exactly one variant must match.

Decision Table

VariantMatching Criteria
type = object · type="tpsl"
type = object · type="trigger"
type = object · type="oco" · requires: ocoParams
type = object · type="trailing_stop" · requires: trailingStopParams
type = object · type="iceberg" · requires: icebergParams
type = object · type="twap" · requires: twapParams
Properties for tpsl:
Take-Profit and Stop-Loss (`type=tpsl`) Attach take-profit and/or stop-loss protection to an existing position. Once the market (or mark) price reaches the configured trigger price, Bitget submits a limit or market order on your behalf to close the position.
type
​string · const

Strategy Type

Const value: tpsl
tpslMode
​string

Take-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

qty
​string

Order Quantity Required when tpslMode=partial. Unit is in the base coin

reduceOnly
​string

Whether it is reduce-only yes/no

tpTriggerBy
​string

Take-Profit Trigger Type market: Market Price mark: Mark Price If not specified, the default value is market price

slTriggerBy
​string

Stop-Loss Trigger Type market: Market Price mark: Mark Price If not filled in, the default value is market price

takeProfit
​string

Take-Profit Trigger Price

stopLoss
​string

Stop-Loss Trigger Price

tpOrderType
​string

Take-Profit Trigger Strategy Order Type limit: Limit Order market: Market Order If not filled in, the default value is market price

slOrderType
​string

Stop-Loss Trigger Strategy Order Type limit: Limit Order market: Market Order If not filled in, the default value is market price

tpLimitPrice
​string

Take-Profit Strategy Order Execution Price This field is only valid for limit orders (when tpOrderType=limit); it is ignored for market orders.

slLimitPrice
​string

Stop-Loss Strategy Order Execution Price This field is only valid for limit orders (when slOrderType=limit); it is ignored for market orders

Place Strategy Order › Response Parameters

200

Successful response

code
​string
msg
​string
requestTime
​integer
​object
orderId
​string

Order ID

clientOid
​string

Client order ID

POST/api/v3/trade/place-strategy-order
curl https://api.bitget.com/api/v3/trade/place-strategy-order \ --request POST \ --header 'Content-Type: application/json' \ --data '{ "category": "category", "symbol": "symbol", "type": "type", "side": "side", "posSide": "posSide", "qty": "qty", "marginMode": "marginMode", "clientOid": "clientOid" }'
Example Request Body
{ "category": "category", "symbol": "symbol", "type": "type", "side": "side", "posSide": "posSide", "qty": "qty", "marginMode": "marginMode", "clientOid": "clientOid" }
json
Example Responses
{ "code": "00000", "msg": "success", "requestTime": 1695806875837, "data": { "clientOid": "121211212122", "orderId": "121211212122" } }
json
application/json

Modify Strategy Order

POST
https://api.bitget.com
/api/v3/trade/modify-strategy-order

Modify strategy order

  • Speed limit is 10 times/s (UID)
  • Permission: UTA trade (read & write)

Modify Strategy Order › Request Parameters

orderId
​string · required

Order ID Either orderId or clientOid must be provided If both orderId and clientOid are provided simultaneously, orderId takes higher priority

qty
​string · required

Order Quantity Can be modified under partial take-profit/stop-loss mode, and the unit is in the base coin

clientOid
​string

Client order ID Either orderId or clientOid must be provided If both orderId and clientOid are provided simultaneously, orderId takes higher priority

tpTriggerBy
​string

Take-Profit Trigger Type market: Market Price mark: Mark Price

slTriggerBy
​string

Stop-Loss Trigger Type market: Market Price mark: Mark Price

takeProfit
​string

Take-Profit Trigger Price

stopLoss
​string

Stop-Loss Trigger Price

tpOrderType
​string

Take-Profit Trigger Strategy Order Type limit: Limit Order market: Market Order

slOrderType
​string

Stop-Loss Trigger Strategy Order Type limit: Limit Order market: Market Order

tpLimitPrice
​string

Take-Profit Strategy Order Execution Price This field is only valid for limit orders (when tpOrderType=limit); it is ignored for market orders.

slLimitPrice
​string

Stop-Loss Strategy Order Execution Price This field is only valid for limit orders (when slOrderType=limit); it is ignored for market orders

triggerBy
​string

Trigger order trigger price type market: Market Price mark: Mark Price

triggerPrice
​string

Trigger order trigger price Only valid for limit orders (when triggerOrderType=limit)

triggerOrderType
​string

Trigger order type limit: Limit Order market: Market Order

triggerOrderPrice
​string

Trigger order execution price Only valid for limit orders (when triggerOrderType=limit)

Modify Strategy Order › Response Parameters

200

Successful response

code
​string
msg
​string
requestTime
​integer
​object
orderId
​string

Order ID

clientOid
​string

Client order ID

POST/api/v3/trade/modify-strategy-order
curl https://api.bitget.com/api/v3/trade/modify-strategy-order \ --request POST \ --header 'Content-Type: application/json' \ --data '{ "orderId": "orderId", "clientOid": "clientOid", "qty": "qty", "tpTriggerBy": "tpTriggerBy", "slTriggerBy": "slTriggerBy", "takeProfit": "takeProfit", "stopLoss": "stopLoss", "tpOrderType": "tpOrderType", "slOrderType": "slOrderType", "tpLimitPrice": "tpLimitPrice", "slLimitPrice": "slLimitPrice", "triggerBy": "triggerBy", "triggerPrice": "triggerPrice", "triggerOrderType": "triggerOrderType", "triggerOrderPrice": "triggerOrderPrice" }'
Example Request Body
{ "orderId": "orderId", "clientOid": "clientOid", "qty": "qty", "tpTriggerBy": "tpTriggerBy", "slTriggerBy": "slTriggerBy", "takeProfit": "takeProfit", "stopLoss": "stopLoss", "tpOrderType": "tpOrderType", "slOrderType": "slOrderType", "tpLimitPrice": "tpLimitPrice", "slLimitPrice": "slLimitPrice", "triggerBy": "triggerBy", "triggerPrice": "triggerPrice", "triggerOrderType": "triggerOrderType", "triggerOrderPrice": "triggerOrderPrice" }
json
Example Responses
{ "code": "00000", "msg": "success", "requestTime": 1695806875837, "data": { "clientOid": "121211212122", "orderId": "121211212122" } }
json
application/json

Cancel Strategy Order

POST
https://api.bitget.com
/api/v3/trade/cancel-strategy-order

Cancel strategy order For iceberg/twap orders, cancelling the parent order also cancels all of its unfilled child orders. For oco orders, cancelling either leg of the pair also cancels the other leg.

  • Speed limit is 10 times/s (UID)
  • Permission: UTA trade (read & write)

Cancel Strategy Order › Request Parameters

orderId
​string · required

Order ID Either orderId or clientOid must be provided If both orderId and clientOid are provided simultaneously, orderId takes higher priority

clientOid
​string

Client order ID Either orderId or clientOid must be provided If both orderId and clientOid are provided simultaneously, orderId takes higher priority

Cancel Strategy Order › Response Parameters

200

Successful response

code
​string
msg
​string
requestTime
​integer
​object
code
​string

Code

msg
​string

Msg

requestTime
​string

Timestamp

POST/api/v3/trade/cancel-strategy-order
curl https://api.bitget.com/api/v3/trade/cancel-strategy-order \ --request POST \ --header 'Content-Type: application/json' \ --data '{ "orderId": "orderId", "clientOid": "clientOid" }'
Example Request Body
{ "orderId": "orderId", "clientOid": "clientOid" }
json
Example Responses
{ "code": "00000", "msg": "success", "requestTime": 1695806875837, "data": null }
json
application/json

Unfilled Strategy Orders

GET
https://api.bitget.com
/api/v3/trade/unfilled-strategy-orders

Get unfilled strategy orders

  • Speed limit is 20 times/s (UID)
  • Permission: UTA trade (read)

Unfilled Strategy Orders › Request Parameters

category
​string · required

Product type SPOT Spot MARGIN Margin USDT-FUTURES USDT futures COIN-FUTURES Coin-M futures USDC-FUTURES USDC futures

type
​string

Strategy Type tpsl Take-Profit and Stop-Loss trigger Trigger Order oco OCO trailing_stop Trailing Stop iceberg Iceberg twap TWAP

Unfilled Strategy Orders › Response Parameters

200

Successful response

code
​string
msg
​string
requestTime
​integer
​object[]

Order list

orderId
​string

Order ID

clientOid
​string

Client order ID

category
​string

Product type USDT-FUTURES USDT futures COIN-FUTURES Coin-M futures USDC-FUTURES USDC futures

symbol
​string

Symbol name e.g.,BTCUSDT

qty
​string

Order Quantity

side
​string

Order side buy/sell

posSide
​string

Position side long/short

status
​string

Strategy order status pending Waiting to be executed success Executed failed Execution failed cancelled Cancelled submitting Submitting

tpTriggerBy
​string

Take-Profit Trigger Type market: Market Price mark: Mark Price

slTriggerBy
​string

Stop-Loss Trigger Type market: Market Price mark: Mark Price

takeProfit
​string

Take-Profit Trigger Price

stopLoss
​string

Stop-Loss Trigger Price

tpOrderType
​string

Take-Profit Trigger Strategy Order Type limit: Limit Order market: Market Order

slOrderType
​string

Stop-Loss Trigger Strategy Order Type limit: Limit Order market: Market Order

tpLimitPrice
​string

Take-Profit Strategy Order Execution Price

slLimitPrice
​string

Stop-Loss Strategy Order Execution Price

triggerBy
​string

Trigger order trigger price type market: Market Price mark: Mark Price

triggerPrice
​string

Trigger order trigger price

triggerOrderType
​string

Trigger order type limit: Limit Order market: Market Order

triggerOrderPrice
​string

Trigger order execution price

​object

OCO parameters list Returned when type=oco

OCO parameters list Returned when `type=oco`
ocoLimitPrice
​string

Limit order price for OCO

ocoTriggerPrice
​string

Trigger price for the conditional order leg

ocoOrderType
​string

Order type for the conditional order leg limit: Limit Order market: Market Order

ocoOrderPrice
​string

Execution price for the conditional order leg

​object

Trailing stop parameters list Returned when type=trailing_stop

Trailing stop parameters list Returned when `type=trailing_stop`
activationPrice
​string

Activation price

activationType
​string

Activation price type market: Market Price mark: Mark Price index: Index Price

trailType
​string

Trailing mode ratio: Percentage spread: Spread

trailVariance
​string

Trailing variance

preOrderType
​string

Preset order type limit: Limit Order market: Market Order

preOrderPrice
​string

Preset order price

​object

Iceberg parameters list Returned when type=iceberg

Iceberg parameters list Returned when `type=iceberg`
splitMode
​string

Split mode quantity: By quantity per sub-order order: By number of sub-orders

qtyPerOrder
​string

Quantity per sub-order

splitOrderNumbers
​string

Number of sub-orders

orderPreference
​string

Order preference faster_execution: Faster execution fixed_distance: Fixed distance fixed_price: Fixed price

executionStrategy
​string

Sub-order execution strategy queue1: Same-direction price 1 counterparty1: Counterparty price 1

fixedDistanceType
​string

Fixed distance type spread: By spread percentage: By percentage

distance
​string

Distance value

fixedPrice
​string

Fixed price for sub-orders

priceLimit
​string

Price protection limit

​object

TWAP parameters list Returned when type=twap

TWAP parameters list Returned when `type=twap`
duration
​string

Total duration in minutes

interval
​string

Frequency in seconds

orderType
​string

Sub-order type market: Market Order limit: Limit Order

limitOffsetType
​number

Limit offset type percentage: Percentage spread: Spread

limitOffsetPercentage
​number

Limit offset percentage

limitOffsetSpread
​number

Limit offset spread

twapTriggerPrice
​number

Strategy trigger price

twapTerminationPrice
​number

Strategy termination price

marginMode
​string

Margin mode
crossed Cross margin
isolated Isolated margin
If not provided, defaults to cross margin
Available only for futures

createdTime
​string

Order created timestamp A Unix millisecond timestamp

updatedTime
​string

Order update timestamp A Unix millisecond timestamp

GET/api/v3/trade/unfilled-strategy-orders
curl 'https://api.bitget.com/api/v3/trade/unfilled-strategy-orders?category=<string>'
Example Responses
{ "code": "00000", "msg": "success", "requestTime": 1730186730084, "data": [ { "orderId": "111111111111111111", "clientOid": "111111111111111111", "category": "USDT-FUTURES", "symbol": "BTCUSDT", "qty": "0.01", "side": "sell", "posSide": "long", "status": "pending", "tpTriggerBy": "market", "slTriggerBy": "market", "takeProfit": "110000", "stopLoss": "90000", "tpOrderType": "market", "slOrderType": "market", "tpLimitPrice": "91000", "slLimitPrice": "111000", "triggerBy": "market", "triggerPrice": "100000", "triggerOrderType": "limit", "triggerOrderPrice": "100500", "marginMode": "crossed", "createdTime": "1730186725663", "updatedTime": "1730186725691" } ] }
json
application/json

History Strategy Orders

GET
https://api.bitget.com
/api/v3/trade/history-strategy-orders

Get historical strategy orders

  • Speed limit is 20 times/s (UID)
  • Permission: UTA trade (read)

History Strategy Orders › Request Parameters

category
​string · required

Product type SPOT Spot MARGIN Margin USDT-FUTURES USDT futures COIN-FUTURES Coin-M futures USDC-FUTURES USDC futures

type
​string

Strategy Type tpsl Take-Profit and Stop-Loss trigger Trigger Order oco OCO trailing_stop Trailing Stop iceberg Iceberg twap TWAP

startTime
​string

Start timestamp A Unix timestamp in milliseconds e.g.,1597026383085

endTime
​string

End timestamp A Unix timestamp in milliseconds e.g.,1597026383085

limit
​string

Limit per page Default:100. Maximum:100

cursor
​string

Cursor Pagination is implemented by omitting the cursor in the first query and applying the cursor from the previous query for subsequent pages

History Strategy Orders › Response Parameters

200

Successful response

code
​string
msg
​string
requestTime
​integer
​object
​object[]

Order list

orderId
​string

Order ID

clientOid
​string

Client order ID

category
​string

Product type USDT-FUTURES USDT futures COIN-FUTURES Coin-M futures USDC-FUTURES USDC futures

symbol
​string

Symbol name e.g.,BTCUSDT

qty
​string

Order Quantity

posSide
​string

Position side long/short

status
​string

Strategy order status success Executed failed Execution failed cancelled Cancelled

triggerType
​string

Trigger Type takeProfitTake-Profit stopLossStop-Loss

tpTriggerBy
​string

Take-Profit Trigger Type market: Market Price mark: Mark Price

slTriggerBy
​string

Stop-Loss Trigger Type market: Market Price mark: Mark Price

takeProfit
​string

Take-Profit Trigger Price

stopLoss
​string

Stop-Loss Trigger Price

tpOrderType
​string

Take-Profit Trigger Strategy Order Type limit: Limit Order market: Market Order

slOrderType
​string

Stop-Loss Trigger Strategy Order Type limit: Limit Order market: Market Order

tpLimitPrice
​string

Take-Profit Strategy Order Execution Price

slLimitPrice
​string

Stop-Loss Strategy Order Execution Price

triggerBy
​string

Trigger order trigger price type market: Market Price mark: Mark Price

triggerPrice
​string

Trigger order trigger price

triggerOrderType
​string

Trigger order type limit: Limit Order market: Market Order

triggerOrderPrice
​string

Trigger order execution price

​object

OCO parameters list Returned when type=oco

OCO parameters list Returned when `type=oco`
ocoLimitPrice
​string

Limit order price for OCO

ocoTriggerPrice
​string

Trigger price for the conditional order leg

ocoOrderType
​string

Order type for the conditional order leg limit: Limit Order market: Market Order

ocoOrderPrice
​string

Execution price for the conditional order leg

​object

Trailing stop parameters list Returned when type=trailing_stop

Trailing stop parameters list Returned when `type=trailing_stop`
activationPrice
​string

Activation price

activationType
​string

Activation price type market: Market Price mark: Mark Price index: Index Price

trailType
​string

Trailing mode ratio: Percentage spread: Spread

trailVariance
​string

Trailing variance

preOrderType
​string

Preset order type limit: Limit Order market: Market Order

preOrderPrice
​string

Preset order price

​object

Iceberg parameters list Returned when type=iceberg

Iceberg parameters list Returned when `type=iceberg`
splitMode
​string

Split mode quantity: By quantity per sub-order order: By number of sub-orders

qtyPerOrder
​string

Quantity per sub-order

splitOrderNumbers
​string

Number of sub-orders

orderPreference
​string

Order preference faster_execution: Faster execution fixed_distance: Fixed distance fixed_price: Fixed price

executionStrategy
​string

Sub-order execution strategy queue1: Same-direction price 1 counterparty1: Counterparty price 1

fixedDistanceType
​string

Fixed distance type spread: By spread percentage: By percentage

distance
​string

Distance value

fixedPrice
​string

Fixed price for sub-orders

priceLimit
​string

Price protection limit

​object

TWAP parameters list Returned when type=twap

TWAP parameters list Returned when `type=twap`
duration
​string

Total duration in minutes

interval
​string

Frequency in seconds

orderType
​string

Sub-order type market: Market Order limit: Limit Order

limitOffsetType
​number

Limit offset type percentage: Percentage spread: Spread

limitOffsetPercentage
​number

Limit offset percentage

limitOffsetSpread
​number

Limit offset spread

twapTriggerPrice
​number

Strategy trigger price

twapTerminationPrice
​number

Strategy termination price

marginMode
​string

Margin mode
crossed Cross margin
isolated Isolated margin
If not provided, defaults to cross margin
Available only for futures

createdTime
​string

Order created timestamp A Unix millisecond timestamp

updatedTime
​string

Order update timestamp A Unix millisecond timestamp

cursor
​string

Cursor for next page Pass this value as the cursor parameter in the next request to get the next page of data

GET/api/v3/trade/history-strategy-orders
curl 'https://api.bitget.com/api/v3/trade/history-strategy-orders?category=<string>'
Example Responses
{ "code": "00000", "msg": "success", "requestTime": 1730186730084, "data": { "list": [ { "orderId": "111111111111111111", "clientOid": "111111111111111111", "category": "USDT-FUTURES", "symbol": "BTCUSDT", "qty": "0.01", "posSide": "long", "status": "success", "tpTriggerBy": "market", "slTriggerBy": "market", "takeProfit": "110000", "stopLoss": "90000", "tpOrderType": "market", "slOrderType": "market", "tpLimitPrice": "91000", "slLimitPrice": "111000", "triggerBy": "market", "triggerPrice": "100000", "triggerOrderType": "limit", "triggerOrderPrice": "100500", "marginMode": "crossed", "createdTime": "1730186725663", "updatedTime": "1730186725691" } ], "cursor": "1233319323918499840" } }
json
application/json

Get Strategy Sub-orders

GET
https://api.bitget.com
/api/v3/trade/strategy-sub-orders

Get historical sub-orders generated by a strategy order

  • Rate limit: 10 times/s (UID)
  • Permission: UTA trade (read)

Get Strategy Sub-orders › Request Parameters

orderId
​string · required

Strategy order ID

limit
​string

Limit per page Default:100. Maximum:100

cursor
​string

Cursor Pagination is implemented by omitting the cursor in the first query and applying the cursor from the previous query for subsequent pages

Get Strategy Sub-orders › Response Parameters

200

Successful response

code
​string
msg
​string
requestTime
​integer
​object
​object[]

Sub-order list

subOrderId
​string

Sub-order ID

subClientOid
​string

Client order ID

category
​string

Product type SPOT Spot MARGIN Margin USDT-FUTURES USDT futures COIN-FUTURES Coin-M futures USDC-FUTURES USDC futures

symbol
​string

Symbol name

price
​string

Order price

qty
​string

Order quantity Unit: base coin

cumExecQty
​string

Cumulative executed quantity Unit: base coin

avgPrice
​string

Average execution price

side
​string

Trade side buy/sell

posSide
​string

Position side long/short Applies to futures orders only

status
​string

Order status filled Filled cancelled Cancelled failed Failed

createdTime
​string

Order created timestamp Unix millisecond timestamp

updatedTime
​string

Order updated timestamp Unix millisecond timestamp

cursor
​integer

Cursor for next page Pass this value as the cursor parameter in the next request to get the next page of data

GET/api/v3/trade/strategy-sub-orders
curl 'https://api.bitget.com/api/v3/trade/strategy-sub-orders?orderId=<string>'
Example Responses
{ "code": "00000", "msg": "success", "requestTime": 1724486400000, "data": { "list": [ { "subOrderId": "1234567890123456789", "subClientOid": "myOrder001", "category": "USDT-FUTURES", "symbol": "BTCUSDT", "price": "60000", "qty": "0.01", "cumExecQty": "0.01", "avgPrice": "60001", "side": "buy", "posSide": "long", "status": "filled", "createdTime": "1724486400000", "updatedTime": "1724486401000" } ], "cursor": 1234567890123456800 } }
json
application/json

Position ManagementGrid Trading