GuidesIntelligence
Trader Intelligence API
Dark venue. Smarkets is implemented but not served on this deployment: every
/api/smarkets/…request returns404 EXCHANGE_NOT_AVAILABLE, router fan-outs exclude it, and it is not counted among the served venues. It returns when a commercial API agreement is in place.
Trader Intelligence organizes public venue-published/on-chain activity by wallet and venue. Scores are versioned informational signals, not financial advice, and nothing on this page is a recommendation. Wallets remain venue-scoped; Predictefy does not claim that addresses on different venues belong to the same person.
All endpoints are authenticated, metered GET requests. List endpoints default
to limit=20 and cap it at 100.
Endpoints
Section titled “Endpoints”Market trader trades
Section titled “Market trader trades”GET /v1/traders/{venue}/markets/{marketId}/trades
| Parameter | Required | Meaning |
|---|---|---|
venue | yes | One supported Trader Intelligence venue id. |
marketId | yes | Venue-native market id. |
limit | no | 1–100 rows. |
cursor | no | Opaque venue/keyset cursor from nextCursor. |
Rows contain venue, marketId, outcomeId, tradeId, ts, wallet, optional
displayName, side, price, amount, and usdSize. Nullable fields stay
null when the venue payload cannot prove them.
Market holders
Section titled “Market holders”GET /v1/traders/{venue}/markets/{marketId}/holders
Parameters: venue, marketId, and optional limit. Rows contain wallet,
optional displayName, outcomeId, shares, and nullable usdValue. Venues
without a public holder/outcome concept return TRADERS_UNSUPPORTED.
Venue leaderboard
Section titled “Venue leaderboard”GET /v1/traders/{venue}/leaderboard
| Parameter | Required | Values |
|---|---|---|
by | no | profit, volume, or score; default profit. |
window | no | day, week, month, or all; default all. |
limit | no | 1–100 rows. |
Native profit/volume rows contain venue, wallet, optional displayName,
rank, window, nullable profitUsd, and nullable volumeUsd. by=score
uses Predictefy scores and instead includes score, scoreVersion, factors,
category, stats, refreshedAt, refreshState, asOf, and provenance.
Wallet factors contain the versioned trackRecord, experience, scale, and
discipline components when a w1 score is available.
The exact score note is:
Score ranking uses current stored scores and is all-time only; any other window is rejected rather than silently ignored.
Cross-venue score leaderboard
Section titled “Cross-venue score leaderboard”GET /v1/traders/leaderboard
This endpoint supports by=score only. window may be omitted to use its all default or set
explicitly to all; every other value is rejected with HTTP 400. limit is optional and accepts
1–100 rows. Profit and volume are venue-native and are never merged into a synthetic ranking. Rows
use the score-leaderboard shape above and remain venue-tagged.
The response carries these exact honesty notes:
Wallets are venue-scoped; the cross-venue leaderboard interleaves venue-tagged entries without claiming same-person identity.
Score ranking uses current stored scores and is all-time only; any other window is rejected rather than silently ignored.
Wallet profile
Section titled “Wallet profile”GET /v1/traders/{venue}/wallets/{addr}
Profiles contain venue, wallet, optional displayName, score,
scoreVersion, factors, category, stats, refreshedAt, refreshState,
asOf, and provenance. stats contains walletAgeDays, marketsTraded,
totalVolumeUsd, winRate, realizedPnlUsd, firstSeen, lastSeen, and
depositFirstAt.
A live fill-in can return score, scoreVersion, factors, and category as
null until Predictefy scores that wallet. It says so in note; the API does
not invent a score from incomplete venue data.
Wallet trades
Section titled “Wallet trades”GET /v1/traders/{venue}/wallets/{addr}/trades
Parameters: venue, addr, optional limit, and optional cursor. The list
uses the same wallet-attributed trade fields as the market tape. A venue without
keyless wallet history returns TRADERS_UNSUPPORTED.
Smart-money feed
Section titled “Smart-money feed”GET /v1/traders/smart-money
The route name is part of the API; the response is an informational scored-trade feed, not a recommendation.
| Parameter | Required | Meaning |
|---|---|---|
venue | no | One Trader Intelligence venue. |
minScore | no | Minimum trade score, 0–100. |
market | no | Exact market id. |
wallet | no | Exact venue-scoped wallet. |
category | no | bot, whale, smart, fresh, or fish. |
window | no | day, week, month, or all; default all. |
limit | no | 1–100 rows. |
cursor | no | Opaque (ts, tradeId) keyset cursor. |
Rows add tradeScore, tradeFactors, scoreVersion, walletScoreAtTrade, and
categoryAtTrade to the normal trader-trade fields. Version t1 trade factors
are walletScore, size, entry, and timing. The response carries these exact
honesty notes:
window=all means since lane launch; feed coverage begins at deploy, no backfill.
Error honesty
Section titled “Error honesty”An unknown venue or unsupported venue/verb returns HTTP 400:
{ "success": false, "error": { "code": "TRADERS_UNSUPPORTED", "message": "market holders are unsupported for hyperliquid", "retryable": false }}An unknown wallet returns 404 TRADER_NOT_FOUND. If Trader Intelligence is
unavailable, /v1/traders/* returns 404.
Venue capabilities
Section titled “Venue capabilities”Hyperliquid market selection follows the active catalog and refreshes periodically as that catalog changes. A listed capability is not a claim that every venue currently has collected rows: scored-trade and smart-money coverage requires activity from that venue.
The five columns mirror has.traderTrades, has.holders, has.leaderboard,
has.walletProfile, and has.smartMoney. Smart-money capability follows trader-trade capability.
The source column names the venue definition behind TRADER_CLIENTS; traderCapabilities supplies
the all-false fallback for product venues without one.
| Venue | Trader trades | Holders | Leaderboard | Wallet profile | Scored-trade feed | Capability source |
|---|---|---|---|---|---|---|
polymarket | yes | yes | yes | yes | yes | polymarketTraders |
kalshi | no | no | no | no | no | traderCapabilities fallback |
smarkets (dark) | no | no | no | no | no | traderCapabilities fallback |
opinion | no | no | no | yes | no | opinionTraders |
myriad | yes | yes | no | yes | yes | myriadTraders |
gemini | no | no | no | no | no | traderCapabilities fallback |
hyperliquid | yes | no | yes | yes | yes | hyperliquidTraders |
limitless | yes | yes | by=volume + window=all only | yes | yes | limitlessTraders |
polymarket_us | no | no | no | no | no | traderCapabilities fallback |
rain | yes | no | no | no | yes | rainTraders |
predictfun | yes | no | yes | yes | yes | predictfunTraders |
sxbet | no | no | no | no | no | sxbetTraders |
pascal | yes | no | no | no | yes | pascalTraders |
xo | yes | no | no | no | yes | xoTraders |
pred | yes | no | no | no | yes | predTraders |
predictstreet | no | no | no | no | no | traderCapabilities fallback |
novig | no | no | no | no | no | traderCapabilities fallback |
Opinion is a lookup-only venue (no public per-market tape, so no scored-trade or smart-money coverage). Kalshi, Smarkets (dark — not served), Gemini, Polymarket US, PredictStreet, and Novig do not register a Trader Intelligence client, so all five capability fields are false.
Venue-specific limits matter:
- PredictFun ranks venue points only.
by/sort has no venue effect, onlyallexists, and the board contains no profit or volume figures. Position pages do not prove lifetime totals, and match collateral is unknown, sousdSizeis null. - Limitless has no keyless wallet history, and its board is all-time volume only: the leaderboard
serves
by=volumewithwindow=alland answers400for anything else, including this reference’s ownby=profitdefault. This is a fixed venue contract, not an outage. - Myriad serves trader-trade and holder reads but has no board. Sizes are token-denominated, so USD fields are null.
- Hyperliquid has no holders. Its tape is push-based, and profile totals cover only the recent fills window returned by the venue.
- SX Bet reports no trader-intelligence capability on the shipped V3 API: its default tape carries no
bettor identity, so
has.traderTradesand every flag derived from it arefalse. The client advertises trader trades only whenSXBET_API_VERSION=v2selects the retired sandbox API, wheresideis null andusdSizeexists only for SX USDC. - Opinion wallet lookups require a venue API key held server-side; the venue hides order ids for privacy. Wallet trades paginate with an opaque cursor.
SDK examples
Section titled “SDK examples”TypeScript uses venue subclients for venue lookups and root methods for merged score/feed reads:
const tape = await client.polymarket.fetchTraderTrades(conditionId, { limit: 25 });const holders = await client.limitless.fetchHolders(marketSlug, { limit: 10 });const board = await client.hyperliquid.fetchLeaderboard({ by: 'profit', window: 'week', limit: 20,});const profile = await client.polymarket.fetchWalletProfile(wallet);const history = await client.sxbet.fetchWalletTrades(wallet, { limit: 25 });const feed = await client.fetchSmartMoney({ venue: 'polymarket', minScore: 70, window: 'week' });const top = await client.fetchTopTraders({ by: 'score', window: 'all', limit: 20 });Python exposes the same surface in snake case:
tape = client.polymarket.fetch_trader_trades(condition_id, {"limit": 25})holders = client.limitless.fetch_holders(market_slug, {"limit": 10})board = client.hyperliquid.fetch_leaderboard( {"by": "profit", "window": "week", "limit": 20})profile = client.polymarket.fetch_wallet_profile(wallet)history = client.sxbet.fetch_wallet_trades(wallet, {"limit": 25})feed = client.fetch_smart_money( {"venue": "polymarket", "minScore": 70, "window": "week"})top = client.fetch_top_traders({"by": "score", "window": "all", "limit": 20})