Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

0xinsider

REMOTE · API.0XINSIDER.COM · 2 COMPONENTS

Polymarket sports and esports data: wallet grades on settled P&L, large trades, markets.

0 this week 88 Trust /100

Last scanned (9 hours ago)

Scores higher than 96% of remote servers

Unreachable for 1 day in a row. Last reached 4 Nov 2026.

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security11
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
  • Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
  • Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified

Unverified: 5 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

What we tested

Checks we ran (3)

  • HTTPS
  • DNSSEC
  • Transport

Checks we could not complete (8)

These are gaps on our side, not findings about this hosted endpoint. We only credit what we can confirm, so a category made up entirely of them scores 0.

  • TLS certificate in Endpoint SecurityTLS not yet verified: we couldn't open a connection to check the certificate.
  • Authorization in Endpoint SecurityAuthorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  • HSTS header in Endpoint SecurityHSTS not yet verified: we couldn't read the response headers to check for it.
  • Schema quality in Schema Quality & AI Usability (scores 0 for this)Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
  • Stability in Stability & Change Management (scores 0 for this)Stability not yet verified: not enough scan history yet (needs a 30-day window).
  • Tool coverage in Tool Coverage (scores 0 for this)Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
  • Tool safety in Tool Safety (scores 0 for this)Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
  • Capabilities in Capabilities (scores 0 for this)Capabilities not yet verified: we couldn't read the endpoint's capabilities.

Does not apply to this hosted endpoint (2)

  • Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
  • Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +84

    The score moved with no change recorded against any check. We would rather say so than guess.

  • 4 Nov 26 −84
    • Endpoint reachability: reachable → unreachable ▼ security
    • TLS certificate: pass → unverified ▼ security
    • Stability: fail → unverified ▼ security
    • HSTS header: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Authorization: pass → unverified ▼ security
    • Transport: pass → fail ▼ security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “batch_get_market_flow” rewrote its description, which is the text the model reads security
    • Tool “batch_get_market_intel” rewrote its description, which is the text the model reads security
    • Tool “batch_get_traders” rewrote its description, which is the text the model reads security
    • Tool “explore_markets” rewrote its description, which is the text the model reads security
    • Tool “get_edge_hunter” rewrote its description, which is the text the model reads security
    • Tool “get_game_holders” rewrote its description, which is the text the model reads security
    • Tool “get_positions” rewrote its description, which is the text the model reads security
    • Tool “get_pick_of_the_day_stats” rewrote its description, which is the text the model reads security
    • Tool “get_pick_of_the_day_archive” rewrote its description, which is the text the model reads security
    • Tool “get_pick_of_the_day” rewrote its description, which is the text the model reads security
    • Tool “get_leaderboard” rewrote its description, which is the text the model reads security
    • Tool “get_large_trades_history” rewrote its description, which is the text the model reads security
    • Tool “get_large_trades” rewrote its description, which is the text the model reads security
    • Tool “get_large_positions” rewrote its description, which is the text the model reads security
    • Tool “search_markets” rewrote its description, which is the text the model reads security
    • Tool “list_webhooks” rewrote its description, which is the text the model reads security
    • Tool “get_whale_trades_history” rewrote its description, which is the text the model reads security
    • Tool “get_whale_trades” rewrote its description, which is the text the model reads security
    • Tool “get_webhook” rewrote its description, which is the text the model reads security
    • Tool “get_trader_categories” rewrote its description, which is the text the model reads security
    • Tool “get_trader” rewrote its description, which is the text the model reads security
    • Tool “get_smart_money_flows” rewrote its description, which is the text the model reads security
    • Tool “get_sharp_money_flows” rewrote its description, which is the text the model reads security
    • Tool coverage: 100 → unverified ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • First check of Schema quality: unverified functional
    • “get_pick_of_the_day” added an optional parameter “pick_id” cosmetic
    • “get_pick_of_the_day_stats” added an optional parameter “view” cosmetic
    • “get_pick_of_the_day_stats” added an optional parameter “sections” cosmetic
    • “get_pick_of_the_day_archive” added an optional parameter “view” cosmetic
    • “get_pick_of_the_day_archive” added an optional parameter “limit” cosmetic
    • “get_pick_of_the_day_archive” added an optional parameter “cursor” cosmetic
    • “get_pick_of_the_day” added an optional parameter “view” cosmetic
    • “get_large_trades” added an optional parameter “min_grade_at_trade” cosmetic
    • “get_whale_trades” added an optional parameter “min_grade_at_trade” cosmetic
    • “explore_markets” reworded the description of “category” cosmetic
    • “get_edge_hunter” reworded the description of “category” cosmetic
    • “get_leaderboard” reworded the description of “category” cosmetic
    • “get_large_trades_history” reworded the description of “category” cosmetic
    • “get_large_trades” reworded the description of “min_grade” cosmetic
    • “get_large_trades” reworded the description of “category” cosmetic
    • “get_large_positions” reworded the description of “category” cosmetic
    • “search_markets” reworded the description of “category” cosmetic
    • “get_whale_trades_history” reworded the description of “category” cosmetic
    • “get_whale_trades” reworded the description of “min_grade” cosmetic
    • “get_whale_trades” reworded the description of “category” cosmetic
    • “get_trader_categories” reworded the description of “category” cosmetic
    • “get_smart_money_flows” reworded the description of “category” cosmetic
    • “get_sharp_money_flows” reworded the description of “category” cosmetic
    • “get_positions” reworded the description of “category” cosmetic
  • 3 Nov 26 0
    • Tool “get_game” rewrote its description, which is the text the model reads security
    • Tool “list_games” rewrote its description, which is the text the model reads security
    • Tool “get_edge_hunter” rewrote its description, which is the text the model reads security
    • Tool “get_large_trades_history” rewrote its description, which is the text the model reads security
    • Tool “get_trader” rewrote its description, which is the text the model reads security
    • Tool “get_whale_trades” rewrote its description, which is the text the model reads security
    • Tool “get_whale_trades_history” rewrote its description, which is the text the model reads security
    • Tool “get_large_trades” rewrote its description, which is the text the model reads security
    • Tool “batch_get_traders” rewrote its description, which is the text the model reads security
    • Tool “get_market_top_holders” rewrote its description, which is the text the model reads security
    • Tool “get_positions” rewrote its description, which is the text the model reads security
    • “get_edge_hunter” reworded the description of “admission” cosmetic
    • “get_trader” reworded the description of “expand” cosmetic
    • “get_trader” reworded the description of “max_age_s” cosmetic
  • 2 Nov 26 0
    • Tool “get_pick_of_the_day” rewrote its description, which is the text the model reads security
    • Tool “get_whale_trades_history” rewrote its description, which is the text the model reads security
    • Tool “list_games” rewrote its description, which is the text the model reads security
    • Tool “search_markets” rewrote its description, which is the text the model reads security
    • Tool “get_market_holders” rewrote its description, which is the text the model reads security
    • Tool “get_sharp_money_flows” rewrote its description, which is the text the model reads security
    • Tool “get_game” rewrote its description, which is the text the model reads security
    • Tool “get_large_trades” rewrote its description, which is the text the model reads security
    • Tool “get_large_trades_history” rewrote its description, which is the text the model reads security
    • Tool “get_leaderboard” rewrote its description, which is the text the model reads security
    • Tool “get_smart_money_flows” rewrote its description, which is the text the model reads security
    • Tool “get_trader_context” rewrote its description, which is the text the model reads security
    • Tool “get_whale_trades” rewrote its description, which is the text the model reads security
    • Schema quality: 18509 → 24729 ▼ functional
    • Schema quality: 18509 → 24577 ▼ functional
    • New tool “get_account” functional
    • New tool “list_game_markets” functional
    • New tool “list_category_leaders” functional
    • New tool “get_usage” functional
    • New tool “get_sport_leaderboard” functional
    • New tool “get_resolution_report” functional
    • New tool “get_pick_of_the_day_stats” functional
    • New tool “get_market_wallets_in_out” functional
    • New tool “get_market_top_holders” functional
    • New tool “get_leaderboard_leagues” functional
    • New tool “get_game_trades” functional
    • New tool “get_game_sharp_money” functional
    • New tool “get_game_holders” functional
    • New tool “get_category_leaderboard” functional
    • “get_pick_of_the_day” added an optional parameter “date” cosmetic
    • “get_whale_trades” added an optional parameter “event_slug” cosmetic
    • “get_whale_trades_history” added an optional parameter “event_slug” cosmetic
    • “list_games” added an optional parameter “expand” cosmetic
    • “list_games” added an optional parameter “window” cosmetic
    • “get_whale_trades” added an optional parameter “condition_id” cosmetic
    • “get_large_trades” added an optional parameter “condition_id” cosmetic
    • “get_large_trades” added an optional parameter “event_slug” cosmetic
    • “get_large_trades_history” added an optional parameter “event_slug” cosmetic
    • “get_leaderboard” added an optional parameter “activity” cosmetic
    • “get_leaderboard” added an optional parameter “dir” cosmetic
    • “get_leaderboard” added an optional parameter “sort” cosmetic
    • “get_sharp_money_flows” added an optional parameter “condition_id” cosmetic
    • “get_sharp_money_flows” added an optional parameter “event_slug” cosmetic
    • “get_smart_money_flows” added an optional parameter “condition_id” cosmetic
    • “get_smart_money_flows” added an optional parameter “event_slug” cosmetic
    • “search_markets” reworded the description of “q” cosmetic
  • 1 Nov 26 0
    • MCP protocol: Implements a current MCP spec version (2026-07-28). functional
    • MCP protocol version: 2025-11-25 → 2026-07-28 functional
  • 28 Oct 26 0
    • Tool “get_trader_context” rewrote its description, which is the text the model reads security
  • 27 Oct 26 −1
    • Tool “get_whale_trade” rewrote its description, which is the text the model reads security
    • Tool “get_whale_trades” rewrote its description, which is the text the model reads security
    • Tool “get_whale_trades_history” rewrote its description, which is the text the model reads security
    • Tool “get_trader” rewrote its description, which is the text the model reads security
    • Tool “get_smart_money_flows” rewrote its description, which is the text the model reads security
    • Tool “get_sharp_money_flows” rewrote its description, which is the text the model reads security
    • Tool “get_platforms” rewrote its description, which is the text the model reads security
    • Tool “get_pick_of_the_day_archive” rewrote its description, which is the text the model reads security
    • Tool “get_pick_of_the_day” rewrote its description, which is the text the model reads security
    • Tool “get_market_intel” rewrote its description, which is the text the model reads security
    • Tool “get_leaderboard” rewrote its description, which is the text the model reads security
    • Tool “get_large_trades_history” rewrote its description, which is the text the model reads security
    • Tool “get_large_trades” rewrote its description, which is the text the model reads security
    • Tool “get_large_trade” rewrote its description, which is the text the model reads security
    • Tool “get_insider_radar_flag” rewrote its description, which is the text the model reads security
    • Tool “get_insider_radar” rewrote its description, which is the text the model reads security
    • Tool “get_coverage” rewrote its description, which is the text the model reads security
    • Tool “explore_markets” rewrote its description, which is the text the model reads security
    • Tool “batch_get_traders” rewrote its description, which is the text the model reads security
    • Tool “batch_get_market_intel” rewrote its description, which is the text the model reads security
    • Tool “get_trending_wallets” rewrote its description, which is the text the model reads security
    • Tool “get_trader_pnl” rewrote its description, which is the text the model reads security
    • “explore_markets” reworded the description of “sort” cosmetic
  • 24 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://api.0xinsider.com/api/v1/mcp

