Properties
| Name | Type | Description |
|---|---|---|
| state | string | Full success containing entitled proof-readable picks. |
| pick_date | string | The pick's local publication date (YYYY-MM-DD). |
| pick_rank | integer | Deprecated compatibility daily release slot; use pick_id for identity and publication_order for scheduling. |
| picks | array | Published picks for this product day in the returned display order. Use pick_id for identity. |
| pick_count | integer | Number of items in `picks`: the proof-readable picks. Picks held in `proof_pending_picks` are not counted. |
| scheduled_picks | array | Rank-ordered entitled selections that have not released. Every row retains release_at and kickoff; unauthorized scheduled ranks appear only in identity-free locked_picks. |
| matchup | string | Human-readable matchup (e.g. "Portugal vs. Uzbekistan"). |
| category | string | Recorded canonical sport category. Prefer display_category for the public competition label. |
| display_category | string | Frozen public presentation category. Tennis uses the provider-verified ATP or WTA tour, including Wimbledon and doubles; unknown tours retain Tennis. Every men's and women's cricket competition uses C |
| platform | string | Provider platform. Always polymarket. |
| release_at | string | The pick's stored release instant. Use the returned timestamp; published_at records when publication occurred. |
| is_locked | boolean | True only before the pick's stored release instant (a pre-release embargo flag); effectively always false on a served, already-published pick. To detect that the backed game has kicked off, use `game_ |
| game_started | boolean | True once the backed game's kickoff has passed (kickoff <= now). When true the snapshotted pre-game price is no longer actionable. Absent for a legacy pick with no stored kickoff (treat as not-started |
| game_ended | boolean | Whether the backed game is over according to the cached live scoreboard, read at serve time. Tells a finished game from one still in play before `outcome` settles. Omitted when the pick has no event s |
| outcome | string | Settlement outcome of the backed side; 'pending' until the market resolves. |
| outcome_display | string | Pre-formatted SETTLEMENT STATUS for display: "Win" / "Loss" / "Void" / "Pending" -- the outcome enum above as a label. Convenience only; outcome is the source value. NOTE: this is the win/loss STATUS, |
| pick_outcome_label | string | The backed side phrased as a bet: a team for a moneyline (e.g. "Portugal"), the handicap line for a spread (e.g. "Belgium (-2.5)"), or "{team} to advance" for a knockout advancement market (e.g. "Spai |
| token_id | string | The Polymarket CLOB token id (ERC1155 asset id, decimal string) for the backed outcome; omitted when unavailable (e.g. unsynced markets). |
| position | string | The backed side phrased as a bet (e.g. "Portugal to win"). |
| side_summary | string | One-line summary of which side sharp money is backing. Required on every item in `picks`: a current-day published pick whose required holder proof is not safely readable is listed in `proof_pending_pi |
| sharp_wallet_count | integer | S/A wallet count on the backed side in the public V1 compatibility projection. |
| smart_wallet_count | integer | Deprecated spelling of sharp_wallet_count with the same value. |
| top_grade | string | Best recorded S/A grade in the public V1 compatibility projection. |
| sharp_usd | number | Recorded sharp-money magnitude in USD when available. |
| smart_usd | number | Deprecated spelling of sharp_usd with the same value. |
| backed_price | number | Frozen pre-game probability (0..1) for the backed side, written once at publication. It is the Polymarket CLOB order book midpoint at release, not an executed fill: a buyer lifts the ask, so a subscri |
| entry_price_note | string | Full-only disclosure when backed_price was recovered from provider history within 30 seconds before publication. Render beside the price. Absent for ordinary publication captures and teasers; this is |
| odds_display | string | Pre-formatted backed_price as cents-on-the-dollar odds, to ONE decimal: "62.0c" / "99.9c". Never rounded to a whole cent -- a 99.9c favorite is not a 100c certainty. Convenience only; backed_price is |
| stake_usd | number | The flat stake the published record puts on every pick, in USD: 1000 since 2026-09-22 (it was 100 before). Present exactly when return_usd is, so a reader never has to know the stake from anywhere els |
| return_usd | number | Gross return of stake_usd at the frozen midpoint price (stake_usd / backed_price). A real fill pays the ask, so an executed stake usually returns a little less. Omitted with backed_price. |
| return_per_100 | number | The same return on a literal $100 (100 / backed_price), kept for compatibility: the field predates stake_usd and its name promises the $100 basis, so a client that scales it to its own stake stays rig |
| payout_display | string | Pre-formatted return_usd as USD with cents and thousands separators: "$1,612.90" / "$12,500.00". The GROSS return (the stake included), so it carries no sign. Convenience only; return_usd is the sourc |
| profit_display | string | Pre-formatted PROFIT on the stake -- return_usd minus stake_usd, i.e. the payout net of what you put in -- as a signed USD string: "+$612.90". Distinct from payout_display, which is gross. Omitted whe |
| clv_status | string | Backend-owned CLV capture disposition. "pending" means no capture decision exists yet; terminal provider or quality statuses remain distinguishable. The raw close price and timestamp are never seriali |
| clv_basis | string | Backend-owned CLV evidence basis. `frozen_displayed_entry` uses the persisted displayed entry. `historical_provider_entry` uses a known-CLOB point at or before publication. `historical_provider_price_ |
| clv_pct | number | Closing-line value toward the backed side, computed as (close / entry - 1) * 100. The basis-specific provider p entry must match the stored display; historical_provider_price_match also requires sourc |
| clv_display | string | Backend-formatted signed CLV percentage, present exactly when clv_pct is present. |
| clv_explanation | string | Backend-owned CLV formula text with the entry probability, close probability, and rounded result. Provider timestamps remain private. |
| unit_score | number | Net return for the pick in stake units (return_usd / stake_usd - 1); one unit is one stake_usd stake, and the figure is the same under any stake size. Omitted when the outcome is not valued. |
| unit_score_display | string | Backend-formatted signed unit score, present exactly when unit_score is present. |
| sharp_pct | number | Recorded sharp-money share as a 0..1 fraction when available. This is not a winning probability. |
| market_pct | number | Recorded market-implied probability as a 0..1 fraction when available. |
| qualifying_expert | object | Optional recorded specialist facts on a full response. These describe the trader, not the pick's win probability. Omitted when no recorded specialist is available. |
| traders | integer | Public V1 S/A wallet count on the backed side, equal to sharp_wallet_count. |
| backed_sharp_usd | number | Recorded aggregate backed-side position value in USD when available, not a live balance or entry cost. The display_holders roster can include additional wallets; use the returned aggregate rather than |
| holders | array | Bounded S/A holder display projection from the recorded snapshot. Historical rows retain their recorded display shape. |
| display_holders | array | Optional recorded holder roster in display order, with lead_backer first when present. Preserve the returned order. The roster can include wallets outside the recorded count and aggregate fields; do n |
| holder_count | integer | S/A holder count for the public V1 compatibility projection. display_holders can include additional grades. |
| thesis | string | Display-ready explanation of the recorded pick. Render the returned text rather than reconstructing it from holder counts or grades. |
| market_url | string | Canonical web market URL. |
| polymarket_url | string | Where this pick's outbound Polymarket link lands: Polymarket's own redirect answer for `/event/ |
| event_slug | string | The canonical /event game-page slug (one neutral page per game); omitted when the game has no neutral event page. |
| event_link_slug | stringnull | Backend-resolved /event destination slug for the source market. Omitted outside full responses; null is an authoritative no-link decision. |
| sports_context | object | Provider-first sports context for the pick's market (team logos, league branding, live score). Full-state only; omitted when the pick is not a team-sports market. |
| disclaimer | string | Risk disclaimer shown with every pick. |
| proof_pending_picks | array | Entitled published picks whose holder proof is unreadable, ordered by rank. Unauthorized ranks appear only in locked_picks and cannot trigger proof warming. Read retry_at for the next read. |
| entry_authorization | object | Optional full-response entry authorization. Missing or expired authorization cannot authorize an automated entry. |
| locked_picks | array | Unauthorized unresolved published or scheduled ranks. Contains no game, provider identity, price, or identifying clock. Pro may upgrade to Max to open these ranks. |
| message | string | Actionable status, including Upgrade to Max when only locked ranks are published. |
| pick_id | string | Stable pick row identity as decimal text. Never use a quality rank as identity. |
| publication_order | integer | Compatibility release slot. No quality claim; historic scheduling order is retained. |
| is_free_selection | boolean | Viewer-independent free selection designation. New rows store it explicitly; historic null storage uses the original free slot. |
| supersedes_pick_id | stringnull | Deprecated (#24157): always null. No replacement lineage was ever recorded in this field; the key stays so existing V1 clients keep parsing. Identify a pick by pick_id. |
| lead_backer | object | Optional full-only lead wallet publication facts. Omitted on legacy picks or when the recorded evidence is unavailable. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/0xinsider-com/json-schema/0xinsider-com-pick-of-the-day-schema.json",
"title": "PickOfTheDay",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/0xinsider-com-openapi.json#/components/schemas/PickOfTheDay",
"type": "object",
"required": [
"state",
"supersedes_pick_id"
],
"properties": {
"state": {
"type": "string",
"enum": [
"full"
],
"description": "Full success containing entitled proof-readable picks."
},
"pick_date": {
"type": "string",
"format": "date",
"description": "The pick's local publication date (YYYY-MM-DD)."
},
"pick_rank": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"description": "Deprecated compatibility daily release slot; use pick_id for identity and publication_order for scheduling.",
"deprecated": true
},
"picks": {
"type": "array",
"description": "Published picks for this product day in the returned display order. Use pick_id for identity.",
"items": {
"$ref": "#/$defs/PickOfTheDay"
}
},
"pick_count": {
"type": "integer",
"minimum": 0,
"maximum": 25,
"description": "Number of items in `picks`: the proof-readable picks. Picks held in `proof_pending_picks` are not counted."
},
"scheduled_picks": {
"type": "array",
"description": "Rank-ordered entitled selections that have not released. Every row retains release_at and kickoff; unauthorized scheduled ranks appear only in identity-free locked_picks.",
"items": {
"$ref": "#/$defs/ScheduledPickSlot"
}
},
"matchup": {
"type": "string",
"description": "Human-readable matchup (e.g. \"Portugal vs. Uzbekistan\")."
},
"category": {
"type": "string",
"description": "Recorded canonical sport category. Prefer display_category for the public competition label."
},
"display_category": {
"type": "string",
"description": "Frozen public presentation category. Tennis uses the provider-verified ATP or WTA tour, including Wimbledon and doubles; unknown tours retain Tennis. Every men's and women's cricket competition uses Cricket. Other sports use the curated league, esports title or soccer competition label, then the provider series name without its season year, then category when no competition is known. The canonical category and measured cohort are unchanged: an esports title still uses the pooled Esports category. Optional for mixed-version client compatibility."
},
"platform": {
"type": "string",
"enum": [
"polymarket"
],
"description": "Provider platform. Always polymarket."
},
"release_at": {
"type": "string",
"format": "date-time",
"description": "The pick's stored release instant. Use the returned timestamp; published_at records when publication occurred."
},
"is_locked": {
"type": "boolean",
"description": "True only before the pick's stored release instant (a pre-release embargo flag); effectively always false on a served, already-published pick. To detect that the backed game has kicked off, use `game_started`."
},
"game_started": {
"type": "boolean",
"description": "True once the backed game's kickoff has passed (kickoff <= now). When true the snapshotted pre-game price is no longer actionable. Absent for a legacy pick with no stored kickoff (treat as not-started)."
},
"game_ended": {
"type": "boolean",
"description": "Whether the backed game is over according to the cached live scoreboard, read at serve time. Tells a finished game from one still in play before `outcome` settles. Omitted when the pick has no event slug or no scoreboard is cached for it; absence is unknown, never false."
},
"outcome": {
"type": "string",
"enum": [
"pending",
"win",
"loss",
"void"
],
"description": "Settlement outcome of the backed side; 'pending' until the market resolves."
},
"outcome_display": {
"type": "string",
"description": "Pre-formatted SETTLEMENT STATUS for display: \"Win\" / \"Loss\" / \"Void\" / \"Pending\" -- the outcome enum above as a label. Convenience only; outcome is the source value. NOTE: this is the win/loss STATUS, not the backed side. The backed side is pick_outcome_label (\"Belgium (-2.5)\") -- a different field answering a different question."
},
"pick_outcome_label": {
"type": "string",
"description": "The backed side phrased as a bet: a team for a moneyline (e.g. \"Portugal\"), the handicap line for a spread (e.g. \"Belgium (-2.5)\"), or \"{team} to advance\" for a knockout advancement market (e.g. \"Spain to advance\")."
},
"token_id": {
"type": "string",
"description": "The Polymarket CLOB token id (ERC1155 asset id, decimal string) for the backed outcome; omitted when unavailable (e.g. unsynced markets)."
},
"position": {
"type": "string",
"description": "The backed side phrased as a bet (e.g. \"Portugal to win\")."
},
"side_summary": {
"type": "string",
"description": "One-line summary of which side sharp money is backing. Required on every item in `picks`: a current-day published pick whose required holder proof is not safely readable is listed in `proof_pending_picks` instead of being served with a partial success shape or a synthetic zero, and the route returns 503 read_model_warming only when no published pick has readable proof."
},
"sharp_wallet_count": {
"type": "integer",
"description": "S/A wallet count on the backed side in the public V1 compatibility projection."
},
"smart_wallet_count": {
"type": "integer",
"deprecated": true,
"description": "Deprecated spelling of sharp_wallet_count with the same value."
},
"top_grade": {
"type": "string",
"description": "Best recorded S/A grade in the public V1 compatibility projection."
},
"sharp_usd": {
"type": "number",
"description": "Recorded sharp-money magnitude in USD when available."
},
"smart_usd": {
"type": "number",
"deprecated": true,
"description": "Deprecated spelling of sharp_usd with the same value."
},
"backed_price": {
"type": "number",
"description": "Frozen pre-game probability (0..1) for the backed side, written once at publication. It is the Polymarket CLOB order book midpoint at release, not an executed fill: a buyer lifts the ask, so a subscriber's own entry is usually a little worse than this price."
},
"entry_price_note": {
"type": "string",
"description": "Full-only disclosure when backed_price was recovered from provider history within 30 seconds before publication. Render beside the price. Absent for ordinary publication captures and teasers; this is a historical reference, not an executed fill."
},
"odds_display": {
"type": "string",
"description": "Pre-formatted backed_price as cents-on-the-dollar odds, to ONE decimal: \"62.0c\" / \"99.9c\". Never rounded to a whole cent -- a 99.9c favorite is not a 100c certainty. Convenience only; backed_price is the source value. Omitted when backed_price is."
},
"stake_usd": {
"type": "number",
"description": "The flat stake the published record puts on every pick, in USD: 1000 since 2026-09-22 (it was 100 before). Present exactly when return_usd is, so a reader never has to know the stake from anywhere else."
},
"return_usd": {
"type": "number",
"description": "Gross return of stake_usd at the frozen midpoint price (stake_usd / backed_price). A real fill pays the ask, so an executed stake usually returns a little less. Omitted with backed_price."
},
"return_per_100": {
"type": "number",
"description": "The same return on a literal $100 (100 / backed_price), kept for compatibility: the field predates stake_usd and its name promises the $100 basis, so a client that scales it to its own stake stays right. Present exactly when return_usd is."
},
"payout_display": {
"type": "string",
"description": "Pre-formatted return_usd as USD with cents and thousands separators: \"$1,612.90\" / \"$12,500.00\". The GROSS return (the stake included), so it carries no sign. Convenience only; return_usd is the source value. Omitted when return_usd is."
},
"profit_display": {
"type": "string",
"description": "Pre-formatted PROFIT on the stake -- return_usd minus stake_usd, i.e. the payout net of what you put in -- as a signed USD string: \"+$612.90\". Distinct from payout_display, which is gross. Omitted when return_usd is."
},
"clv_status": {
"type": "string",
"description": "Backend-owned CLV capture disposition. \"pending\" means no capture decision exists yet; terminal provider or quality statuses remain distinguishable. The raw close price and timestamp are never serialized."
},
"clv_basis": {
"type": "string",
"description": "Backend-owned CLV evidence basis. `frozen_displayed_entry` uses the persisted displayed entry. `historical_provider_entry` uses a known-CLOB point at or before publication. `historical_provider_price_match` requires the latest point in the prior hour to match. `historical_provider_nearby_price_match` requires a matching point within five minutes before publication. Source-null bases preserve unknown original provenance."
},
"clv_pct": {
"type": "number",
"description": "Closing-line value toward the backed side, computed as (close / entry - 1) * 100. The basis-specific provider p entry must match the stored display; historical_provider_price_match also requires source provenance to remain null and its latest entry to be within the one-hour window at or before publication. Every basis requires a later quality-checked p close from the same series in the bounded post-entry, pre-kickoff window. Omitted when not measured."
},
"clv_display": {
"type": "string",
"description": "Backend-formatted signed CLV percentage, present exactly when clv_pct is present."
},
"clv_explanation": {
"type": "string",
"description": "Backend-owned CLV formula text with the entry probability, close probability, and rounded result. Provider timestamps remain private."
},
"unit_score": {
"type": "number",
"description": "Net return for the pick in stake units (return_usd / stake_usd - 1); one unit is one stake_usd stake, and the figure is the same under any stake size. Omitted when the outcome is not valued."
},
"unit_score_display": {
"type": "string",
"description": "Backend-formatted signed unit score, present exactly when unit_score is present."
},
"sharp_pct": {
"type": "number",
"description": "Recorded sharp-money share as a 0..1 fraction when available. This is not a winning probability."
},
"market_pct": {
"type": "number",
"description": "Recorded market-implied probability as a 0..1 fraction when available."
},
"qualifying_expert": {
"type": "object",
"description": "Optional recorded specialist facts on a full response. These describe the trader, not the pick's win probability. Omitted when no recorded specialist is available.",
"properties": {
"address": {
"type": "string",
"description": "Trader wallet address."
},
"name": {
"type": [
"string",
"null"
],
"description": "Provider display name, or null for an unnamed wallet."
},
"grade": {
"type": [
"string",
"null"
],
"description": "Recorded trader grade. Public V1 preserves its S/A compatibility projection."
},
"canonical_category": {
"type": "string",
"description": "The canonical sport bucket the win rate was measured over (for example Basketball). Can be BROADER than the pick's display_category, which names an exact league such as NBA — label the rate with this field, never with display_category."
},
"win_rate": {
"type": [
"number",
"null"
],
"description": "Share of the trader’s resolved markets in canonical_category with positive realized P&L, as a 0..1 fraction. Null when not measured. This is a trader statistic, not the pick’s probability of winning."
},
"n_resolved": {
"type": [
"integer",
"null"
],
"description": "Number of resolved markets behind win_rate; null when not measured."
},
"position_usd": {
"type": "number",
"description": "Recorded Polymarket position value on the backed outcome, in USD. It can change after this snapshot."
},
"opposite_position_usd": {
"type": "number",
"description": "Recorded position value on the other outcome of this market, in USD. Omitted when not recorded; zero is a measured value."
},
"stats_computed_at": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the recorded trader statistics."
}
},
"required": [
"address",
"name",
"grade",
"canonical_category",
"win_rate",
"n_resolved",
"position_usd",
"stats_computed_at"
]
},
"traders": {
"type": "integer",
"description": "Public V1 S/A wallet count on the backed side, equal to sharp_wallet_count."
},
"backed_sharp_usd": {
"type": "number",
"description": "Recorded aggregate backed-side position value in USD when available, not a live balance or entry cost. The display_holders roster can include additional wallets; use the returned aggregate rather than summing that roster."
},
"holders": {
"type": "array",
"description": "Bounded S/A holder display projection from the recorded snapshot. Historical rows retain their recorded display shape.",
"items": {
"$ref": "#/$defs/PickHolder"
}
},
"display_holders": {
"type": "array",
"description": "Optional recorded holder roster in display order, with lead_backer first when present. Preserve the returned order. The roster can include wallets outside the recorded count and aggregate fields; do not derive holder_count, wallet counts or backed_sharp_usd from its length or a sum. Position values are gross holdings on the backed outcome and can coexist with holdings on the other outcome. Historical rows retain their recorded display shape.",
"items": {
"$ref": "#/$defs/PickHolder"
}
},
"holder_count": {
"type": "integer",
"description": "S/A holder count for the public V1 compatibility projection. display_holders can include additional grades."
},
"thesis": {
"type": "string",
"description": "Display-ready explanation of the recorded pick. Render the returned text rather than reconstructing it from holder counts or grades."
},
"market_url": {
"type": "string",
"description": "Canonical web market URL."
},
"polymarket_url": {
"type": "string",
"description": "Where this pick's outbound Polymarket link lands: Polymarket's own redirect answer for `/event/<event_slug>`, carrying the referral tag. Omitted until that redirect has been resolved; link to the event page instead when it is absent."
},
"event_slug": {
"type": "string",
"description": "The canonical /event game-page slug (one neutral page per game); omitted when the game has no neutral event page."
},
"event_link_slug": {
"type": [
"string",
"null"
],
"description": "Backend-resolved /event destination slug for the source market. Omitted outside full responses; null is an authoritative no-link decision."
},
"sports_context": {
"allOf": [
{
"$ref": "#/$defs/PickSportsContext"
}
],
"description": "Provider-first sports context for the pick's market (team logos, league branding, live score). Full-state only; omitted when the pick is not a team-sports market."
},
"disclaimer": {
"type": "string",
"description": "Risk disclaimer shown with every pick."
},
"proof_pending_picks": {
"type": "array",
"description": "Entitled published picks whose holder proof is unreadable, ordered by rank. Unauthorized ranks appear only in locked_picks and cannot trigger proof warming. Read retry_at for the next read.",
"items": {
"$ref": "#/$defs/ProofPendingPickSlot"
}
},
"entry_authorization": {
"$ref": "#/$defs/PotdEntryAuthorization",
"description": "Optional full-response entry authorization. Missing or expired authorization cannot authorize an automated entry."
},
"locked_picks": {
"type": "array",
"description": "Unauthorized unresolved published or scheduled ranks. Contains no game, provider identity, price, or identifying clock. Pro may upgrade to Max to open these ranks.",
"items": {
"type": "object",
"required": [
"pick_rank",
"required_tier"
],
"properties": {
"pick_rank": {
"type": "integer",
"minimum": 1,
"maximum": 30
},
"required_tier": {
"type": "string",
"enum": [
"max"
]
}
}
}
},
"message": {
"type": "string",
"description": "Actionable status, including Upgrade to Max when only locked ranks are published."
},
"pick_id": {
"type": "string",
"pattern": "^[1-9][0-9]*$",
"description": "Stable pick row identity as decimal text. Never use a quality rank as identity."
},
"publication_order": {
"type": "integer",
"description": "Compatibility release slot. No quality claim; historic scheduling order is retained."
},
"is_free_selection": {
"type": "boolean",
"description": "Viewer-independent free selection designation. New rows store it explicitly; historic null storage uses the original free slot."
},
"supersedes_pick_id": {
"deprecated": true,
"type": [
"string",
"null"
],
"pattern": "^[1-9][0-9]*$",
"description": "Deprecated (#24157): always null. No replacement lineage was ever recorded in this field; the key stays so existing V1 clients keep parsing. Identify a pick by pick_id."
},
"lead_backer": {
"$ref": "#/$defs/PickLeadBacker",
"description": "Optional full-only lead wallet publication facts. Omitted on legacy picks or when the recorded evidence is unavailable."
}
},
"$defs": {
"PickHolder": {
"type": "object",
"required": [
"address",
"name",
"grade",
"last_traded_at",
"shares"
],
"properties": {
"address": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"grade": {
"type": [
"string",
"null"
],
"description": "All-time trader grade (S, A, B, C, D, F)."
},
"last_traded_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "The wallet's most recent recorded trade time, stamped at serve time from its current trader record rather than frozen with the pick. Always sent; null when no trade time is recorded."
},
"profile_segment": {
"type": "string",
"description": "0xinsider profile path segment this wallet links to: `@<username>` when that username resolves to this wallet alone, otherwise the lowercase wallet. Percent-encode the part after `@` and append to `https://0xinsider.com/profile/`. Stamped at serve time; absent on a body cached before the field shipped."
},
"shares": {
"type": "number"
},
"entry_value_usd": {
"type": "number",
"description": "USD entry value of this wallet's position: `shares` times the pick's frozen `backed_price`. An entry valuation, never a live balance or the provider's current value. Omitted when the holder snapshot has no valid price."
},
"category_win_rate": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "This wallet's win rate in the pick's canonical category bucket (the pick's `category` field, e.g. Basketball -- label the rate with it, never with the narrower `display_category` league, except when `category_win_rate_game` is present, in which case the rate is that game's or league's and is labelled with it): the share of the wallet's resolved markets in that category whose realized P&L closed positive, as a 0..1 fraction. Present only with `category_win_rate_status` = `measured`, on `display_holders` entries, and only when the wallet clears the resolved-market floor; recomputed at serve time from the current category read model, not frozen with the pick. Absent on `holders` entries, legacy rows, and payloads predating the field."
},
"category_win_record": {
"type": "object",
"required": [
"wins",
"decided"
],
"properties": {
"wins": {
"type": "integer",
"minimum": 0,
"description": "Resolved markets in the category that this wallet closed with a profit."
},
"decided": {
"type": "integer",
"minimum": 0,
"description": "Resolved markets in the category that this wallet closed with a profit or a loss. A market resolved at zero realized P&L is in neither count."
}
},
"description": "The two counts `category_win_rate` is the ratio of, read from the same row: `wins / decided` equals the rate. Counts every resolved Polymarket market the wallet traded in the pick's canonical category (or in its game or league, when `category_win_rate_game` is present), at any position size; the counts are rebuilt daily. Present only with `category_win_rate_status` = `measured`; absent otherwise and on payloads predating the field."
},
"category_avg_price": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "The wallet's average entry price in the pick's canonical category, as a 0..1 fraction of $1 (0.98 is 98 cents). Its sample is the wallet's settled markets in that category of $20 or more where it bought one side at a known price, so it can differ from the `category_win_record` sample. A wallet that buys near-certain outcomes wins almost every time, so read the win rate beside this price. Present only with `category_win_rate_status` = `measured`, and only when that sample has at least 5 markets. When `category_win_rate_game` is present the price is still the whole `category` bucket's: this field has no per-game or per-league price. Absent otherwise and on payloads predating the field."
},
"category_win_rate_game": {
"type": "string",
"description": "Where `category_win_rate` and `category_win_record` were measured, by the same name the pick's `display_category` uses for it: for an esports pick the game (`LoL`, `CS2`, `Dota 2`, `Valorant`, `Call of Duty`, `Honor of Kings`, `Mobile Legends: Bang Bang`, `Overwatch`, `Rainbow Six Siege`, `Rocket League` or `StarCraft II`), and for a pick in a registered league that league (`NBA`, `NFL`, `NHL`, `MLB`, `UFC`, `ATP`, `WTA`, `LaLiga`, `Premier League`, `Serie A`, `UEFA Champions League`, `MLS` and the other registered leagues). Present only when the wallet's record there clears the 5-resolved-market floor, in which case the rate and record are the game's or league's rather than the whole `category` bucket's. Absent when the rate is the bucket's (the wallet's history there is under the floor, or the competition is not a registered league), on every other pick, beside every non-measured status, and on payloads predating the field. Label the rate with this when present and with `category` otherwise."
},
"category_win_rate_status": {
"type": "string",
"enum": [
"measured",
"not_enough_data",
"unavailable"
],
"description": "Why `category_win_rate` is present or absent on a `display_holders` entry: `measured` (rate present), `not_enough_data` (the wallet is below the resolved-market floor of 5 in the category), or `unavailable` (the annotation read failed; retry later). Absent entirely on `holders` entries, legacy rows, and payloads predating the field -- absence means the roster was never annotated, not a small sample."
},
"wallet_age_days": {
"type": [
"number",
"null"
],
"description": "Whole days since this wallet's first trade, rounded down (3.6 days reads 3), so it changes once a day, not on every request, and the pick's ETag holds between requests. Stamped at serve time from the wallet's current trader record, never frozen with the pick. The five badge fields are present together, and only for a wallet that carries at least one badge; all absent means no badge, or a body cached before the fields shipped."
},
"is_new_wallet": {
"type": "boolean",
"description": "True when the wallet's first trade was under 30 days ago. Stamped at serve time from the wallet's current trader record, never frozen with the pick. The five badge fields are present together, and only for a wallet that carries at least one badge; all absent means no badge, or a body cached before the fields shipped."
},
"markets_traded": {
"type": [
"integer",
"null"
],
"description": "Distinct markets this wallet has traded. Stamped at serve time from the wallet's current trader record, never frozen with the pick. The five badge fields are present together, and only for a wallet that carries at least one badge; all absent means no badge, or a body cached before the fields shipped."
},
"is_bot": {
"type": "boolean",
"description": "True when the wallet has traded 10,000 or more distinct markets, the breadth floor 0xinsider uses to mark automated wallets. It is a breadth rule, not proof of automation. Stamped at serve time from the wallet's current trader record, never frozen with the pick. The five badge fields are present together, and only for a wallet that carries at least one badge; all absent means no badge, or a body cached before the fields shipped."
},
"x_username": {
"type": [
"string",
"null"
],
"description": "The wallet's X handle from its Polymarket profile, normalized to 1-15 characters of [A-Za-z0-9_] with no `@`. Link it as `https://x.com/<handle>`. Stamped at serve time from the wallet's current trader record, never frozen with the pick. The five badge fields are present together, and only for a wallet that carries at least one badge; all absent means no badge, or a body cached before the fields shipped."
}
}
},
"PickLeadBacker": {
"type": "object",
"description": "Recorded lead wallet facts on a full response when available. Position and category history are frozen at publication; they are not live balances or pick win probabilities.",
"properties": {
"address": {
"type": "string",
"description": "Lead trader wallet address."
},
"name": {
"type": [
"string",
"null"
],
"description": "Recorded provider display name."
},
"grade": {
"type": "string",
"description": "Trader grade recorded at publication."
},
"category": {
"type": "string",
"description": "Canonical sport of the recorded directional history."
},
"position_usd": {
"type": "number",
"description": "Provider-reported position value on the backed outcome at publication, in USD. It is the gross value on that outcome and does not subtract shares the wallet held on the other outcome; see net_position_usd. It is not the entry cost or a live balance."
},
"net_position_usd": {
"type": "number",
"description": "Net value of the lead's position toward the backed outcome at publication, in USD: shares held on the backed outcome minus shares held on the other outcome of the same market, valued at the backed outcome's provider price at publication. Present only when the wallet also held the other outcome; absent for a one-sided position, whose net equals position_usd. It is not a live balance."
},
"position_observed_at": {
"type": "string",
"format": "date-time",
"description": "Start time of the provider position fetch used at publication. This conservative observation clock precedes completion; the position is not a live balance."
},
"directional_event_count": {
"type": "integer",
"description": "Distinct directional events in the recorded category history."
},
"profitable_event_count": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"description": "Events with strictly positive native terminal P&L in the same frozen category sample as directional_event_count, realized_pnl_usd and roi. Multiple market positions in one event contribute one combined event result. Zero-profit events remain in directional_event_count but do not increase this count. This is a recorded wallet result, not a market win rate or the pick's win probability."
},
"realized_pnl_usd": {
"type": "number",
"description": "Realized P&L over the recorded directional category sample, in USD. Excludes open positions and later changes."
},
"entry_basis_usd": {
"type": "number",
"description": "Recorded entry basis of that directional sample, in USD; not a claim of complete trading costs or fees."
},
"roi": {
"type": "number",
"description": "Realized P&L divided by recorded entry basis, as a fraction: 0.10 means 10%. This is a wallet statistic, not a pick win probability."
},
"max_realized_drawdown_usd": {
"type": "number",
"description": "Peak-to-trough realized P&L drawdown after each event result in the recorded sample, in USD. Excludes intragame, unrealized, and account equity drawdown."
},
"recorded_at": {
"type": "string",
"format": "date-time",
"description": "Timestamp when the directional history evidence was recorded, separate from the provider position snapshot clock."
}
},
"required": [
"address",
"name",
"grade",
"category",
"position_usd",
"position_observed_at",
"directional_event_count",
"profitable_event_count",
"realized_pnl_usd",
"entry_basis_usd",
"roi",
"max_realized_drawdown_usd",
"recorded_at"
]
},
"PickOfTheDay": {
"type": "object",
"required": [
"state",
"supersedes_pick_id"
],
"properties": {
"state": {
"type": "string",
"enum": [
"full"
],
"description": "Full success containing entitled proof-readable picks."
},
"pick_date": {
"type": "string",
"format": "date",
"description": "The pick's local publication date (YYYY-MM-DD)."
},
"pick_rank": {
"type": "integer",
"minimum": 1,
"maximum"
# --- truncated at 32 KB (70 KB total) ---
# Full source: https://artifacts.apis.io/0xinsider-com/json-schema/0xinsider-com-pick-of-the-day-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/0xinsider-com-pick-of-the-day"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.