Move Positions
Move Positions
Description
Currently, only available in demo trading.
Supports position moves between master and sub-accounts, as well as between sub-accounts:
- Master account → Sub-account
- Sub-account → Master account
- Sub-account → Sub-account (must belong to the same master account)
- This feature is only available to whitelisted users and can only be called using the master account's API Key. The
fromUidandtoUidmust belong to the same master-sub account system. Currently only supports USDT futures and USDC futures. Only cross-margin mode is supported. - The trades generated by position moves will not appear in the public market trades and no trading fees will be charged.
- Position moves are not supported within 5 minutes before or after each hour (funding fee settlement period). Position moves are not supported when the source account's MMR ≥ 80%. Before the position move, the system will cancel all pending orders for the corresponding symbol in both the source and target accounts. The move price defaults to and only supports the mark price.
- Users can trigger up to 50 position move requests per day (counting from a successful call). Each request must be at least 1 minute apart. A maximum of 10 positions can be moved per request.
HTTP Request
- POST /api/v3/account/move-positions
- Rate limit: 1/sec/UID
- Permission: UTA trade (read & write)
Request
curl -X POST "https://api.bitget.com/api/v3/account/move-positions" \
-H "ACCESS-KEY:your apiKey" \
-H "ACCESS-SIGN:*" \
-H "ACCESS-PASSPHRASE:*" \
-H "ACCESS-TIMESTAMP:1659076670000" \
-H "locale:en-US" \
-H "Content-Type: application/json" \
-d '{
"fromUid": "111111111",
"toUid": "222222222",
"category": "USDT-FUTURES",
"positionList": [
{
"symbol": "BTCUSDT",
"side": "sell",
"qty": "0.5"
}
]
}'
Request Parameters
| Parameter | Type | Required | Comments |
|---|---|---|---|
| fromUid | String | Yes | Source account UID The account from which positions are transferred fromUid and toUid must belong to the same master-sub account system |
| toUid | String | Yes | Target account UID The account to which positions are transferred fromUid and toUid must belong to the same master-sub account system |
| category | String | Yes | Product type USDT-FUTURES USDT futures COIN-FUTURES Coin-M futures USDC-FUTURES USDC futures |
| positionList | Array | Yes | Position list Maximum of 10 positions per request |
| >symbol | String | Yes | Symbol name e.g., BTCUSDT |
| >side | String | Yes | Order side (from the source account's perspective) buy/sell The logic is consistent for both one-way mode and hedge mode. When the source holds a long position, pass side=sell to reduce the position. When the source holds a short position, pass side=buy to reduce the position. |
| >qty | String | Yes | Transfer quantity Must meet the minimum quantity precision requirement |
Response
{
"code": "00000",
"msg": "success",
"requestTime": 1695806875837,
"data": {
"fromList": [
{
"orderId": "121211212122",
"clientOid": "131311313133",
"code": "",
"msg": ""
}
],
"toList": [
{
"orderId": "121211212123",
"clientOid": "131311313134",
"code": "",
"msg": ""
}
]
}
}
Response Parameters
| Parameter | Type | Comments |
|---|---|---|
| fromList | Array | Source account position result list |
| >orderId | String | Source order ID |
| >clientOid | String | Source client order ID |
| >code | String | Error code Returned when an error occurs during the close position operation |
| >msg | String | Error message Returned when an error occurs during the close position operation |
| toList | Array | Target account position result list |
| >orderId | String | Target order ID |
| >clientOid | String | Target client order ID |
| >code | String | Error code Returned when an error occurs during the open position operation |
| >msg | String | Error message Returned when an error occurs during the open position operation |