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