Skip to main content

Get Positions

List currently open futures positions.

HTTP

MethodGET
Endpoint/trade/api/v2/futures/positions
Rate limit20 requests per 60 seconds

Request Parameters

ParameterTypeMandatoryDescription
exchangestringYesEXCHANGE_2.
symbolstringYesSymbol, e.g. BTCUSDT.

Example

import requests

headers, path = sign_request("GET", "/trade/api/v2/futures/positions",
params={"exchange": "EXCHANGE_2", "symbol": "btcusdt"})
response = requests.get(BASE_URL + path, headers=headers)
print(response.json())

Response

{
"data": [
{
"exchange": "EXCHANGE_2",
"position_id": "8b81b763-df36-4c93-9bc8-9a93d65b8546",
"symbol": "DOGEUSDT",
"position_side": "LONG",
"leverage": "25",
"position_size": "65",
"position_value": "25.09455",
"position_margin": "34.052117186199",
"maint_margin": "37.641825",
"avg_entry_price": "0.38607",
"mark_price": "0.38231",
"last_price": "0.38135",
"unrealised_pnl": "0.3068",
"liquidation_price": "0.129122150942",
"client_txn_id": "00000000-0000-0000-0000-000000000000",
"margin_type": "ISOLATED",
"status": "OPEN",
"created_at": 1732617093684,
"updated_at": 1732636761825
}
]
}

Response Parameters

data is an array of positions. Each entry:

FieldTypeDescription
exchangestringExchange identifier.
position_idstringPosition ID (UUID).
symbolstringSymbol.
position_sidestringLONG or SHORT.
leveragestringCurrent leverage on this symbol.
position_sizestringPosition size in base asset.
position_valuestringNotional value in USDT.
position_marginstringMargin currently allocated to the position (USDT).
maint_marginstringMinimum margin required to avoid liquidation (USDT). See Margin & Leverage.
avg_entry_pricestringVolume-weighted average entry price.
mark_pricestringMark price used for liquidation and unrealised P&L.
last_pricestringMost recent trade price.
unrealised_pnlstringUnrealised P&L on this position (USDT).
liquidation_pricestringMark price at which the position would be liquidated.
client_txn_idstringClient transaction ID associated with the most recent margin operation on this position. Default is the all-zeros UUID if you've never sent one.
margin_typestringMargin mode (ISOLATED or CROSS).
statusstringOPEN while the position is live. Closed positions are not returned by this endpoint.
created_atintegerPosition open time (Unix milliseconds).
updated_atintegerLast update time (Unix milliseconds).
Stale snapshots

If mark_price and unrealised_pnl are both 0, treat them as transient — the system is mid-update. The other fields (position_size, avg_entry_price, etc.) remain reliable.