TLS unreached
DNSSEC insecure

Validation of api.0xinsider.com. — Not signed

Zone DS Keys Algorithms Outcome
. Trust anchor 20326, 38696 8, 8 Verified
com. DS published 19718 13 Verified
0xinsider.com. No DS Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Inconclusive

We could not reach the endpoint well enough to judge its authorisation posture.

Result Inconclusive

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.0xinsider.com/api/v1/mcp Unreachable
http (plaintext) http://api.0xinsider.com/api/v1/mcp HTTPS enforced
MCP tools · 69 exposed · ~26,956 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
batch_get_market_flow ~144

Batch lookup of market flow for 1-25 raw provider condition_id values. Results preserve request order and duplicate inputs return duplicate rows. Uses the same V1 batch item quota as POST /api/v1/markets/flow/batch. Args: - condition_ids (string[], required): Raw provider condition IDs - timeframe (string, optional): "1h", "4h", "24h", or "7d" (default "24h") Returns: Ordered batch market-flow results with per-item success or error details.

NameTypeReqDescription
condition_idsarrayyesRaw provider condition_id values
timeframestring–Shared lookback window

Structured output declared, but exposes no named fields.

No examples provided.

batch_get_market_intel ~200

Deprecated alias of batch_get_market_flow (#16312), kept live until its 2027-02-01 sunset (#29351), then removed; it calls the deprecated POST /api/v1/markets/intel/batch path, whose envelope keeps object: market_intel_batch. Batch lookup for 1-25 raw provider condition_id values. Results preserve request order and duplicate inputs return duplicate rows. Uses the same V1 batch item quota as POST /api/v1/markets/intel/batch. Args: - condition_ids (string[], required): Raw provider condition IDs - timeframe (string, optional): "1h", "4h", "24h", or "7d" (default "24h") Returns: Ordered batch market-intelligence results with per-item success or error details.

NameTypeReqDescription
condition_idsarrayyesRaw provider condition_id values
timeframestring–Shared lookback window

Structured output declared, but exposes no named fields.

No examples provided.

batch_get_traders ~239

Batch lookup for 1-25 trader wallet addresses or known usernames. Results preserve request order and duplicate inputs return duplicate rows. Uses the same V1 batch item quota as POST /api/v1/traders/batch. Args: - traders (string[], required): Wallet addresses or known usernames - expand (string[], optional): Heavy fields to include for every trader: "strategy", "categories", "trust" (trust is per-field provenance for grade, P&L, and stats; "quant_metrics" is accepted and returns nothing since 2026-10-27) Returns: Ordered batch trader results with per-item success or error details. Each successful item's trader carries data_quality: status, as_of and field_groups; fresh and stale mean tracked and clocked (stale: older than the writer refresh budget, max_age_s), neither is a tolerance, and unknown means undatable, never recent.

NameTypeReqDescription
expandarray–Shared heavy fields to include for every trader item; trust adds per-field provenance for grade, P&L, and stats
tradersarrayyesWallet addresses or known usernames

Structured output declared, but exposes no named fields.

No examples provided.

explore_markets ~431

Browse large-trade-active titled markets for discovery surfaces. Returns grouped event clusters or standalone markets plus live facets. Cursor-paginated over visible discovery entries. Args: - limit (number, 1-48, default 24): Max discovery entries per page - cursor (string, optional): Pagination cursor from previous response - category (string, optional): Filter by market category (case-insensitive): a sport or esports bucket such as Basketball or Esports, or sports for every sport but Esports; any other category is rejected - status (string, optional): Filter by status: "active", "closed", or "all" - platform (string, optional): Explore is Polymarket-only; accepted for backward-compatibility, does not change the result set - sort (string, optional): Sort by "trending", "hot", "expiring", "large_trades" (deprecated spelling "whales" until its 2027-02-01 sunset), "volume", or "newest" - q (string, optional): Keyword search against market titles, up to 64 characters before whitespace trimming Returns: Market discovery entries, facets, and pagination metadata.

NameTypeReqDescription
categorystring–Filter by market category (case-insensitive): a sport or esports bucket such as Basketball or Esports, or sports for every sport but Esports; any other category is rejected
cursorstring–Pagination cursor from previous response
limitinteger–Max discovery entries (1-48, default 24)
platformstring–Explore is Polymarket-only; accepted for backward-compatibility and does not change the result set
qstring–Keyword search against market titles, up to 64 characters before whitespace trimming
sortstring–Discovery sort order. large_trades ranks by large-trade activity; whales is its deprecated spelling and selects the same order until its 2027-02-01 sunset.
statusstring–Filter by market status

Structured output declared, but exposes no named fields.

No examples provided.

get_account ~137

Identify the calling account and credential: user_id, credential_id, credential_kind (api_key, oauth_grant or integration_key), credential_status, entitlement (paid_data_access active or lapsed, and the recovery_action when lapsed) and scopes (null for full developer-key access). Use it to confirm which account an agent is spending before a run. It costs no monthly quota and no per-minute request: it shares a separate 100 reads/minute inspection allowance with get_usage. It returns no secret, payment or contact detail. Args: none Returns: user_id, credential_id, credential_kind, credential_status, entitlement and scopes.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_category_leaderboard ~376

Get one sports or esports category's edge leaderboard, the board the site's category pages show: wallets ranked by the 95% lower bound of their edge over the price they paid in the category, counted over independent events, best first. Only wallets whose lower bound is above zero are listed; total counts them. active_within keeps wallets that traded in the category within 7d, 30d or 90d, and min_events sets the independent events a wallet needs. Cursor-paginated; a cursor issued before the ranking refreshed returns cursor_expired. A slug outside sports and esports is not_found on slug. Args: - slug (string, required): Category slug, e.g. soccer, basketball, tennis, esports - active_within (string, optional): all (default), 7d, 30d or 90d - min_events (number, optional, default 0): Independent events a wallet needs in the category - limit (number, 1-100, default 20): Max results per page - cursor (string, optional): Opaque pagination cursor from previous response Returns: rows (rank, category, id, address, username, platform, grade, edge_lower_bound, independent_events, unresolved_events, n_resolved, win_rate, pnl, as_of) and pagination metadata.

NameTypeReqDescription
active_withinstring–Keep wallets that traded in the category within this window
cursorstring–Opaque pagination cursor from previous response
limitinteger–Max results per page (1-100, default 20)
min_eventsinteger–Independent events a wallet needs in the category
slugstringyesCategory slug, e.g. soccer, basketball, tennis or esports

Structured output declared, but exposes no named fields.

No examples provided.

get_combo ~162

One Polymarket combo: legs, conjunction result, all-time trade totals, the newest 100 taker fills, lifecycle totals and ingest coverage. Requires a Pro or Max API key. Unlike get_combo_fills it keeps executions priced above 0.95. Null lifecycle or missing leg facts are unknown, never zero. Args: - condition_id (string, required): Combo ID, 0x and 62 lowercase hex characters; not a binary market's condition_id Returns: combo, fills, lifecycle, coverage, access and meta. A malformed ID is a bad_request error and an unknown one not_found.

NameTypeReqDescription
condition_idstringyesCombo ID: 0x and 62 lowercase hex characters, not a binary market's condition_id

Structured output declared, but exposes no named fields.

No examples provided.

get_combo_fills ~697

Live Polymarket combo (multi-leg) taker fills with exact decimal-string economics, wallet identity and grade, legs, conjunction result and ingest coverage. Requires a Pro or Max API key. The listing holds executions priced at most 0.95; get_combo has a combo's complete history. sort recent pages with next_cursor; largest and payout page with next_offset. A continuation can end on an empty page. Args: - result (string, optional): CSV of pending, won, lost; all clears the filter - legs (string, optional): CSV of 2, 3, 4, 5+; all clears the filter - min_stake (integer, optional, default 0): Minimum collateral in whole USDC - min_multiplier (integer, optional, default 0): 0 disables the filter; otherwise 2 to 1000000 shares per dollar at execution - grades (string, optional): CSV of S, A, B, C, D, F; all clears the filter; ungraded wallets never match - sports (string, optional): CSV of sport slugs such as nfl, nba, soccer, esports; all clears the filter; a combo matches when any leg is in a selected sport - sort (string, optional): recent (default, newest first), largest (collateral), or payout (buy-fill shares, sells excluded) - window (string, optional): 24h, 7d or all; defaults to all for recent and 24h for largest and payout - limit (number, 1-200, default 50): Fills per page - cursor (string, optional): next_cursor from the previous recent page - offset (number, 0-5000, optional): next_offset from the previous largest or payout page Returns: data (fills), has_more, next_cursor, next_offset, limit, sort, window, coverage and meta.

NameTypeReqDescription
cursorstring–next_cursor from the previous page; recent ordering only
gradesstring–CSV of S, A, B, C, D, F; all clears the filter. Ungraded wallets never match
legsstring–CSV of 2, 3, 4, 5+; all clears the filter. A combo matches any named pick count
limitinteger–Max fills per page (1-200, default 50)
min_multiplierinteger–Minimum shares per dollar at execution: 0 (the default) disables the filter, otherwise 2 to 1000000
min_stakeinteger–Minimum collateral in whole USDC (default 0)
offsetinteger–next_offset from the previous page; largest and payout ordering only
resultstring–CSV of pending, won, lost; all clears the filter
sortstring–recent (the default) is newest first; largest ranks collateral; payout ranks buy-fill shares and excludes sells
sportsstring–CSV of sport slugs such as nfl, nba, soccer, esports; all clears the filter. A combo matches when any leg is in a selected sport
windowstring–Defaults to all for recent and 24h for largest and payout

Structured output declared, but exposes no named fields.

No examples provided.

get_combos_summary ~82

The stored count of traded Polymarket combos whose YES conjunction is still pending, and when it was computed. Requires a Pro or Max API key. The count refreshes at most every five minutes and is cached for 60 seconds. A null live value is unknown, never zero. Returns: live (count and computed_at, or null) and meta.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_coverage ~137

Read which V1 data surfaces the API serves for Polymarket, the one venue it covers. Every surface reports the status supported: grade, pnl, strategy, timeline, large_trades, whale_signal (the deprecated spelling of large_trades, until its 2027-02-01 sunset), suspicious_trades, insider_radar (the deprecated spelling of suspicious_trades, until its 2027-02-01 sunset), and market_snapshot. Use this before choosing trader, market, large-trade, or suspicious-trade routes. Args: none Returns: Static backend-owned coverage document under the single key polymarket.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_daily_report_snapshot ~62

Read one dated daily whale-activity report snapshot. Args: - date (string, required): UTC report date in YYYY-MM-DD format Returns: Report snapshot metadata and entries.

NameTypeReqDescription
datestringyesUTC report date in YYYY-MM-DD format

Structured output declared, but exposes no named fields.

No examples provided.

get_edge_hunter ~1,992

Read the Max-only Edge Hunter API at https://0xinsider.com/sports/edge. Pro receives 403 forbidden with reason max_plan_required. One view selector offers board (default), full signals and cohort observations. All views accept kind sports|esports (omission covers both), sports, leagues, market_types, condition_ids, event_slugs, series_slugs and legacy category. Array selections accept 1..100 supplied values before deduplication, including comma-separated values inside a value; repeat REST query keys or supply MCP arrays. Lists match OR; axes match AND. Canonical sports and machine league identities normalize case-insensitively; market types and event/series slugs are exact case-sensitive provider strings. category=NFL selects the Football bucket; leagues=[nfl] selects NFL. category=sports, in any casing, reads as kind sports and echoes both; with kind esports it is a 400. Selection precedes the cap or pagination and appears as normalized selection beside the result fields; changed selections cannot share cursors or ETags. Every row carries nullable market_context with nullable league, series_slug, market_type and metadata_updated_at for authoritative filter discovery; metadata_updated_at is the local canonical writer clock, not provider observation time. Selected reads fail closed with 503 read_model_warming if frozen sidecar readiness is absent. Board defaults stay B grade floor, 30 rows and 48-hour horizon; min_grade S/A/B and limit clamp 1..30 are configurable, total is before the cap, with both current outcome quotes. Signals use min_grade default B, horizon default 12/clamp 1..48, limit default 20/clamp 1..100 and cursor, retaining token_id, all ranked/holder/directional/category-skill fields and clocks. Grade floor requires a holder at that grade or better without removing other holders. Observations require cohort wider_holder|in_play|emerging_pile, accept limit/cursor, and retain full observation rows, snapshot_as_of, degraded, source-generation/category fu…

NameTypeReqDescription
admissionstring–Observations with cohort wider_holder only: most_held_48h, the most-held selection, up to 8 markets per sport within 48 hours, recomputed every refresh; most_held_48h_by_type, the same rule within ea…
categorystring–All views; legacy canonical bucket alias. NFL selects Football; use leagues=[nfl] for NFL only. sports, in any casing, reads as kind sports (every sport but Esports); with kind esports it is a 400.
cohortstring–Required for observations; rejected for board/signals
condition_idsarray–Exact market selections. Raw provider condition IDs and the existing mkt_-prefixed aliases normalize to raw IDs. Unknown well-formed IDs return an empty result. All views. Repeat this query key or pu…
cursorstring–Advanced next_cursor, bound to view, all normalized selections and snapshot
event_slugsarray–Exact provider event slugs. Use event_slug returned on the row; no title or slug-prefix guessing. All views. Repeat this query key or put comma-separated values inside a value. Values normalize, sort…
horizon_hoursinteger–Board default 48/signals default 12, clamp 1..48; rejected for observations
kindstring–All views: sports excludes the Esports bucket; esports selects only Esports. Omit for both. Combines with other selections using AND. Selected reads echo normalized selection and require frozen metad…
leaguesarray–Normalized machine/provider league identities, such as nfl, cfb, nba, epl, cs2, lol, dota2 or valorant. Known wire/tag aliases normalize; other provider keys match exact lowercase identity. This is s…
limitinteger–Board cap default 30/clamp 1..30; advanced page default 20/clamp 1..100
market_typesarray–Exact provider sports_market_type values. This is an open provider taxonomy, distinct from exact market IDs. Read market_context.market_type; missing selected metadata excludes the row. All views. Re…
min_gradestring–Board/signals only; holder at this grade or better, default B
series_slugsarray–Exact provider series slugs. Read market_context.series_slug; a missing selected series excludes the row. All views. Repeat this query key or put comma-separated values inside a value. Values normali…
sportsarray–Canonical sport buckets, including Esports and Table Tennis, matched case-insensitively. Unknown names and league aliases such as NFL are rejected in sports; use category for legacy bucket aliases or…
viewstring–Response mode; defaults to board

Structured output declared, but exposes no named fields.

No examples provided.

get_event_replay_since ~401

Replay durable public large-trade events strictly after an opaque cursor, in commit order (a page never reaches past the oldest open write transaction, so a late-committing lower id is delivered later instead of skipped). Filters narrow the stream in place and are bound to the cursor: a cursor issued under other filters answers error.reason cursor_expired, so restart without a cursor. expand=trade adds the public trade read to every event, so a page needs no per-event get_whale_trade call. Args: - cursor (string, optional): Opaque event replay cursor - limit (number, 1-100, default 50) - trader (string, optional): wallet address, trd_ id or username - condition_id (string, optional): raw condition_id or mkt_ id - min_grade (string, optional): S, A, B, C, D or F - min_size (number, optional): minimum size in USD - expand (string, optional): "trade" Returns: Event replay window with retention and completeness metadata; each event carries trade when expanded.

NameTypeReqDescription
condition_idstring–Only this market's trades: raw condition_id or mkt_ id (bound to the cursor)
cursorstring–Opaque event replay cursor; bound to the filters the walk ran with
expandstring–trade: add the public trade read to every event, so no per-event detail call is needed
limitinteger–Max events (1-100, default 50)
min_gradestring–Only wallets at this grade or better (bound to the cursor)
min_sizenumber–Only trades of at least this size in USD (bound to the cursor)
traderstring–Only this wallet's trades: address, trd_ id or username (bound to the cursor)

Structured output declared, but exposes no named fields.

No examples provided.

get_game ~323

The same game object list_games returns, for one event_slug: both sides with their provider ids and live scores, the UTC kickoff, the provider's own status, the esports series format, a tennis game's tournament edition (tier, place, venue time zone, draw and dates), and the game's winner markets (the moneyline, or a soccer game's three 1X2 legs) with their condition_id, outcome token ids and provider moneyline prices. For the game's spreads, totals and player props, call list_game_markets with the same event_slug. The slug is the identity the live_sports_updated webhook pulse carries, so a receiver can read the full game straight from a pulse. Args: - event_slug (string, required): the game's event slug, for example nfl-buf-nyj-2026-09-22. Matched case-insensitively Returns: the game object with the envelope's meta. status.state keeps postponed, cancelled, suspended and delayed distinct from a plain 'not live'. Each game's own coverage reports whether scores, competitor provider ids and the schedule were available: when competitors reads labels, do not join on names. A slug outside the published coverage answers 404, including a real Polymarket event in a sport this deployment does not serve; list_games names what is covered. Carries no sharp-money split and no holder identity.

