REST APIPositions
Get positions
Get data about your positions. Requires JWT authentication.
ApiKeyAuthBearerAuthx-api-key<token>API key authentication via the x-api-key header.
AuthorizationBearer <JWT>Bearer authentication via the Authorization: Bearer <token> header.
first?integerPage size, from 1 to 100. Defaults to 20. A value outside that range is clamped.
int32after?stringThe cursor from the previous page, to get the next one.
length <= 1024marketId?integerOnly positions in this market. Cannot be combined with marketIds.
int64marketIds?array<>Only positions in these markets (comma-separated or repeated, up to
100). Cannot be combined with marketId.
categoryId?stringOnly positions in the category with this slug, which markets return as categorySlug.
length <= 256isResolved?booleanSet to true for only positions in resolved markets, or false for only those in
unresolved markets. Both are listed by default.
includeLost?booleanAlso list positions in outcomes that settled as losing. Off by default, since those need no action from the holder.
sort?stringHow to order the positions. Defaults to EVENT_BLOCK_DESC, which lists the most
recently changed positions first.
"AMOUNT_DESC""EVENT_BLOCK_ASC""EVENT_BLOCK_DESC""SHARES_VALUE_DESC""RETURN_DESC"application/json; charset=utf-8- response
Response for GET /v1/positions
success*booleancursor?stringdata*array<>curl -X GET 'https://api.predict.fun/v1/positions'{ "success": true, "cursor": "string", "data": [ { "id": "string", "market": { "id": 0, "imageUrl": "string", "title": "string", "question": "string", "description": "string", "tradingStatus": "OPEN", "status": "REGISTERED", "isVisible": true, "isNegRisk": true, "isYieldBearing": true, "feeRateBps": 0, "makerFeeBps": 0, "resolution": { "name": "string", "indexSet": 0, "onChainId": "string", "status": "WON", "bestBid": { "price": 0.1, "size": 0.1 }, "bestAsk": { "price": 0.1, "size": 0.1 }, "team": { "id": 0, "name": "string", "abbreviation": "string", "alias": "string", "league": "string" }, "variantData": { "type": "ESPORTS_DOTA2", "provider": "PREDICT_SPORTS", "team": { "id": 0, "name": "string", "abbreviation": "string", "providerTeamId": "string", "isHome": true, "record": { "wins": 0, "losses": 0, "draws": 0, "overtimeLosses": 0 }, "color": "string" } }, "variantDetails": { "sports": { "provider": "PREDICT_SPORTS", "team": { "id": 0, "name": "string", "abbreviation": "string", "providerTeamId": "string", "isHome": true, "record": { "wins": 0, "losses": 0, "draws": 0, "overtimeLosses": 0 }, "color": "string" } } } }, "oracleQuestionId": "string", "conditionId": "string", "resolverAddress": "string", "outcomes": [ { "name": "string", "indexSet": 0, "onChainId": "string", "status": "WON", "bestBid": { "price": 0.1, "size": 0.1 }, "bestAsk": { "price": 0.1, "size": 0.1 }, "team": { "id": 0, "name": "string", "abbreviation": "string", "alias": "string", "league": "string" }, "variantData": { "type": "ESPORTS_DOTA2", "provider": "PREDICT_SPORTS", "team": { "id": 0, "name": "string", "abbreviation": "string", "providerTeamId": "string", "isHome": true, "record": { "wins": 0, "losses": 0, "draws": 0, "overtimeLosses": 0 }, "color": "string" } }, "variantDetails": { "sports": { "provider": "PREDICT_SPORTS", "team": { "id": 0, "name": "string", "abbreviation": "string", "providerTeamId": "string", "isHome": true, "record": { "wins": 0, "losses": 0, "draws": 0, "overtimeLosses": 0 }, "color": "string" } } } } ], "questionIndex": 0, "spreadThreshold": 0.1, "shareThreshold": 0, "isBoosted": true, "boostStartsAt": "string", "boostEndsAt": "string", "polymarketConditionIds": [ "string" ], "kalshiMarketTicker": "string", "categorySlug": "string", "seriesSlug": "string", "createdAt": "string", "decimalPrecision": 0, "marketVariant": "DEFAULT", "variantData": { "type": "CRYPTO_UP_DOWN", "priceFeedProvider": "PYTH", "startPrice": 0.1, "endPrice": 0.1, "priceFeedId": "string", "priceFeedSymbol": "string" }, "variantDetails": { "sports": { "provider": "PREDICT_SPORTS", "team": { "id": 0, "name": "string", "abbreviation": "string", "providerTeamId": "string", "isHome": true, "record": { "wins": 0, "losses": 0, "draws": 0, "overtimeLosses": 0 }, "color": "string" }, "line": 0.1, "gameNumber": 0 } }, "team": { "id": 0, "name": "string", "abbreviation": "string", "alias": "string", "league": "string" }, "marketType": "SPORTS_MONEYLINE", "rewards": { "current": { "hourlyRate": 0, "startsAt": "string", "endsAt": "string" }, "schedule": [ { "hourlyRate": 0, "startsAt": "string", "endsAt": "string" } ] } }, "outcome": { "name": "string", "indexSet": 0, "onChainId": "string", "status": "WON", "bestBid": { "price": 0.1, "size": 0.1 }, "bestAsk": { "price": 0.1, "size": 0.1 }, "team": { "id": 0, "name": "string", "abbreviation": "string", "alias": "string", "league": "string" }, "variantData": { "type": "ESPORTS_DOTA2", "provider": "PREDICT_SPORTS", "team": { "id": 0, "name": "string", "abbreviation": "string", "providerTeamId": "string", "isHome": true, "record": { "wins": 0, "losses": 0, "draws": 0, "overtimeLosses": 0 }, "color": "string" } }, "variantDetails": { "sports": { "provider": "PREDICT_SPORTS", "team": { "id": 0, "name": "string", "abbreviation": "string", "providerTeamId": "string", "isHome": true, "record": { "wins": 0, "losses": 0, "draws": 0, "overtimeLosses": 0 }, "color": "string" } } } }, "amount": "string", "valueUsd": "string", "averageBuyPriceUsd": "string", "pnlUsd": "string" } ]}Get referral fee events GET
Returns paginated on-chain referral fee earnings for the authenticated wallet, newest first. The occurred_after and occurred_before filters are unix timestamps in milliseconds and both bounds are exclusive: only events that occurred strictly after occurred_after and strictly before occurred_before are returned. Neither bound is carried in the pagination cursor, so send the same filters again when requesting the next page.
Get positions by address GET
Get positions for a specific wallet address.