Skip to main content
GET
Get trader category win records
One wallet’s win record in every canonical category it has a settled market in: wins, decided (wins plus losses), and the rate, busiest category first. These are the same counts the Pick of the Day holder chips carry. Use it when you need a wallet’s per-category or per-game track record on its own, rather than folded into a trader profile’s expand=categories.

Fields on the record

  • basis is settled_markets_all_sizes: every settled market at any position size, with no notional floor. This is NOT the basis of category_strengths on Get Trader?expand=categories, which keeps a 20 USD notional floor and an entry-price rule; the two legitimately differ.
  • Each records entry carries category, wins, decided, win_rate, and status.
  • The Esports row also carries games: the wallet’s record in each esports title it has a settled market in (LoL, CS2, Dota 2, Valorant, and so on), with the same counts, floor, and status rule. The Esports row itself stays the whole bucket, which is what a holder chip falls back to when a game record is thin.
  • A category or game with fewer than min_decided_for_win_rate decided markets keeps its counts and returns win_rate: null with status: "not_enough_data".
  • A category the wallet has no settled market in is omitted entirely, and so is a game: an absent entry means no record, never a 0% record.

Filters

  • category narrows to one canonical category, matched through the same rollup every other category surface uses (Soccer, EPL, and Champions League all reach Soccer; every esports label folds into Esports; Football is American football). A filter that reaches Esports returns the whole row with all of its games; a game is not a filter of its own. A value that matches no record returns 200 with an empty records array, never 404.
A resolved trader with no settled market returns an empty records array with 200; an unknown address returns 404.

Cache the record

The response carries an ETag. Send it as If-None-Match to get 304 Not Modified with an empty body when nothing changed. Get Trader with expand=categories returns a ranked category_strengths summary on the same wallet, under a stricter basis.

Authorizations

Authorization
string
header
required

API key or OAuth 2.1 access token in the Authorization header as Bearer oxi_sk_live_... or Bearer oxi_at_.... Data calls require an active Pro subscription and return live data. A 401 carries WWW-Authenticate: Bearer resource_metadata="https://api.0xinsider.com/.well-known/oauth-protected-resource" (RFC 6750 section 3, RFC 9728).

Headers

If-None-Match
string

Conditional GET validator from a previous ETag. Matching values return 304 Not Modified with an empty body.

Path Parameters

address
string
required

Wallet address (0x...), username, or trd_-prefixed trader id.

Query Parameters

category
string

Filter to one canonical category, matched through the same rollup every other category surface uses: soccer, EPL and champions league all reach Soccer, every esports label folds into Esports, and football is AMERICAN football and reaches Football. A filter that reaches Esports returns the Esports record with all of its games; a game is not a filter of its own, so ask for esports and read games. A value that matches no record answers 200 with an empty records array, never 404.

Response

Trader category win records

object
string
required
Allowed value: "trader_category_records"
data
object
required
meta
object
required