NameTypeReqDescription
event_slugstringyesThe game's event slug, for example nfl-buf-nyj-2026-09-22; matched case-insensitively

Structured output declared, but exposes no named fields.

No examples provided.

get_game_holders ~399

The S, A and B graded holders of up to 25 markets of one game in one call. Each item is get_market_holders for one market, unfiltered and cut to limit, with its market, scan and totals. Pass condition_ids from list_game_markets; a market that is not one of the game's is that item's not_found. Results preserve request order and duplicate inputs return duplicate rows. Uses the V1 batch item quota, one item per condition_id. A market whose fresh roster is not ready within the request is served the last roster published for it in the past 15 minutes, with stale true and its own computed_at, while the fresh one keeps computing. Only a market with no such roster is an item error with reason read_model_warming and retry_at (its code is rate_limit_unavailable for compatibility; branch on reason): its scan keeps running, so a retry after that time reads it. Page past limit with get_market_holders. Args: - event_slug (string, required): the game's event slug, for example nba-bos-orl-2026-11-01. Matched case-insensitively - condition_ids (string[], required): 1-25 condition_id values of this game's markets - limit (number, 1-100, default 20): holders per market Returns: Ordered batch results with per-item success or error details; an ok item's data carries data (holders), has_more, total, market, scan, totals, computed_at, cached and stale.

