Skip to main content
Event: trader_category_pnl
Cost: 0.1 credits per delivery
Fires when a trader’s aggregated realized PnL across all markets in a category crosses your configured bounds. The full payload schema is in the auto-generated Trader Category PnL callback reference; this page documents the filters and matching behavior.

When to use this

  • Alert when a trader’s combined PnL across a market category (such as Politics or Sports) clears a profit or loss threshold.
  • Track category-level specialization by scoping to the categories a trader is active in rather than individual markets.
  • Qualify category conviction by pairing PnL bounds with volume, win rate, and the number of distinct markets traded.

Subscription filters

Add these to the filters object when you create the subscription.
FilterTypeDescription
tradersstring[]Restrict to specific trader wallet addresses (max 500).
categoriesstring[]Restrict to specific market categories (max 500).
min_realized_pnl_usdnumberMinimum realized PnL in USD.
max_realized_pnl_usdnumberMaximum realized PnL in USD.
min_volume_usdnumberMinimum traded volume in USD.
max_volume_usdnumberMaximum traded volume in USD.
min_buy_usdnumberMinimum buy-side volume in USD.
min_sell_volume_usdnumberMinimum sell-side volume in USD.
min_win_ratenumberMinimum win rate, 0.0100.0.
min_markets_tradedintegerMinimum number of distinct markets traded.
timeframesstring[]One or more PnL windows: 1d, 7d, 30d, lifetime.

Example

{
  "url": "https://your-server.com/webhooks",
  "event": "trader_category_pnl",
  "filters": {
    "categories": ["Politics"],
    "min_realized_pnl_usd": 20000,
    "min_win_rate": 55.0,
    "min_markets_traded": 3,
    "timeframes": ["30d"]
  }
}

Notes

  • Combine min_realized_pnl_usd and max_realized_pnl_usd to match a PnL band rather than a single bound.
  • timeframes scopes the window over which aggregated category PnL is measured; lifetime uses the trader’s full history in that category.
Last modified on June 13, 2026