0xinsider
REMOTE · API.0XINSIDER.COM · 2 COMPONENTS
Polymarket sports and esports data: wallet grades on settled P&L, large trades, markets.
Available components
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
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
- TLS not yet verified: we couldn't open a connection to check the certificate. View diagnostics → Unverified
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
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.
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 →
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
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
Background: What to check on a remote MCP endpoint →
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 |
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 →
batch_get_market_flow Batch 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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_ids | array | yes | Raw provider condition_id values |
| timeframe | string | – | Shared lookback window |
Structured output declared, but exposes no named fields.
No examples provided.
batch_get_market_intel Batch Market Intelligence ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_ids | array | yes | Raw provider condition_id values |
| timeframe | string | – | Shared lookback window |
Structured output declared, but exposes no named fields.
No examples provided.
batch_get_traders Batch 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.
| Name | Type | Req | Description |
|---|---|---|---|
| expand | array | – | Shared heavy fields to include for every trader item; trust adds per-field provenance for grade, P&L, and stats |
| traders | array | yes | Wallet addresses or known usernames |
Structured output declared, but exposes no named fields.
No examples provided.
explore_markets 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | 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 |
| cursor | string | – | Pagination cursor from previous response |
| limit | integer | – | Max discovery entries (1-48, default 24) |
| platform | string | – | Explore is Polymarket-only; accepted for backward-compatibility and does not change the result set |
| q | string | – | Keyword search against market titles, up to 64 characters before whitespace trimming |
| sort | string | – | 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. |
| status | string | – | Filter by market status |
Structured output declared, but exposes no named fields.
No examples provided.
get_account Get Account Identity ~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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| active_within | string | – | Keep wallets that traded in the category within this window |
| cursor | string | – | Opaque pagination cursor from previous response |
| limit | integer | – | Max results per page (1-100, default 20) |
| min_events | integer | – | Independent events a wallet needs in the category |
| slug | string | yes | Category slug, e.g. soccer, basketball, tennis or esports |
Structured output declared, but exposes no named fields.
No examples provided.
get_combo 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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | yes | Combo 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | next_cursor from the previous page; recent ordering only |
| grades | string | – | CSV of S, A, B, C, D, F; all clears the filter. Ungraded wallets never match |
| legs | string | – | CSV of 2, 3, 4, 5+; all clears the filter. A combo matches any named pick count |
| limit | integer | – | Max fills per page (1-200, default 50) |
| min_multiplier | integer | – | Minimum shares per dollar at execution: 0 (the default) disables the filter, otherwise 2 to 1000000 |
| min_stake | integer | – | Minimum collateral in whole USDC (default 0) |
| offset | integer | – | next_offset from the previous page; largest and payout ordering only |
| result | string | – | CSV of pending, won, lost; all clears the filter |
| sort | string | – | recent (the default) is newest first; largest ranks collateral; payout ranks buy-fill shares and excludes sells |
| sports | string | – | 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 |
| window | string | – | 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 Get live combo count ~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 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | yes | UTC report date in YYYY-MM-DD format |
Structured output declared, but exposes no named fields.
No examples provided.
get_edge_hunter 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…
| Name | Type | Req | Description |
|---|---|---|---|
| admission | string | – | 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… |
| category | string | – | 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. |
| cohort | string | – | Required for observations; rejected for board/signals |
| condition_ids | array | – | 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… |
| cursor | string | – | Advanced next_cursor, bound to view, all normalized selections and snapshot |
| event_slugs | array | – | 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_hours | integer | – | Board default 48/signals default 12, clamp 1..48; rejected for observations |
| kind | string | – | 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… |
| leagues | array | – | 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… |
| limit | integer | – | Board cap default 30/clamp 1..30; advanced page default 20/clamp 1..100 |
| market_types | array | – | 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_grade | string | – | Board/signals only; holder at this grade or better, default B |
| series_slugs | array | – | 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… |
| sports | array | – | 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… |
| view | string | – | Response mode; defaults to board |
Structured output declared, but exposes no named fields.
No examples provided.
get_event_replay_since Replay Public Events ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | – | Only this market's trades: raw condition_id or mkt_ id (bound to the cursor) |
| cursor | string | – | Opaque event replay cursor; bound to the filters the walk ran with |
| expand | string | – | trade: add the public trade read to every event, so no per-event detail call is needed |
| limit | integer | – | Max events (1-100, default 50) |
| min_grade | string | – | Only wallets at this grade or better (bound to the cursor) |
| min_size | number | – | Only trades of at least this size in USD (bound to the cursor) |
| trader | string | – | 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 Get one 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.
| Name | Type | Req | Description |
|---|---|---|---|
| event_slug | string | yes | The 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 Get a game's 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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_ids | array | yes | condition_id values of this game's markets, from list_game_markets |
| event_slug | string | yes | The game's event slug, for example nba-bos-orl-2026-11-01; matched case-insensitively |
| limit | integer | – | Max holders per market (1-100, default 20) |
Structured output declared, but exposes no named fields.
No examples provided.
get_game_sharp_money 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.
| Name | Type | Req | Description |
|---|---|---|---|
| event_slug | string | yes | The 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 List a game's 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.
| Name | Type | Req | Description |
|---|---|---|---|
| event_slug | string | yes | The game's event slug, for example nba-bos-orl-2026-11-01; matched case-insensitively |
| limit | integer | – | Newest fills to return (1-200, default 100) |
Structured output declared, but exposes no named fields.
No examples provided.
get_insider_radar Get Insider Radar Flags ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Pagination cursor from previous response |
| limit | integer | – | Max results (1-100, default 20) |
| min_suspicion | number | – | Minimum suspicion score (0-100); the live floor of 60 also applies |
| mode | string | – | live uses the fresh response cache; stable pins pagination to one published scoring generation |
| severity | string | – | "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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Suspicious trade ID such as rf_123 or 123 |
Structured output declared, but exposes no named fields.
No examples provided.
get_large_positions List 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | 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 | – | Scope to one market (raw provider condition_id or mkt_-prefixed). Polymarket-only; an unknown id returns an empty list. |
| cursor | string | – | Opaque pagination cursor from previous response |
| limit | integer | – | Max results (1-100, default 20) |
| min_grade | string | – | Minimum trader grade |
| min_size | number | – | Minimum position value in USD |
Structured output declared, but exposes no named fields.
No examples provided.
get_large_trade 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Large trade ID such as wt_123 or 123 |
Structured output declared, but exposes no named fields.
No examples provided.
get_large_trade_counterparty_executions 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | executions_next_cursor from get_large_trade or from the previous page |
| id | string | yes | Large trade ID such as wt_123 or 123 |
| limit | integer | – | Max executions per page (1-100, default 100) |
| snapshot_id | string | yes | counterparty_analysis.snapshot_id from get_large_trade |
Structured output declared, but exposes no named fields.
No examples provided.
get_large_trade_counterparty_makers 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | makers_next_cursor from the execution, or next_cursor from the previous page |
| execution_id | string | yes | execution_id of one counterparty execution |
| id | string | yes | Large trade ID such as wt_123 or 123 |
| limit | integer | – | Max makers per page (1-100, default 100) |
| snapshot_id | string | yes | counterparty_analysis.snapshot_id from get_large_trade |
Structured output declared, but exposes no named fields.
No examples provided.
get_large_trades List 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_…
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | 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_id | string | – | One market's large trades: its exact raw provider condition_id. Not with event_slug or since |
| cursor | string | – | Pagination cursor from previous response |
| event_slug | string | – | 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… |
| limit | integer | – | Max results (1-100, default 20) |
| min_grade | string | – | Minimum trader grade now; not with min_grade_at_trade |
| min_grade_at_trade | string | – | 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_share | number | – | 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_size | number | – | Minimum trade size in USD (default 5000) |
| since | string | – | 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… |
| sort | string | – | 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_only | boolean | – | Keep only rows with persisted suspicion_score >= 60 |
Structured output declared, but exposes no named fields.
No examples provided.
get_large_trades_history Replay historical large trades ~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…
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | 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_id | string | – | Exact raw provider condition_id |
| cursor | string | – | Pagination cursor from previous response |
| event_slug | string | – | 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… |
| from | string | – | Inclusive traded_at lower bound |
| limit | integer | – | Max results (1-100, default 20) |
| min_grade | string | – | Minimum trader grade |
| min_market_volume_share | number | – | 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_size | number | – | Minimum trade size in USD |
| platform | string | – | Filter by provider platform |
| sort | string | – | 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_only | boolean | – | Keep only rows with persisted suspicion_score >= 60 |
| to | string | – | Exclusive traded_at upper bound |
| trader | string | – | Trader wallet, alias, or username |
Structured output declared, but exposes no named fields.
No examples provided.
get_leaderboard Get Trader 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.
| Name | Type | Req | Description |
|---|---|---|---|
| activity | string | – | all (default), active (last trade 30 days ago or less) or inactive |
| category | string | – | 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 |
| cursor | string | – | Pagination cursor from previous response |
| dir | string | – | asc or desc. Omitted: rank 1 first for rank, largest first for the rest |
| limit | integer | – | Max results (1-100, default 20) |
| sort | string | – | 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… |
| strategy | string | – | Filter by strategy type |
Structured output declared, but exposes no named fields.
No examples provided.
get_leaderboard_leagues List 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 Get market price 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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | yes | Raw provider condition_id or the mkt_-prefixed market id |
| from | integer | – | Exclusive lower bound in unix seconds |
| resolution | string | – | 1d (the default) buckets by UTC day, 1w by ISO week from Monday 00:00 UTC |
| to | integer | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | yes | Market condition ID |
| timeframe | string | – | Lookback window (default 24h) |
Structured output declared, but exposes no named fields.
No examples provided.
get_market_holders 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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | yes | Raw provider condition_id or the mkt_-prefixed market id |
| cursor | string | – | next_cursor from the previous page; it is bound to the same market and filters |
| limit | integer | – | Max holders per page (1-100, default 20) |
| min_grade | string | – | Narrow the graded cohort: S keeps S, A keeps S and A, B (the default) keeps S, A and B |
| outcome | string | – | Keep holders netting one side; all (the default) lists both |
Structured output declared, but exposes no named fields.
No examples provided.
get_market_intel Get Market Intelligence ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | yes | Market condition ID |
| timeframe | string | – | Lookback window (default 24h) |
Structured output declared, but exposes no named fields.
No examples provided.
get_market_snapshot 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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | yes | Raw provider condition_id |
| expand | array | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | yes | Raw provider condition_id or the mkt_-prefixed market id |
| limit | integer | – | Max holders per outcome (1-100, default 20) |
Structured output declared, but exposes no named fields.
No examples provided.
get_market_wallets_in_out Get a market's net buyers and sellers ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | yes | Raw provider condition_id or the mkt_-prefixed market id |
| window | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| month | string | yes | UTC report month in YYYY-MM format |
Structured output declared, but exposes no named fields.
No examples provided.
get_pick_of_the_day 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…
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Product day (America/New_York) in YYYY-MM-DD format, on or before today; omit for today's slate |
| pick_id | string | – | One entitled published pick of the day, by its decimal-string pick_id; pair with date for a past day's pick |
| view | string | – | 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 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…
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | page.next_cursor of the previous page |
| limit | integer | – | Rows per page (1-200, default 50) |
| view | string | – | 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 Get Pick of the Day Proof ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| pick_id | string | yes | Stable positive database row id as decimal text |
Structured output declared, but exposes no named fields.
No examples provided.
get_pick_of_the_day_stats 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.
| Name | Type | Req | Description |
|---|---|---|---|
| sections | array | – | Exactly the sections to return; overrides view. series is the per-pick cumulative record, served top-level |
| view | string | – | 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 Get Platform Capability Matrix ~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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Trader identity: 0x wallet, username, trd_-prefixed traders.id, or bare integer traders.id |
| condition_id | string | yes | Market condition ID |
| cursor | string | – | Pagination cursor from previous response |
| limit | integer | – | Max events (1-100, default 20) |
| trader_id | integer | – | Internal traders.id alias |
Structured output declared, but exposes no named fields.
No examples provided.
get_position_timeline_by_id Get Position Timeline By Trader 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.
| Name | Type | Req | Description |
|---|---|---|---|
| condition_id | string | yes | Market condition ID |
| cursor | string | – | Pagination cursor from previous response |
| limit | integer | – | Max events (1-100, default 20) |
| trader_id | integer | yes | Internal traders.id alias |
Structured output declared, but exposes no named fields.
No examples provided.
get_positions List Current 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | 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 | – | Scope to one market: raw provider condition_id or mkt_-prefixed market id |
| consistency | string | – | 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… |
| cursor | string | – | Pagination cursor from previous response |
| limit | integer | – | Max results (1-100, default 20) |
| min_grade | string | – | Minimum trader grade |
| min_size | number | – | Minimum current position value in USD; defaults to 100, or to 0 when wallet is present |
| side | string | – | Filter by binary outcome side |
| wallet | array | – | 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 Get Report Snapshot ~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).
| Name | Type | Req | Description |
|---|---|---|---|
| granularity | string | yes | Report granularity selector |
| period | string | yes | Period 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 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[].
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | yes | UTC report date in YYYY-MM-DD format, no later than today |
| view | string | – | totals returns the counts without markets |
Structured output declared, but exposes no named fields.
No examples provided.
get_sharp_money_flows List 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by market category (case-insensitive): a sport such as Basketball, Esports, or sports for every sport but Esports |
| condition_id | string | – | One market's flow: its exact raw provider condition_id. Not with event_slug |
| cursor | string | – | Pagination cursor with smf_ prefix |
| direction | string | – | Filter by net flow direction |
| event_slug | string | – | 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 |
| limit | integer | – | Max results (1-100, default 20) |
| min_grade | string | – | Minimum trader grade (default B = S/A/B) |
| platform | string | – | Platform filter (default all) |
| timeframe | string | – | Lookback window (default 24h) |
Structured output declared, but exposes no named fields.
No examples provided.
get_smart_money_flows List 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by market category (case-insensitive): a sport such as Basketball, Esports, or sports for every sport but Esports |
| condition_id | string | – | One market's flow: its exact raw provider condition_id. Not with event_slug |
| cursor | string | – | Pagination cursor with smf_ prefix |
| direction | string | – | Filter by net flow direction |
| event_slug | string | – | 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 |
| limit | integer | – | Max results (1-100, default 20) |
| min_grade | string | – | Minimum trader grade (default B = S/A/B) |
| platform | string | – | Platform filter (default all) |
| timeframe | string | – | Lookback window (default 24h) |
Structured output declared, but exposes no named fields.
No examples provided.
get_sport_leaderboard 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).
| Name | Type | Req | Description |
|---|---|---|---|
| league | string | – | League slug of the sport from get_leaderboard_leagues, e.g. premier-league; omit for the sport board |
| limit | integer | – | Rows from the top of the board (1-100, default 20) |
| sort | string | – | Ranking axis: edge over the price paid (default), realized P&L, or win rate |
| sport | string | yes | Sport 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Suspicious trade ID such as rf_123 or 123 |
Structured output declared, but exposes no named fields.
No examples provided.
get_suspicious_trades 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Pagination cursor from previous response |
| limit | integer | – | Max results (1-100, default 20) |
| min_suspicion | number | – | Minimum suspicion score (0-100); the live floor of 60 also applies |
| mode | string | – | live uses the fresh response cache; stable pins pagination to one published scoring generation |
| severity | string | – | "flag" selects live rows; "watch" returns none because no live watch policy exists |
Structured output declared, but exposes no named fields.
No examples provided.
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
claude mcp add --transport http 0xinsider-mcp 'https://api.0xinsider.com/api/v1/mcp'
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.