NameTypeReqDescription
condition_idsarrayyescondition_id values of this game's markets, from list_game_markets
event_slugstringyesThe game's event slug, for example nba-bos-orl-2026-11-01; matched case-insensitively
limitinteger–Max holders per market (1-100, default 20)

Structured output declared, but exposes no named fields.

No examples provided.

get_game_sharp_money ~444

Where the graded money sits on a whole game, in one read: the S, A and B grade wallets' USD on each side (home, away and, for a 1X2 game, draw) summed across the game's markets, each side's integer share of it, the leader, and wallet counts by grade, plus the backend's verdict on the split. The same aggregate the game page on 0xinsider renders, so the two cannot disagree. Use it instead of paging get_market_holders per market and summing. Args: - event_slug (string, required): the game's event slug, for example nba-bos-orl-2026-11-01. Matched case-insensitively Returns: data with event_slug, status, lifecycle, verdict, allocation, total_usd, unallocated_usd, trader_count, holders_partial, outcomes[] (side, label, usd, pct, is_leader, wallets.s/a/b), computed_at and money_as_of, plus meta. Every aggregate field is null unless status is computed; null means unknown, never zero. verdict.kind is no_sharp_money, all_on, split, leans (label, pct), leans_over_price (label, divergence_pts: how many probability points the money share sits above the price), no_clear_lean, unavailable (money exists but cannot be attributed) or withheld (the money is published but no directional claim is supported). When allocation is degraded, outcomes sum to total_usd minus unallocated_usd and carry no pct or leader. holders_partial true means a market's holder list was a capped page, so counts and dollars cover part of the holders. A settled game returns its recap with lifecycle settled. A game whose aggregate is still computing answers 503 read_model_warming with Retry-After; read again then. A slug with no sports market answers 404. Pro and Max. Descriptive analytics, not an order instruction.

NameTypeReqDescription
event_slugstringyesThe game's event slug, for example nba-bos-orl-2026-11-01; matched case-insensitively

Structured output declared, but exposes no named fields.

No examples provided.

get_game_trades ~346

A game's newest fills across every market in it, live: the moneyline, spreads, totals and props, player props included, newest first. The same rows the 0xinsider game page's activity rail shows a Pro viewer. Every fill, not only large ones; use get_large_trades with event_slug for the game's large trades with review scores. Args: - event_slug (string, required): the game's event slug, for example nba-bos-orl-2026-11-01. Matched case-insensitively - limit (number, 1-200, default 100): newest fills to return Returns: data (each fill's id, traded_at, side, outcome, outcome_index, price, shares, size_usd, the signed spread point, the trader's address, display_name and current grade, and the market's condition_id, title, slug and line_label, its name within the game), has_more (always false: poll again rather than page), event_slug, source_stale and meta. source_stale true means the rows are the game's last complete read while its refresh runs. Deduplicate on id across polls. A 503 read_model_warming means the game's first read is still running: retry after Retry-After. An unknown slug answers not_found; an event outside sports and esports answers market_out_of_scope.

NameTypeReqDescription
event_slugstringyesThe game's event slug, for example nba-bos-orl-2026-11-01; matched case-insensitively
limitinteger–Newest fills to return (1-200, default 100)

Structured output declared, but exposes no named fields.

No examples provided.

get_insider_radar ~393

Deprecated alias of get_suspicious_trades (#16301), kept live until its 2027-02-01 sunset (#29351), then removed; it calls the deprecated /api/v1/insider-radar path. Stored trades whose recorded suspicion score meets the live flag threshold. Cursor-paginated by suspicion score (highest first). Use mode=stable when a walk must stay on one published scoring generation; restart when it returns cursor_expired. Each suspicious trade includes: - suspicion_score (60-100) - severity (currently flag) - Sub-scores: size and fresh_wallet when recorded; timing and edge are null - Evidence JSON with the scorer's stored signals Args: - limit (number, 1-100, default 20): Max results per page - cursor (string, optional): Pagination cursor from previous response - min_suspicion (number, 0-100, default 0): Minimum score; the live floor of 60 also applies - severity (string, optional): "flag" selects live rows; "watch" returns none because no live watch policy exists - mode (string, optional): "live" (default) uses fresh cached pages; "stable" pins the walk to one published scoring generation Returns: List of suspicious trades with trader, market, scores, and evidence.

NameTypeReqDescription
cursorstring–Pagination cursor from previous response
limitinteger–Max results (1-100, default 20)
min_suspicionnumber–Minimum suspicion score (0-100); the live floor of 60 also applies
modestring–live uses the fresh response cache; stable pins pagination to one published scoring generation
severitystring–"flag" selects live rows; "watch" returns none because no live watch policy exists

Structured output declared, but exposes no named fields.

No examples provided.

get_insider_radar_flag ~145

Deprecated alias of get_suspicious_trade (#16301), kept live until its 2027-02-01 sunset (#29351), then removed; it calls the deprecated /api/v1/insider-radar/{id} path. Read one suspicious trade by ID. Accepts the rf_ ID returned by list responses or the raw numeric whale_alerts.id. Args: - id (string, required): Suspicious trade ID such as rf_123 or 123 Returns: One suspicious trade with trader, market, suspicion scores, and evidence.

NameTypeReqDescription
idstringyesSuspicious trade ID such as rf_123 or 123

Structured output declared, but exposes no named fields.

No examples provided.

get_large_positions ~389

List the largest current open positions from graded traders (Polymarket-only). Each row carries position value, open (unrealized) P&L, share count, entry/current price, outcome label, and trader/market context. Cursor-paginated by position value descending. Polymarket-only: the scanner filters platform = 'polymarket', so an unknown condition_id matches nothing and returns an empty list (never fabricated rows). Args: - limit (number, 1-100, default 20): Max results per page - cursor (string, optional): Opaque pagination cursor from previous response - min_size (number, optional): Minimum position value in USD - category (string, optional): Filter by provider-backed market category. One category such as Basketball or Esports; the word sports is rejected, so omit category for every sports and esports market - min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F) - condition_id (string, optional): Scope to one market (raw provider id or mkt_-prefixed) Returns: List of large positions with trader, market, value, P&L, and pagination metadata.

NameTypeReqDescription
categorystring–Filter by provider-backed market category. One category such as Basketball or Esports; the word sports is rejected, so omit category for every sports and esports market
condition_idstring–Scope to one market (raw provider condition_id or mkt_-prefixed). Polymarket-only; an unknown id returns an empty list.
cursorstring–Opaque pagination cursor from previous response
limitinteger–Max results (1-100, default 20)
min_gradestring–Minimum trader grade
min_sizenumber–Minimum position value in USD

Structured output declared, but exposes no named fields.

No examples provided.

get_large_trade ~204

Read one large trade by ID. Accepts either the wt_ ID returned by large-trade list/history responses or the raw numeric id. Args: - id (string, required): Large trade ID such as wt_123 or 123 Returns: One large trade with trader info, market context, size, side, price, current review_score (signal_score is its deprecated twin, same value, until its 2027-02-01 sunset) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin until its 2027-02-01 sunset; null before 2026-08-03) and trader grade_at_trade with grade_at_trade_status (unknown before 2026-09-19), optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label.

NameTypeReqDescription
idstringyesLarge trade ID such as wt_123 or 123

Structured output declared, but exposes no named fields.

No examples provided.

get_large_trade_counterparty_executions ~246

Page the counterparty executions of one large trade past the first page get_large_trade embeds in counterparty_analysis. Reads the immutable snapshot that response names; a stale or changed snapshot fails with reason cursor_expired, so read get_large_trade again and restart. Args: - id (string, required): Large trade ID such as wt_123 or 123 - snapshot_id (string, required): counterparty_analysis.snapshot_id from get_large_trade - cursor (string, optional): executions_next_cursor from get_large_trade or from the previous page - limit (number, 1-100, default 100): Executions per page Returns: executions (each with its first makers page and makers_next_cursor), executions_next_cursor, execution counts, status and meta.

NameTypeReqDescription
cursorstring–executions_next_cursor from get_large_trade or from the previous page
idstringyesLarge trade ID such as wt_123 or 123
limitinteger–Max executions per page (1-100, default 100)
snapshot_idstringyescounterparty_analysis.snapshot_id from get_large_trade

Structured output declared, but exposes no named fields.

No examples provided.

get_large_trade_counterparty_makers ~246

Page the maker wallets of one counterparty execution past the first page its execution embeds. Percentages keep the whole execution as their denominator across pages. Args: - id (string, required): Large trade ID such as wt_123 or 123 - execution_id (string, required): execution_id of the execution - snapshot_id (string, required): counterparty_analysis.snapshot_id from get_large_trade - cursor (string, optional): makers_next_cursor from the execution or next_cursor from the previous page - limit (number, 1-100, default 100): Makers per page Returns: items (makers), next_cursor, execution_id, snapshot_id and meta.

NameTypeReqDescription
cursorstring–makers_next_cursor from the execution, or next_cursor from the previous page
execution_idstringyesexecution_id of one counterparty execution
idstringyesLarge trade ID such as wt_123 or 123
limitinteger–Max makers per page (1-100, default 100)
snapshot_idstringyescounterparty_analysis.snapshot_id from get_large_trade

Structured output declared, but exposes no named fields.

No examples provided.

get_large_trades ~1,168

Get recent large trades from graded prediction market traders. Each trade includes a 0-1 review score, persisted suspicion facts, trader grade, and market context. Cursor-paginated, newest first. Args: - limit (number, 1-100, default 20): Max results per page - cursor (string, optional): Pagination cursor from previous response - min_size (number, default 5000): Minimum trade size in USD - category (string, optional): Filter by market category (case-insensitive): a sport such as Basketball, a league such as NBA (it folds into its sport), Esports, or sports for every sport but Esports. Omit it for every sports and esports trade - min_grade (string, optional): Minimum trader grade now (S, A, B, C, D, F); not with min_grade_at_trade - min_grade_at_trade (string, optional): Minimum grade the trader held when the trade filled (graded only), the basis the stream and webhooks share; not with min_grade - suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60; false preserves the current result set - min_market_volume_share (number, 0-1, optional): Keep only trades whose market_volume_share is known and at least this; a fraction, so 0.01 is one percent of the market's traded volume - sort (string, optional): "recent" (default, newest first) or "market_volume_share" (biggest share of its market first, over the last 30 days, or from the from bound on the history tools; a cursor is bound to the order it was minted in) - since (string, optional): wt_ id of a trade a previous call returned; answers only the trades recorded after it, in commit order, so a trade recorded late still arrives. Poll with the first trade of the last answer that had trades and deduplicate on id; recent order only - condition_id (string, optional): One market's large trades, by exact raw provider condition_id; not with event_slug or since - event_slug (string, optional): Every market of one game (moneyline, spreads, totals and props), the markets get_game_…

NameTypeReqDescription
categorystring–Filter by market category (case-insensitive): a sport such as Basketball, a league such as NBA (it folds into its sport), Esports, or sports for every sport but Esports. Omit it for every sports and…
condition_idstring–One market's large trades: its exact raw provider condition_id. Not with event_slug or since
cursorstring–Pagination cursor from previous response
event_slugstring–Every market of one game (moneyline, spreads, totals and props), the markets get_game_trades reads; for example nba-bos-orl-2026-11-01. An unknown slug is not_found. Recent order only; not with condi…
limitinteger–Max results (1-100, default 20)
min_gradestring–Minimum trader grade now; not with min_grade_at_trade
min_grade_at_tradestring–Minimum grade the trader held when the trade filled (grade_at_trade, graded only), the basis the stream and webhooks share; not with min_grade
min_market_volume_sharenumber–Keep only trades whose market_volume_share is known and at least this. A fraction, not a percent: 0.01 is one percent of the market's traded volume. A trade whose share is unavailable is never return…
min_sizenumber–Minimum trade size in USD (default 5000)
sincestring–wt_ id of a trade a previous call returned: answer only the trades recorded after it, in commit order, so a trade recorded late still arrives and none is skipped. Poll with the first trade of the las…
sortstring–Order of the page. recent is newest first. market_volume_share ranks by each trade's share of its market's traded volume, biggest first, a trade whose share is unavailable last, over the last 30 days…
suspicious_onlyboolean–Keep only rows with persisted suspicion_score >= 60

Structured output declared, but exposes no named fields.

No examples provided.

get_large_trades_history ~996

Replay historical large trades from the local record. Supports cursor pagination plus condition, trader, category, grade, platform, suspicion, market-share, and RFC3339 from/to filters, and a market_volume_share sort. Args: - limit (number, 1-100, default 20) - cursor (string, optional): Pagination cursor with wth_ prefix - min_size (number, optional): Minimum trade size in USD - condition_id (string, optional): Exact raw provider condition_id - event_slug (string, optional): Every market of one game, the markets get_game_trades reads; recent order only, not with condition_id; an unknown slug is not_found - trader (string, optional): Wallet, alias, or username - category (string, optional): Filter by market category (case-insensitive): a sport such as Basketball, a league such as NBA (it folds into its sport), Esports, or sports for every sport but Esports. Omit it for every sports and esports trade - min_grade (string, optional): S, A, B, C, D, or F; filters on today's grade, not the grade at trade time - suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60 - platform (string, optional): polymarket or all - from/to (string, optional): RFC3339 traded_at bounds - min_market_volume_share (number, 0-1, optional): Keep only trades whose market_volume_share is known and at least this; a fraction, so 0.01 is one percent of the market's traded volume - sort (string, optional): "recent" (default, newest first) or "market_volume_share" (biggest share of its market first, over the last 30 days, or from the from bound on the history tools; a cursor is bound to the order it was minted in) Returns: Historical large trades with replay metadata, current review_score (signal_score is its deprecated twin, same value, until its 2027-02-01 sunset) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin until its 2027-02-01 sunset; null before 2026-08-03) and trader grade_at_trade with gr…

