Get a trader's realized-PnL time series
Returns a time-series of realized PnL data points for charting a trader's PnL progression over the requested window, bucketed by time_range. The wallet address is validated as either an Ethereum (0x...) address (Polymarket/Opinion/predictfun) or a Solana base58 address (Kalshi) and normalized (lower-cased for EVM) before lookup; if it matches neither format the request is rejected with 400. provider is optional — if omitted, the provider is auto-detected from the address format; pass it explicitly to disambiguate EVM venues other than Polymarket. Provider values are validated against the live set of active providers rather than a fixed enum, so an inactive/unknown id is rejected with 400. Responses are cacheable at the edge and briefly cached server-side. Public endpoint — no authentication required. Rate-limited per client IP (X-Forwarded-For, falling back to the socket peer) at 30 requests/minute, independent of the global 100/minute default.
Request
- Base URLhttps://data.kairos.trade
- Authnone required
Path parameters
Ethereum (0x-prefixed, 42 chars) or Solana (base58) wallet address. Normalized (EVM lower-cased) before use. Returns 400 if it matches neither format.
Query parameters
Time window for the PnL series.
Provider override (e.g. polymarket, kalshi, opinion, predictfun). Validated against the live active-provider registry. Auto-detected from address format when omitted.
Response
PnL time series for the wallet and time range.
Example response
{
"wallet_address": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b",
"time_range": "1W",
"data_points": [
{
"timestamp": "2026-07-15T00:00:00Z",
"realized_pnl": "1250.4382"
}
],
"start_pnl": "800.00",
"end_pnl": "1250.4382",
"pnl_change": "450.4382",
"pnl_change_percent": "56.30",
"current_realized_pnl": "1250.4382",
"current_total_pnl": "1875.10"
}Changes
No recorded changes to this operation across all 1 revision of this API.