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

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 = object
type = object · requires: ocoParams
type = object · requires: trailingStopParams
type = object · requires: icebergParams
type = object · 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.
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", "clientOid": "clientOid" }'
Example Request Body
{ "category": "category", "symbol": "symbol", "type": "type", "side": "side", "posSide": "posSide", "qty": "qty", "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

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

​object

Trailing stop parameters list Returned when type=trailing_stop

​object

Iceberg parameters list Returned when type=iceberg

​object

TWAP parameters list Returned when type=twap

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", "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", "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

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", "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

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