Skip to main content

Get Position List

Query the authenticated user's active prediction market positions. Call this before placing a sell order to confirm the position exists.

HTTP Request

POST/v5/alpha/prediction/position-list

Request Parameters

ParameterRequiredTypeComments
tokenIdfalsestringFilter by outcome token ID
eventIdfalsestringFilter by event ID
limitfalseintegerNumber of records per page
pageIndexfalseintegerPage number starting from 1

Response Parameters

ParameterTypeComments
positionsarrayActive position records
> positionIdstringPosition ID
> tokenIdstringOutcome token ID
> eventIdstringEvent ID
> outcomeNamestringOutcome label (e.g., YES, NO, or team name)
> sharesstringTotal shares held
> coststringTotal USDC cost of this position
> avgPricestringAverage cost price per share
> currentPricestringCurrent market price per share (0–1)
> valuestringCurrent market value of the position (USDC)
> unrealizedPnlstringUnrealized profit/loss (USDC)
> unrealizedPnlRatestringUnrealized P&L as decimal ratio (e.g. 0.107 = 10.7%)
> createdAtintegerPosition open timestamp (UTC milliseconds)
> finishedbooleanWhether the associated event has ended
totalintegerTotal matching records
totalAssetUsdstringTotal asset value across all positions (USD)

Request Example

POST /v5/alpha/prediction/position-list HTTP/1.1
Host: api.bybit.com
X-BAPI-SIGN: XXXXXX
X-BAPI-API-KEY: xxxxxxxxxxxxxxxxxx
X-BAPI-TIMESTAMP: 1704067200000
X-BAPI-RECV-WINDOW: 5000
Content-Type: application/json

{
"limit": 20,
"pageIndex": 1
}

Response Example

{
"retCode": 0,
"retMsg": "OK",
"result": {
"positions": [
{
"positionId": "pos_001",
"tokenId": "token_yes_123",
"eventId": "event_123",
"outcomeName": "YES",
"shares": "153.84",
"cost": "100.00",
"avgPrice": "0.65",
"currentPrice": "0.72",
"value": "110.77",
"unrealizedPnl": "10.77",
"unrealizedPnlRate": "0.107",
"createdAt": 1704067200000,
"finished": false
}
],
"total": 1,
"totalAssetUsd": "110.77"
},
"retExtInfo": {},
"time": 1704067200000
}