NameTypeReqDescription
categorystring–Filter by market category (case-insensitive): a sport such as Basketball, a league such as NBA (it folds into its sport), Esports, or sports for every sport but Esports. Omit it for every sports and…
condition_idstring–Exact raw provider condition_id
cursorstring–Pagination cursor from previous response
event_slugstring–Every market of one game (moneyline, spreads, totals and props), the markets get_game_trades reads; for example nba-bos-orl-2026-11-01. An unknown slug is not_found. Recent order only; not with condi…
fromstring–Inclusive traded_at lower bound
limitinteger–Max results (1-100, default 20)
min_gradestring–Minimum trader grade
min_market_volume_sharenumber–Keep only trades whose market_volume_share is known and at least this. A fraction, not a percent: 0.01 is one percent of the market's traded volume. A trade whose share is unavailable is never return…
min_sizenumber–Minimum trade size in USD
platformstring–Filter by provider platform
sortstring–Order of the page. recent is newest first. market_volume_share ranks by each trade's share of its market's traded volume, biggest first, a trade whose share is unavailable last, over from, or the las…
suspicious_onlyboolean–Keep only rows with persisted suspicion_score >= 60
tostring–Exclusive traded_at upper bound
traderstring–Trader wallet, alias, or username

Structured output declared, but exposes no named fields.

No examples provided.

get_leaderboard ~573

Get the top-ranked prediction market traders (grades S, A, B only). By default in the board's own rank order; sort, dir and activity reorder and scope the same wallets as the site's leaderboard does. Supports cursor pagination and optional filters. Args: - limit (number, 1-100, default 20): Max results per page - cursor (string, optional): Pagination cursor from previous response; it is bound to the sort, dir and activity it was read with - category (string, optional): Filter by a sport or esports bucket (case-insensitive) such as Basketball or Esports, or sports for every sport but Esports. Omit it for every sports and esports wallet - strategy (string, optional): Trading style: two_sided, category_focused, high_activity, diversified, mixed, unclassified - sort (string, optional): rank (default), grade, volume (sports and esports USD volume), predictions, pnl, win_rate (wallets with at least 5 decided markets), edge (price_edge.edge, wallets whose edge ranks); a missing value sorts lowest - dir (string, optional): asc or desc; omitted, rank 1 first for rank and largest first for the rest - activity (string, optional): all (default), active (last trade 30 days ago or less) or inactive Returns: Ranked list of traders with grade, score, sports and esports P&L, markets, win rate, edge over the price paid, and strategy. Without category or strategy, also summary: the whole board's ranked_total, by_grade (S, A, B), active_30d (last trade 30 days ago or less) and as_of, the counts the site's leaderboard shows.

