---
title: "Get a trader's recent trade/fill history"
method: GET
path: "/trader-stats/trades/{wallet_address}"
tags: ["Trader Analytics"]
---

# Get a trader's recent trade/fill history

`GET /trader-stats/trades/{wallet_address}`

## Request

- Base URL: `https://data.kairos.trade`
- URL: `https://data.kairos.trade/trader-stats/trades/{wallet_address}`
- Auth: none required

Returns a paginated page of a wallet's fills, served independently of the full profile as the fast path for the History tab. Reads only trade rows (plus market-title enrichment) — it deliberately skips the heavier positions/inventory and PnL-summary computations used by the full profile build. Each trade carries the realized PnL booked by that fill (populated for SELLs; BUYs report null/0). **Public endpoint — no authentication required** (trader data is public). Rate-limited per client IP at 60 requests/minute. Responses are cacheable at the edge.

## Path parameters

- `wallet_address` string, required

## Query parameters

- `trade_limit` integer
- `trade_offset` integer
- `provider` string

## Response `200`

Page of the wallet's trade history.

- TraderRecentTradesResponse: A standalone page of trade history, served independently of the full profile build.
  - `wallet_address` string, required
  - `trades` TraderTradeRecord[], required
    - `trade_id` string, required
    - `order_id` string, nullable, required: Parent venue order identifier/hash shared by fills from the same order. For Predict.fun this is the venue EIP-712 order hash. Null when the provider or lifecycle row has no authoritative venue order identifier. This is not a Kairos order UUID.
    - `market_id` string, required
    - `market_name` string, nullable
    - `icon` string, nullable
    - `token_id` string, required
    - `outcome` string, nullable
    - `side` 'BUY' | 'SELL', required
    - `size` string, decimal, required: Trade size (>= 0).
    - `price` string, decimal, required: Fill price (>= 0), 0-1 scale.
    - `timestamp` string, date-time, required
    - `tx_hash` string, nullable
    - `realized_pnl` string, decimal, nullable: Realized PnL booked by this fill (populated for SELLs from the FIFO ledger; null/0 for BUYs).
    - `provider` string, required
  - `has_more` boolean

## Other responses

- `400`: Malformed wallet address or unrecognized provider.
- `422`: Request failed FastAPI parameter validation.
- `429`: Rate limit exceeded for this route's sliding window, keyed on the session `sub` when authenticated and on the trusted client IP otherwise. Honor `Retry-After`. A per-API-key data ceiling (set per credential) rejects with `{"detail": "API key data rate limit exceeded"}` instead of the `error` envelope below.
- `500`: Unexpected error fetching trader trades.

---

[API](https://skmtc.dev/kairos/apis/kairos-data-api.md) - [All operations](https://skmtc.dev/kairos/apis/kairos-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kairos/apis/kairos-data-api/revisions/cf6b76079e38?raw)
