Skip to main content
GET
/
2
/
wallet
/
pm
/
positions
Get wallet prediction market positions
curl --request GET \
  --url https://demo-api.mobula.io/api/2/wallet/pm/positions
{
  "data": [
    {
      "platform": "<string>",
      "market": {
        "marketId": "<string>",
        "question": "<string>",
        "category": "<string>",
        "status": "<string>",
        "logo": "<string>",
        "endDate": "<string>"
      },
      "outcomeId": "<string>",
      "label": "<string>",
      "balance": 123,
      "costBasisUSD": 123,
      "avgBuyPriceUSD": 123,
      "avgSellPriceUSD": 123,
      "priceUSD": 123,
      "amountUSD": 123,
      "unrealizedPnlUSD": 123,
      "unrealizedPnlPercent": 123,
      "realizedPnlUSD": 123,
      "totalPnlUSD": 123,
      "totalFeesPaidUSD": 123,
      "buys": 123,
      "sells": 123,
      "volumeBuyUSD": 123,
      "volumeSellUSD": 123,
      "firstDate": "<string>",
      "lastDate": "<string>",
      "labels": [
        "<string>"
      ]
    }
  ],
  "wallet": {
    "fundingInfo": {},
    "entity": "<string>",
    "labels": [
      "<string>"
    ]
  },
  "pagination": {
    "page": 123,
    "offset": 123,
    "limit": 123,
    "pageEntries": 123
  },
  "hostname": "<string>",
  "took": 123
}
Alpha — This endpoint is part of the Prediction Markets API, currently in early access. May change without notice.

Query Parameters

wallet
string
required
The wallet address to get positions for.
platforms
string
Comma-separated list of platforms to filter by.
status
string
Position status filter: active, resolved, or all.
sortBy
string
default:"amountUSD"
Sort order: amountUSD, totalPnlUSD, or createdAt.
limit
number
default:"50"
Number of positions to return (1 to 100).
offset
number
default:"0"
Pagination offset.

Response

data
array
Array of wallet positions.
wallet
object | null
Wallet metadata (fundingInfo, entity, labels). Null when unavailable.
pagination
object
Pagination metadata.
hostname
string
Server node identifier.
took
number
Request processing time in milliseconds.

Usage Example

curl -X GET "https://api.mobula.io/api/2/wallet/pm/positions?wallet=0xYourWalletAddress&status=active"

Example Response

{
  "data": [
    {
      "platform": "polymarket",
      "market": {
        "marketId": "0x1234...",
        "question": "Will ETH reach $10,000 by end of 2026?",
        "category": "crypto",
        "status": "active",
        "logo": "https://polymarket.com/images/market.png",
        "endDate": "2026-12-31T23:59:59.000Z"
      },
      "outcomeId": "71321...",
      "label": "Yes",
      "balance": 100,
      "costBasisUSD": 35,
      "avgBuyPriceUSD": 0.35,
      "avgSellPriceUSD": null,
      "priceUSD": 0.42,
      "amountUSD": 42,
      "unrealizedPnlUSD": 7,
      "unrealizedPnlPercent": 20,
      "realizedPnlUSD": 0,
      "totalPnlUSD": 7,
      "totalFeesPaidUSD": 0.12,
      "buys": 2,
      "sells": 0,
      "volumeBuyUSD": 35,
      "volumeSellUSD": 0,
      "firstDate": "2026-02-01T10:00:00.000Z",
      "lastDate": "2026-02-15T14:30:00.000Z",
      "labels": []
    }
  ],
  "wallet": null,
  "pagination": {
    "page": 1,
    "offset": 0,
    "limit": 50,
    "pageEntries": 1
  },
  "hostname": "node-xyz",
  "took": 42
}

Query Parameters

wallet
string
required
platforms
string

Comma-separated list of platforms

status
enum<string>
Available options:
active,
resolved,
all
sortBy
enum<string>
default:amountUSD
Available options:
amountUSD,
totalPnlUSD,
createdAt
limit
number
default:50
Required range: 1 <= x <= 100
offset
number
default:0
Required range: x >= 0

Response

200 - application/json

Wallet positions

data
object[]
wallet
object
pagination
object
hostname
string
took
number