Skip to main content

Get Position History

Query the authenticated user's closed prediction market positions. Includes settlement results (WIN/LOSE) for resolved events.

HTTP Request

POST/v5/alpha/prediction/position-history

Request Parameters

ParameterRequiredTypeComments
tokenIdfalsestringFilter by outcome token ID
eventIdfalsestringFilter by event ID
resultfalseintegerFilter by position outcome. Refer to predictionPositionResult
daysfalseintegerLook back N days. Max: 90
limitfalseintegerNumber of records per page
pageIndexfalseintegerPage number starting from 1

Response Parameters

ParameterTypeComments
positionsarrayClosed position records
> positionIdstringPosition ID
> tokenIdstringOutcome token ID
> eventIdstringEvent ID
> outcomeNamestringOutcome label (e.g., YES, NO)
> sharesstringTotal shares that were held
> coststringTotal USDC cost of this position
> avgPricestringAverage cost price per share
> exitPricestringPrice at which the position was closed
> realizedPnlstringRealized profit/loss (USDC). Positive = profit
> realizedPnlRatestringRealized P&L as decimal ratio
> resultintegerPosition outcome. Refer to predictionPositionResult
> closedAtintegerPosition close timestamp (UTC milliseconds)
totalintegerTotal matching records

Request Example

POST /v5/alpha/prediction/position-history 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,
"days": 30
}

Response Example

{
"retCode": 0,
"retMsg": "OK",
"result": {
"positions": [
{
"positionId": "pos_456",
"tokenId": "token_yes_456",
"eventId": "event_456",
"outcomeName": "YES",
"shares": "200",
"cost": "140.00",
"avgPrice": "0.70",
"exitPrice": "1.00",
"realizedPnl": "60.00",
"realizedPnlRate": "0.429",
"result": 1,
"closedAt": 1704153600000
}
],
"total": 1
},
"retExtInfo": {},
"time": 1704067200000
}