NameTypeReqDescription
activitystring–all (default), active (last trade 30 days ago or less) or inactive
categorystring–Filter by a sport or esports bucket (case-insensitive) such as Basketball or Esports, or sports for every sport but Esports. Omit it for every sports and esports wallet
cursorstring–Pagination cursor from previous response
dirstring–asc or desc. Omitted: rank 1 first for rank, largest first for the rest
limitinteger–Max results (1-100, default 20)
sortstring–Order: rank (default, the board's own order), grade, volume (sports and esports USD volume), predictions, pnl, win_rate (wallets with at least 5 decided markets) or edge (price_edge.edge, wallets who…
strategystring–Filter by strategy type

Structured output declared, but exposes no named fields.

No examples provided.

get_leaderboard_leagues ~117

List every league that has its own skill leaderboard, grouped by sport, most ranked wallets first. Each row's sport and slug are the sport and league arguments of get_sport_leaderboard. A league is listed once its edge sort ranks at least min_ranked wallets. A ranking being rebuilt returns read_model_warming with a retry time. Args: none Returns: min_ranked, min_resolved, refreshed_at and leagues[] (category, sport, slug, name, ranked_traders, total_traders).

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_market_candles ~292

OHLC price candles for a market's outcome tokens from the stored Polymarket CLOB price history, the series the market chart draws, for open and resolved markets. The stored series is daily: a 1d candle usually holds one point, so its open, high, low and close are that day's close, and 1w aggregates the daily closes. No intraday detail is invented. Args: - condition_id (string, required): Raw provider condition_id or the mkt_-prefixed market id - resolution (string, optional): 1d (default, UTC day) or 1w (ISO week from Monday 00:00 UTC) - from (integer, optional): Exclusive lower bound, unix seconds - to (integer, optional): Inclusive upper bound, unix seconds; from must not be after to Returns: condition_id, resolution, and outcomes, each with its token_id and candles, plus meta.

NameTypeReqDescription
condition_idstringyesRaw provider condition_id or the mkt_-prefixed market id
frominteger–Exclusive lower bound in unix seconds
resolutionstring–1d (the default) buckets by UTC day, 1w by ISO week from Monday 00:00 UTC
tointeger–Inclusive upper bound in unix seconds; from must not be after to

Structured output declared, but exposes no named fields.

No examples provided.

get_market_flow ~210

One market's flow and top positions: the signed flow of every tracked large trade in the window (net_flow_usd and its direction, YES or NO), the large-trade count, gross buy and sell volumes, and the top five graded trader positions. The envelope object is market_flow. Use search_markets first to find the condition_id for a market. Args: - condition_id (string, required): Market condition ID (from search_markets results) - timeframe (string, optional): Lookback window: "1h", "4h", "24h", "7d" (default "24h") Returns: Market info, the flow under sharp_money (net_flow_usd, direction YES/NO, large_trade_count, volumes) with smart_money as its deprecated byte-identical alias, and the top 5 graded trader positions.

NameTypeReqDescription
condition_idstringyesMarket condition ID
timeframestring–Lookback window (default 24h)

Structured output declared, but exposes no named fields.

No examples provided.

get_market_holders ~503

The S, A and B graded wallets holding one Polymarket market, from a complete provider holder scan: shares, Polymarket's currentValue for the leg, grade, win record in the market's category, and badges. A wallet holding both outcomes is listed once on its net side. Ordered by current value. The roster is at most 60 seconds old over a provider walk at most 180 seconds old; scan.fetched_at is its only timestamp. An incomplete scan is an error with a retry time, never a shorter list. C, D, F and ungraded wallets are never listed and are counted only in scan.wallet_count; get_market_top_holders lists the largest holders of every grade. Counts differ from get_positions by design: a live scan, the graded cohort, and no 100 USD size floor. Args: - condition_id (string, required): Raw provider condition_id or the mkt_-prefixed market id - outcome (string, optional): yes, no, or all (default) - min_grade (string, optional): S keeps S, A keeps S and A, B (default) keeps S, A and B - limit (number, 1-100, default 20): Holders per page - cursor (string, optional): next_cursor from the previous page, bound to the same market and filters Returns: data (holders), has_more, next_cursor, total, market, scan, totals and meta. totals covers the whole roster before outcome and min_grade: yes_usd and no_usd, the S, A and B wallet counts per side (yes_grades, no_grades), and that USD split by grade per side (yes_grade_usd, no_grade_usd), so the S-grade money on each side needs no page walk.

NameTypeReqDescription
condition_idstringyesRaw provider condition_id or the mkt_-prefixed market id
cursorstring–next_cursor from the previous page; it is bound to the same market and filters
limitinteger–Max holders per page (1-100, default 20)
min_gradestring–Narrow the graded cohort: S keeps S, A keeps S and A, B (the default) keeps S, A and B
outcomestring–Keep holders netting one side; all (the default) lists both

Structured output declared, but exposes no named fields.

No examples provided.

get_market_intel ~229

Deprecated alias of get_market_flow (#16312), kept live until its 2027-02-01 sunset (#29351), then removed; it calls the deprecated /api/v1/market/{condition_id}/intel path, whose envelope keeps object: market_intel. Sharp money flow analysis for a specific prediction market. Shows net flow direction, whale trade count, buy/sell volumes, and top graded trader positions. Use search_markets first to find the condition_id for a market. Args: - condition_id (string, required): Market condition ID (from search_markets results) - timeframe (string, optional): Lookback window: "1h", "4h", "24h", "7d" (default "24h") Returns: Market info, sharp_money flow (net_flow_usd, direction YES/NO, volumes) with smart_money as its deprecated byte-identical alias, and top 5 trader positions.

NameTypeReqDescription
condition_idstringyesMarket condition ID
timeframestring–Lookback window (default 24h)

Structured output declared, but exposes no named fields.

No examples provided.

get_market_snapshot ~145

Provider-first live market-card snapshot for one raw provider condition_id. Forwards IDs to the V1 handler without mkt_ rewriting. Args: - condition_id (string, required): Raw provider condition_id returned by search or explore - expand (string[], optional): "trust" adds per-field provenance (source, freshness, reconciliation, completeness) for current_price and spread_bps Returns: Market identity, outcomes, liquidity, sports context, and freshness states, plus trust when expanded.

NameTypeReqDescription
condition_idstringyesRaw provider condition_id
expandarray–Optional heavy fields to include: trust adds provenance for current_price and spread_bps

Structured output declared, but exposes no named fields.

No examples provided.

get_market_top_holders ~417

The largest holders of one Polymarket market on each outcome, every grade from S to F and ungraded wallets included: the event page's Top holders table. Up to 100 per outcome, largest shares first, with Polymarket's current value, average entry price and position P&L for the leg, the wallet's grade, its sports and esports realized P&L and volume, its win record in the market's category, and badges. Use get_market_holders for the complete S, A and B roster; this is the top of the holder board, whatever the grade. On an open market the sample is rebuilt at most every 30 seconds from a holder board re-read at most every 120 seconds, so positions are usually up to about 150 seconds old: positions_as_of says when the board was fetched and computed_at when the sample was built. Once the 30 seconds pass, the last sample comes back with source_stale true while a new one builds, if its board is at most 300 seconds old; read again a few seconds later for the new sample. A resolved market's sample is at most 300 seconds old. Busy or unavailable holder data is an error with a retry time. Args: - condition_id (string, required): Raw provider condition_id or the mkt_-prefixed market id - limit (number, 1-100, default 20): Holders per outcome Returns: market, yes and no (holder rows, each with rank), totals (yes_count, no_count, yes_shares and no_shares over the whole sample before limit, and sample_cap: a count equal to it means that many or more), profiles_status, category_records_as_of, computed_at, positions_as_of, source_stale and meta.

NameTypeReqDescription
condition_idstringyesRaw provider condition_id or the mkt_-prefixed market id
limitinteger–Max holders per outcome (1-100, default 20)

Structured output declared, but exposes no named fields.

No examples provided.

get_market_wallets_in_out ~339

One market's net buyers and net sellers over the last 24 hours or 7 days, live: the 0xinsider market page's wallets in/out panel for a Pro viewer. A wallet's net is its buys minus its sells in the window across both outcomes, in USD of matched notional, fees excluded. Args: - condition_id (string, required): Raw provider condition_id or the mkt_-prefixed market id - window (string, optional): 24h (default) or 7d Returns: condition_id, window, window_start and window_end (the inclusive bounds the read used), summary (wallets_in and wallets_out, the count of wallets with a positive and a negative net over every wallet in the window, and net_usd, the sum of every net), net_buyers (largest net first) and net_sellers (most negative first), at most 25 each, each wallet with its address, display_name, current grade, net_usd, trades in the window and last_traded_at (its newest trade on any market, at or before window_end), plus meta. A wallet that bought and sold the same amount nets zero and is on neither list. Reads are cached for about a minute. A condition_id with no market page answers not_found; a market outside sports and esports answers market_out_of_scope.

NameTypeReqDescription
condition_idstringyesRaw provider condition_id or the mkt_-prefixed market id
windowstring–24h (the default) or 7d, ending at the read's clock

Structured output declared, but exposes no named fields.

No examples provided.

get_monthly_report_snapshot ~61

Read one UTC monthly whale-activity report snapshot. Args: - month (string, required): UTC report month in YYYY-MM format Returns: Report snapshot metadata and entries.

NameTypeReqDescription
monthstringyesUTC report month in YYYY-MM format

Structured output declared, but exposes no named fields.

No examples provided.

get_pick_of_the_day ~986

Get the published Pick of the Day selections for today, or for a past product day with `date`, and their recorded facts. Pro opens five selections in total: the explicitly designated free selection plus the first four non-free selections in publication order. Max opens every available daily selection, up to twenty-five. Read entitled `picks` in `publication_order` order; use stable decimal-string `pick_id` for identity, not deprecated `pick_rank`. `is_free_selection` designates account access; `supersedes_pick_id` is deprecated and always null. `locked_picks` lists extra unresolved slots with only pick_rank and required_tier=max; game identity, identifying clocks and backed facts are omitted. Each full pick carries the matchup, backed side (pick_outcome_label), recorded publication price and return on the flat $1,000 stake (`stake_usd`, `return_usd`; `return_per_100` keeps the literal $100 basis), available holder facts, top grade, CLV capture status and backend-provided thesis. `scheduled_picks` contains entitled scheduled slots with release_at and kickoff; unauthorized slots appear in identity-free locked_picks instead. No market identity is revealed before publication. Withdrawn picks are omitted from current and dated recommendations, the archive and its statistics, even after market settlement. The public ledger retains every published commitment under its original identity and proof bytes. With `date`, the tool reads that past day's slate as the dated web page shows it, under the same tier rule, with no scheduled_picks. A past day with no published pick returns not_found with param date; a past day does not change, so do not retry it. A date after today is a bad_request. For today, when no active pick is available, the tool returns reason pick_not_released and retry_at. Schedule the next read from the returned retry guidance or an entitled scheduled slot's release_at instead of polling. An entitled published pick whose holder proof is not readable appears i…

NameTypeReqDescription
datestring–Product day (America/New_York) in YYYY-MM-DD format, on or before today; omit for today's slate
pick_idstring–One entitled published pick of the day, by its decimal-string pick_id; pair with date for a past day's pick
viewstring–summary (the default without pick_id): each pick's identity, side, price, result, return and grade. full (the default with pick_id): every recorded fact, including holders, sports context and entry_a…

Structured output declared, but exposes no named fields.

No examples provided.

get_pick_of_the_day_archive ~557

Get the Pick of the Day track record: each published pick that has not been withdrawn, with its outcome (win, loss, void or pending), recorded publication price, unit score and CLV fields, plus the rolling hit rate (wins / decided; void and pending excluded) and flat-$1,000-stake profit and ROI (`hit_rate.stake_usd` names the stake). The actual API key tier controls unresolved access: Pro opens five selections in total, the designated free selection plus the first four non-free selections in publication order; Max opens every available daily selection, up to twenty-five. Every resolved outcome (win/loss/void) is public. Unentitled pending rows retain only slot/date/outcome and required_tier with backed_side_locked=true; matchup, category, league, image, publication clock and backed facts are omitted. The archive retains the included historical picks, losses included. Withdrawn recommendations are omitted from archive rows and every aggregate, including the cumulative series, even after market settlement. The public ledger retains every published commitment under its original pick_id and proof bytes. The default view=summary returns hit_rate without its per-pick series, and one page of short rows (pick_id, pick_date, publication_order, is_free_selection, matchup, display_category, pick_outcome_label, outcome, top_grade, backed_price, unit_score, clv_pct, backed_side_locked, required_tier), with page.total, page.has_more and page.next_cursor. Pass next_cursor as cursor for older rows. view=full returns every row field plus days and hit_rate.series (the whole record passed 1,000,000 characters in November 2026); send limit with it to page the rows. get_pick_of_the_day with date and pick_id reads one pick in full; get_pick_of_the_day_stats serves the series and per-day buckets. Args: - view (string, optional): summary (default) or full - limit (integer, optional): Rows per page, 1-200, default 50 - cursor (string, optional): page.next_cursor of the previous pag…

NameTypeReqDescription
cursorstring–page.next_cursor of the previous page
limitinteger–Rows per page (1-200, default 50)
viewstring–summary (default): the headline record and one page of short rows. full: every row field and the record's series and days; send limit to page it

Structured output declared, but exposes no named fields.

No examples provided.

get_pick_of_the_day_ledger_entry ~110

Read one published pick's sealed, opened or uncommitted ledger entry by its stable decimal-string pick_id. commitment_version explicitly selects version 1 legacy proofs or version 2 rank-free proofs. Never infer a proof format from dates or reorder canonical bytes. Pending proofs withhold the backed side and nonce. This tool requires the usual authenticated MCP tools/call transport; the corresponding REST read is public.

NameTypeReqDescription
pick_idstringyesStable positive database row id as decimal text

Structured output declared, but exposes no named fields.

No examples provided.

get_pick_of_the_day_stats ~417

Get the Pick of the Day track-record breakdown the stats page shows, computed from the same rows the archive publishes: the rolling hit rate, the win rate the market expected at publication, flat-stake outcome stats (drawdown, rolling form, profit factor, concentration), and buckets by day, sport, league or category label, access group (Free, Pro, Max), month, entry-price band, market type and totals side, plus streaks, records and every void pick. Withdrawn picks are outside every figure, as in the archive. The default view=summary returns every section except the five that grow with the record: series (one point per decided pick), days, categories, months and voids (one row per void pick). Name them in sections to read them; sections returns exactly the sections named and overrides view. view=full returns every section (over 150,000 characters in November 2026). hit_rate never carries series in summary or sections; series is its own top-level section. Args: - view (string, optional): summary (default) or full - sections (string[], optional): hit_rate, series, market_expectations, outcome_stats, days, categories, sports, tiers, months, price_bands, market_types, total_sides, streaks, records, voids; an unknown name is an error Returns: view, sections and the selected sections of hit_rate, series, market_expectations, outcome_stats, days[], categories[], sports[], tiers[], months[], price_bands[], market_types[], total_sides[], streaks, records and voids[]; view=full returns the whole object without view or sections.

NameTypeReqDescription
sectionsarray–Exactly the sections to return; overrides view. series is the per-pick cumulative record, served top-level
viewstring–summary (default): every section except series, days, categories, months and voids, which grow with the record. full: every section

Structured output declared, but exposes no named fields.

No examples provided.

get_platforms ~184

Deprecated alias of get_coverage (#16315), kept live until its 2027-02-01 sunset (#29351), then removed; it calls the deprecated /api/v1/platforms path, which serves the same body. Read which V1 data surfaces the API serves for Polymarket, the one venue it covers. Every surface reports the status supported: grade, pnl, strategy, timeline, large_trades, whale_signal (the deprecated spelling of large_trades, until its 2027-02-01 sunset), suspicious_trades, insider_radar (the deprecated spelling of suspicious_trades, until its 2027-02-01 sunset), and market_snapshot. Use this before choosing trader, market, large-trade, or suspicious-trade routes. Args: none Returns: Static backend-owned coverage document under the single key polymarket.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_position_timeline ~281

Get stored Polymarket fills available for one tracked trader in one market, newest first, with server-computed running_amount and running_avg_price. The REST identity accepts a 0x wallet, username, trd_-prefixed trader id, or bare integer traders.id with precedence wallet, trd_, integer, then username. Only warm-tier traders, the wallets we sync most often, are tracked. Args: - condition_id (string, required): Market condition ID - address (string, optional): Any supported REST trader identity, including a bare integer traders.id - trader_id (number, optional): Convenience alias for a bare integer traders.id; provide exactly one of address or trader_id - limit (number, 1-100, default 20): Max events per page - cursor (string, optional): Pagination cursor from previous response Returns: List of position timeline events with pagination metadata.

NameTypeReqDescription
addressstring–Trader identity: 0x wallet, username, trd_-prefixed traders.id, or bare integer traders.id
condition_idstringyesMarket condition ID
cursorstring–Pagination cursor from previous response
limitinteger–Max events (1-100, default 20)
trader_idinteger–Internal traders.id alias

Structured output declared, but exposes no named fields.

No examples provided.

get_position_timeline_by_id ~165

Get stored Polymarket fills available for one internal trader id in one market, newest first, using the public V1 /api/v1/traders/{id}/position-timeline route. Args: - condition_id (string, required): Market condition ID - trader_id (number, required): Internal traders.id alias - limit (number, 1-100, default 20) - cursor (string, optional) Returns: List of position timeline events with pagination metadata.

NameTypeReqDescription
condition_idstringyesMarket condition ID
cursorstring–Pagination cursor from previous response
limitinteger–Max events (1-100, default 20)
trader_idintegeryesInternal traders.id alias

Structured output declared, but exposes no named fields.

No examples provided.

get_positions ~732

List current prediction-market positions from the public positions-board feed. Returns trader, market, value, side, share, P&L, and freshness context. Cursor-paginated by current value descending. Args: - limit (number, 1-100, default 20): Max results per page - cursor (string, optional): Pagination cursor from previous response - min_size (number, optional): Minimum current value in USD; defaults to 100, or to 0 when wallet is present; send 0 for every reconciled position - category (string, optional): Filter by provider-backed market category. One category such as Basketball or Esports; the word sports is rejected, so omit category for every sports and esports market - condition_id (string, optional): Scope to one market: raw provider condition_id or mkt_-prefixed market id - wallet (string[], optional): Scope to one wallet or a book of wallets (up to 25); each value is a wallet address, known username, or trd_-prefixed trader id - min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F) - side (string, optional): Filter by binary side: "yes" or "no" - consistency (string, optional): live (default) or snapshot. snapshot requires wallet and freezes up to 500 positions and 2 MB for up to five minutes; repeat the same filters and consistency on every page. A new first page replaces the API key's prior snapshot; a changed filter errors, and an expired or replaced cursor returns cursor_expired Returns: List of current positions with pagination metadata. The page carries data_quality beside data: status, as_of (the oldest clock the page rests on) and field_groups. fresh and stale both mean tracked and clocked; stale means as_of is older than max_age_s, the refresh budget of the group writer. Neither is a tolerance: compare as_of with your own. unknown means this read cannot date that group, never that it is recent. With consistency=snapshot, the page also carries snapshot: as_of, expires_at, row_count.

NameTypeReqDescription
categorystring–Filter by provider-backed market category. One category such as Basketball or Esports; the word sports is rejected, so omit category for every sports and esports market
condition_idstring–Scope to one market: raw provider condition_id or mkt_-prefixed market id
consistencystring–live (default) reads the current value-ordered board. snapshot requires wallet and freezes up to 500 matching rows and 2 MB for up to five minutes; repeat the same filters and consistency on every pa…
cursorstring–Pagination cursor from previous response
limitinteger–Max results (1-100, default 20)
min_gradestring–Minimum trader grade
min_sizenumber–Minimum current position value in USD; defaults to 100, or to 0 when wallet is present
sidestring–Filter by binary outcome side
walletarray–Scope to one wallet or a book of wallets (up to 25). Each value is a wallet address, a known username, or a trd_-prefixed trader id, resolved like get_trader

Structured output declared, but exposes no named fields.

No examples provided.

get_report ~176

Unified whale-activity report snapshot selector. One route for all three granularities; dispatches to the same per-granularity cap and date window as the granularity-specific report tools. Args: - granularity (string, required): "daily", "weekly", or "monthly" - period (string, required): Period token for the granularity. daily: UTC date YYYY-MM-DD. weekly: ISO week YYYY-WW, or a from,to YYYY-MM-DD pair. monthly: UTC month YYYY-MM. Returns: Report snapshot metadata and entries (source_range, snapshot.status, completeness, reconciliation, report).

NameTypeReqDescription
granularitystringyesReport granularity selector
periodstringyesPeriod token: daily YYYY-MM-DD, weekly YYYY-WW or a from,to YYYY-MM-DD pair, monthly YYYY-MM

Structured output declared, but exposes no named fields.

No examples provided.

get_resolution_report ~272

Read one UTC day's resolution report: on the day's resolved sports and esports markets, how often the side the profitable (S, A and B grade) wallets held won, beside how often every qualifying wallet's side won, one vote each. markets lists each market they held a position in, with the consensus side, its confidence and each wallet's side, cost and realized P&L; view totals drops it. A past day is served from its retained build: generated_at says when it was built and source_updates_pending that a newer build has been requested. A day with no build yet returns read_model_warming with a retry time. Args: - date (string, required): UTC report date in YYYY-MM-DD format, no later than today - view (string, optional): full (default) or totals Returns: date, market_scope, grade_basis, the counts (total_resolved, with_smart_positions, smart_money_right, smart_money_wrong, accuracy, all_wallets_right, all_wallets_wrong, all_wallets_accuracy, total_smart_pnl), generated_at, source_updates_pending and markets[].

NameTypeReqDescription
datestringyesUTC report date in YYYY-MM-DD format, no later than today
viewstring–totals returns the counts without markets

Structured output declared, but exposes no named fields.

No examples provided.

get_sharp_money_flows ~548

Ranked sharp-money flow discovery across prediction markets. Use this before you know a condition_id to find where graded traders are net buying or selling. Cursor-paginated, ranked by absolute net flow descending. Args: - timeframe (string, optional): Lookback window: "1h", "4h", "24h", "7d" (default "24h") - limit (number, 1-100, default 20): Max results per page - cursor (string, optional): Pagination cursor with smf_ prefix - category (string, optional): Filter by market category (case-insensitive): a sport such as Basketball, Esports, or sports for every sport but Esports - platform (string, optional): "polymarket" or "all" (default "all") - min_grade (string, optional): Minimum trader grade S, A, B, C, D, or F (default "B" = S/A/B) - direction (string, optional): Filter by net flow direction: "YES" or "NO" - condition_id (string, optional): One market's flow, by exact raw provider condition_id; not with event_slug - event_slug (string, optional): Rank only the markets of one game (moneyline, spreads, totals and props), the markets get_game_trades reads; not with condition_id; an unknown slug is not_found Returns: Ranked markets with sharp_money (net_flow_usd, direction, whale_trade_count, buy/sell volumes) and market identity. smart_money is a deprecated byte-identical alias of sharp_money until its 2027-02-01 sunset.

NameTypeReqDescription
categorystring–Filter by market category (case-insensitive): a sport such as Basketball, Esports, or sports for every sport but Esports
condition_idstring–One market's flow: its exact raw provider condition_id. Not with event_slug
cursorstring–Pagination cursor with smf_ prefix
directionstring–Filter by net flow direction
event_slugstring–Rank only the markets of one game (moneyline, spreads, totals and props), the markets get_game_trades reads. An unknown slug is not_found. Not with condition_id
limitinteger–Max results (1-100, default 20)
min_gradestring–Minimum trader grade (default B = S/A/B)
platformstring–Platform filter (default all)
timeframestring–Lookback window (default 24h)

Structured output declared, but exposes no named fields.

No examples provided.

get_smart_money_flows ~597

Deprecated alias of get_sharp_money_flows (#16308), kept live until its 2027-02-01 sunset (#29351), then removed; it calls the deprecated /api/v1/markets/smart-money-flows path. Ranked sharp-money flow discovery across prediction markets. Use this before you know a condition_id to find where graded traders are net buying or selling. Cursor-paginated, ranked by absolute net flow descending. Args: - timeframe (string, optional): Lookback window: "1h", "4h", "24h", "7d" (default "24h") - limit (number, 1-100, default 20): Max results per page - cursor (string, optional): Pagination cursor with smf_ prefix - category (string, optional): Filter by market category (case-insensitive): a sport such as Basketball, Esports, or sports for every sport but Esports - platform (string, optional): "polymarket" or "all" (default "all") - min_grade (string, optional): Minimum trader grade S, A, B, C, D, or F (default "B" = S/A/B) - direction (string, optional): Filter by net flow direction: "YES" or "NO" - condition_id (string, optional): One market's flow, by exact raw provider condition_id; not with event_slug - event_slug (string, optional): Rank only the markets of one game (moneyline, spreads, totals and props), the markets get_game_trades reads; not with condition_id; an unknown slug is not_found Returns: Ranked markets with sharp_money (net_flow_usd, direction, whale_trade_count, buy/sell volumes) and market identity. smart_money is a deprecated byte-identical alias of sharp_money until its 2027-02-01 sunset.

NameTypeReqDescription
categorystring–Filter by market category (case-insensitive): a sport such as Basketball, Esports, or sports for every sport but Esports
condition_idstring–One market's flow: its exact raw provider condition_id. Not with event_slug
cursorstring–Pagination cursor with smf_ prefix
directionstring–Filter by net flow direction
event_slugstring–Rank only the markets of one game (moneyline, spreads, totals and props), the markets get_game_trades reads. An unknown slug is not_found. Not with condition_id
limitinteger–Max results (1-100, default 20)
min_gradestring–Minimum trader grade (default B = S/A/B)
platformstring–Platform filter (default all)
timeframestring–Lookback window (default 24h)

Structured output declared, but exposes no named fields.

No examples provided.

get_sport_leaderboard ~445

Get one sport's skill leaderboard, or with league one league's: the board the site's sport pages show. Wallets need min_resolved resolved markets in the sport or league. sort edge (the default) ranks edge_skill, the edge over the price paid pulled toward the board's edge_average by how much of the record is noise; a wallet without a ranked edge sorts after the ranked ones. sort pnl ranks realized P&L and win_rate the Wilson lower bound of the win rate. Boards are ranked to 100 wallets. A sport outside sports and esports is not_found on sport; a league the sport has no board for is not_found on league (get_leaderboard_leagues lists them). Args: - sport (string, required): Sport slug, e.g. soccer, basketball, football, esports; an alias such as nba reads its sport's board - league (string, optional): League slug of the sport, e.g. premier-league - sort (string, optional): edge (default), pnl or win_rate - limit (number, 1-100, default 20): Rows from the top of the board Returns: sport, category, league, sort, min_resolved, limit, total_traders, edge_average, volume_scope, as_of and rows[] (rank, id, address, username, platform, grade, n_resolved, wins, losses, win_rate, win_rate_wilson_lb, price_edge, edge_hold, edge_skill, pnl, volume, cost, roi, last_category_trade_at).

NameTypeReqDescription
leaguestring–League slug of the sport from get_leaderboard_leagues, e.g. premier-league; omit for the sport board
limitinteger–Rows from the top of the board (1-100, default 20)
sortstring–Ranking axis: edge over the price paid (default), realized P&L, or win rate
sportstringyesSport slug, e.g. soccer, basketball, football or esports; an alias such as nba reads its sport's board

Structured output declared, but exposes no named fields.

No examples provided.

get_suspicious_trade ~95

Read one suspicious trade by ID. Accepts the rf_ ID returned by list responses or the raw numeric whale_alerts.id. Args: - id (string, required): Suspicious trade ID such as rf_123 or 123 Returns: One suspicious trade with trader, market, suspicion scores, and evidence.

NameTypeReqDescription
idstringyesSuspicious trade ID such as rf_123 or 123

Structured output declared, but exposes no named fields.

No examples provided.

get_suspicious_trades ~347

Stored trades whose recorded suspicion score meets the live flag threshold. Cursor-paginated by suspicion score (highest first). Use mode=stable when a walk must stay on one published scoring generation; restart when it returns cursor_expired. Each suspicious trade includes: - suspicion_score (60-100) - severity (currently flag) - Sub-scores: size and fresh_wallet when recorded; timing and edge are null - Evidence JSON with the scorer's stored signals Args: - limit (number, 1-100, default 20): Max results per page - cursor (string, optional): Pagination cursor from previous response - min_suspicion (number, 0-100, default 0): Minimum score; the live floor of 60 also applies - severity (string, optional): "flag" selects live rows; "watch" returns none because no live watch policy exists - mode (string, optional): "live" (default) uses fresh cached pages; "stable" pins the walk to one published scoring generation Returns: List of suspicious trades with trader, market, scores, and evidence.

NameTypeReqDescription
cursorstring–Pagination cursor from previous response
limitinteger–Max results (1-100, default 20)
min_suspicionnumber–Minimum suspicion score (0-100); the live floor of 60 also applies
modestring–live uses the fresh response cache; stable pins pagination to one published scoring generation
severitystring–"flag" selects live rows; "watch" returns none because no live watch policy exists

Structured output declared, but exposes no named fields.

No examples provided.

Install

How do I install the 0xinsider MCP server?

0xinsider is a hosted endpoint at https://api.0xinsider.com/api/v1/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.0xinsider.com

# add to Claude Code
claude mcp add --transport http 0xinsider-mcp 'https://api.0xinsider.com/api/v1/mcp'
Common questions

What is the 0xinsider MCP server?

0xinsider is an MCP server listed in the public MCP registry as io.github.0xinsider/mcp. Polymarket sports and esports data: wallet grades on settled P&L, large trades, markets. This page covers its hosted endpoint (https://api.0xinsider.com/api/v1/mcp).

Is the 0xinsider MCP server safe to use?

0xinsider scores 88 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the 0xinsider MCP server expose?

0xinsider exposes 69 tools: get_leaderboard, get_trader, batch_get_traders, get_large_trades, get_large_trade, and 64 more. Their descriptions and schemas cost roughly 26,956 tokens of context every time the server is loaded.

Does the 0xinsider MCP server require authentication?

Its publisher declares no required credentials for 0xinsider. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

Is the 0xinsider MCP server still maintained?

0xinsider is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What did VerifyMCP test on the 0xinsider MCP server?

VerifyMCP ran 3 checks on 0xinsider, covering HTTPS, DNSSEC and Transport. 8 items could not be completed, a gap on our side rather than a finding about 0xinsider: TLS certificate, Authorization, HSTS header, Schema quality and 4 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.