Trader Analytics

Get a trader's open/closed positions and derived performance stats

Returns a trader's positions plus performance metrics computed from a full-inventory scan — served independently of the unified profile so the Positions tab and stats panel can load on their own fetch. Positions are filtered by status (open/closed/all), sorted by current value (largest first), and paginated via limit/offset; has_more indicates another page exists in the filtered set. Market names/icons are resolved only for the returned page, so wallets holding a very large number of positions don't blow past internal query limits. performance (win rate, total PnL, volume, positions_value, etc.) is always computed over the wallet's FULL inventory, not just the returned page. include_redeemable additionally includes resolved positions still awaiting on-chain redemption. Public endpoint — no authentication required (trader data is public). Rate-limited per client IP at 30 requests/minute. Responses are cacheable at the edge.

get/trader-stats/positions/{wallet_address}

Request

  • Base URL
    https://data.kairos.trade
  • Auth
    none required

Path parameters

wallet_addressstring required

Ethereum or Solana wallet address (validated/normalized as above).

Query parameters

include_redeemableboolean

Include resolved positions still waiting for redemption.

providerstring

Provider override (polymarket, kalshi, opinion, predictfun). Auto-detected if omitted.

limitinteger

Max positions to return per page (sorted by value, largest first).

offsetinteger

Number of positions to skip (pagination).

status'all' | 'open' | 'closed'

Filter the returned page by position status.

Response

Positions page plus full-inventory performance stats.

wallet_addressstring required
has_moreboolean

True when more positions exist beyond this page (open+closed combined, sorted by value).

Example response

{
  "wallet_address": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b",
  "performance": {
    "wallet_address": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b",
    "total_realized_pnl": "1250.4382",
    "total_unrealized_pnl": "300.00",
    "total_pnl": "1550.4382",
    "roi_percent": "12.75",
    "open_positions": 4,
    "closed_positions": 27,
    "total_positions": 31,
    "positions_value": "420.00",
    "winning_positions": 18,
    "losing_positions": 9,
    "win_rate": 0.6667,
    "total_volume": "18420.55",
    "markets_traded": 12,
    "profile_views": 340,
    "largest_win": "512.30",
    "last_updated": "2026-07-22T14:03:11Z"
  },
  "open_positions": [
    {
      "market_id": "0xabc123condition",
      "market_name": "Will the Fed cut rates in September?",
      "icon": "https://cdn.kairos.trade/markets/abc123.png",
      "token_id": "10723948572...4",
      "outcome": "YES",
      "size": "150.0",
      "entry_price": "0.42",
      "current_price": "0.55",
      "cost_basis": "63.00",
      "unrealized_pnl": "19.50",
      "realized_pnl": "0.00",
      "provider": "polymarket"
    }
  ],
  "closed_positions": [
    {
      "market_id": "0xabc123condition",
      "market_name": "Will the Fed cut rates in September?",
      "icon": "https://cdn.kairos.trade/markets/abc123.png",
      "token_id": "10723948572...4",
      "outcome": "YES",
      "size": "150.0",
      "entry_price": "0.42",
      "current_price": "0.55",
      "cost_basis": "63.00",
      "unrealized_pnl": "19.50",
      "realized_pnl": "0.00",
      "provider": "polymarket"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.