Skip to main content

Get Positions

Returns open positions and their current PnL.

MethodGET
Path/v5/position/list
AuthAuthenticated.

Query parameters

ParameterTypeRequiredDescription
categorystringYeslinear.
symbolstringNoFilter by symbol. Omit to list all.
cursorstringNoPagination cursor.

Request

from reference_client import sign_request, BASE_URL
import requests

headers, path = sign_request(
"GET",
"/v5/position/list",
{"category": "linear", "symbol": "BTCUSDT"},
)
r = requests.get(BASE_URL + path, headers=headers)
print(r.json())

Response

{
"retCode": 0,
"retMsg": "OK",
"result": {
"category": "linear",
"list": [
{
"symbol": "BTCUSDT",
"side": "Buy",
"size": "0.005",
"positionValue": "548.6471",
"avgPrice": "109729.42",
"markPrice": "109755.4",
"unrealisedPnl": "0.1299",
"cumRealisedPnl": "-0.1920265",
"leverage": "2",
"positionIdx": 1,
"positionStatus": "Normal",
"tradeMode": 0,
"autoAddMargin": 0,
"positionIM": "274.47442796",
"positionMM": "2.89411346",
"createdTime": "1756456567526",
"updatedTime": "1756460295495"
}
]
}
}

Response parameters

FieldTypeDescription
sidestringBuy (long) or Sell (short).
sizestringPosition size in base asset.
positionValuestringCurrent notional value in USDT.
avgPricestringAverage entry price.
markPricestringCurrent mark price.
unrealisedPnlstringUnrealised PnL at the current mark price.
cumRealisedPnlstringCumulative realised PnL on this position since it opened.
leveragestringEffective leverage on this position.
positionIdxinteger0 = one-way, 1 = long (hedge), 2 = short (hedge).
positionStatusstringNormal, Liq, Adl.
positionIMstringInitial margin requirement.
positionMMstringMaintenance margin requirement — if equity drops below this, liquidation triggers.