@0xinsider/mcp 3.7.0 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -1
- package/dist/catalog.generated.d.ts +56 -0
- package/dist/catalog.generated.d.ts.map +1 -1
- package/dist/catalog.generated.js +70 -0
- package/dist/catalog.generated.js.map +1 -1
- package/dist/client.d.ts +3 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/product-cli/index.d.ts.map +1 -1
- package/dist/product-cli/index.js +21 -2
- package/dist/product-cli/index.js.map +1 -1
- package/dist/product-cli/operations.d.ts.map +1 -1
- package/dist/product-cli/operations.js +19 -2
- package/dist/product-cli/operations.js.map +1 -1
- package/dist/sdk/client.d.ts +202 -3
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/client.js +217 -3
- package/dist/sdk/client.js.map +1 -1
- package/dist/sdk/index.d.ts +2 -2
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/schema.d.ts +1130 -27
- package/dist/sdk/schema.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +21 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/account.d.ts +5 -0
- package/dist/tools/account.d.ts.map +1 -0
- package/dist/tools/account.js +53 -0
- package/dist/tools/account.js.map +1 -0
- package/dist/tools/category-leaderboards.d.ts +5 -0
- package/dist/tools/category-leaderboards.d.ts.map +1 -0
- package/dist/tools/category-leaderboards.js +71 -0
- package/dist/tools/category-leaderboards.js.map +1 -0
- package/dist/tools/games.d.ts +4 -0
- package/dist/tools/games.d.ts.map +1 -1
- package/dist/tools/games.js +152 -6
- package/dist/tools/games.js.map +1 -1
- package/dist/tools/get-leaderboard.d.ts.map +1 -1
- package/dist/tools/get-leaderboard.js +31 -4
- package/dist/tools/get-leaderboard.js.map +1 -1
- package/dist/tools/get-whale-trades.d.ts.map +1 -1
- package/dist/tools/get-whale-trades.js +11 -1
- package/dist/tools/get-whale-trades.js.map +1 -1
- package/dist/tools/market-reads.d.ts +2 -0
- package/dist/tools/market-reads.d.ts.map +1 -1
- package/dist/tools/market-reads.js +58 -4
- package/dist/tools/market-reads.js.map +1 -1
- package/dist/tools/pick-of-the-day.d.ts +1 -0
- package/dist/tools/pick-of-the-day.d.ts.map +1 -1
- package/dist/tools/pick-of-the-day.js +20 -0
- package/dist/tools/pick-of-the-day.js.map +1 -1
- package/dist/tools/read-parity.d.ts +1 -0
- package/dist/tools/read-parity.d.ts.map +1 -1
- package/dist/tools/read-parity.js +41 -0
- package/dist/tools/read-parity.js.map +1 -1
- package/dist/tools/search-markets.js +4 -4
- package/dist/tools/search-markets.js.map +1 -1
- package/dist/tools/sport-leaderboards.d.ts +5 -0
- package/dist/tools/sport-leaderboards.d.ts.map +1 -0
- package/dist/tools/sport-leaderboards.js +65 -0
- package/dist/tools/sport-leaderboards.js.map +1 -0
- package/dist/tools/trader-reads.js +1 -1
- package/package.json +1 -1
package/dist/sdk/schema.d.ts
CHANGED
|
@@ -94,6 +94,14 @@ export type ApiErrorBody = {
|
|
|
94
94
|
/** ADDITIVE (#7209). The specific, actionable cause behind `code`, when there is one more specific than the code itself. `code` keeps its published values, so existing clients are unaffected; new clients branch on `reason`. Omitted when the code already says everything we know. pick_not_released: no Pick of the Day is published for the current product day; schedule one request against retry_at instead of polling. unknown_endpoint: the PATH is not a route on this API -- read GET /api/v1, do not retry. trader_not_tracked: the wallet is real and the URL is right, but the trader is not on the warm sync tier (the wallets we sync most often) -- stop asking for this wallet. market_out_of_scope (404 not_found, #27303): the market or event is real and the URL is right, but 0xinsider serves sports and esports markets only -- stop asking for this market; neither a retry nor another URL for it can succeed. cursor_expired: pagination went stale mid-walk -- re-request the first page and continue. read_model_warming: the requested endpoint cannot serve its read model yet; exact causes are endpoint-specific and can include a cold or contended refresh or a dependency that prevented refresh. database_unavailable: the API's database or its connection pool is temporarily unreachable (a connection-class failure, not a query fault); code stays rate_limit_unavailable, nothing is rate-limited, retry after Retry-After / retry_at. idempotency_in_progress: retain the exact Idempotency-Key and request body, then retry shortly. webhook_delivery_in_progress: retry the URL or signing-secret configuration change after the destination's active request completes. request_accounting_unavailable: accounting capacity is unavailable before the handler executes; retry after Retry-After / retry_at. sandbox_api_key: the credential is a sandbox key (oxi_sk_test_) from POST /api/v1/agents/register, which only the sandbox server accepts -- call the sandbox base URL with it, or get a live key or OAuth access token; do not retry it here. api_key_in_query: the key was sent as a ?token= query parameter, which no route reads because URLs land in logs and history; the key itself was not checked -- resend it as Authorization: Bearer. subscription_inactive: the key is valid but the account's Pro subscription has lapsed (402 subscription_required); permanent until a person reactivates at https://0xinsider.com/billing, which the message names -- stop retrying on a schedule and surface the link. The key owner is emailed once per lapse. monthly_quota_exceeded: the account has used the requests its plan includes for the UTC calendar month (429 rate_limited); retry_at and Retry-After name the first of next month, the only retry that can succeed, and the message names https://0xinsider.com/developers, where pay as you go for requests over the quota is turned on. The X-Monthly-Quota-Limit, X-Monthly-Quota-Remaining and X-Monthly-Quota-Reset headers on every authenticated response say how close the account is. invalid_query, invalid_path, invalid_body (400 bad_request, #16146): a query parameter, a path segment or the JSON body did not parse or does not fit the route's schema, so no handler ran; param names the field when the parser named one (a query key, a path segment, a JSON path such as traders[0], or body); fix the request, never retry it as sent. unsupported_media_type (415 bad_request, param content-type): send the body with Content-Type: application/json. payload_too_large (413 bad_request, param body): the body is over 1048576 bytes. method_not_allowed (405 bad_request): the path is a route but not with this method; the Allow header names the methods it serves. ip_rate_limited (429 rate_limited, #16380): the per-address budget every caller behind one IP shares, counted before authentication, is spent; not the key's own window, and the RateLimit-* headers describe that bucket. ip_throttled (429 rate_limited): the address is in a cooldown after sustained over-limit traffic; Retry-After is minutes to days, and a request before it does not shorten the cooldown. cold_read_limited (429 rate_limited, #28752): the account has used its share of cold reads on GET /api/v1/market/{condition_id}/holders, requests for a market whose roster is not cached, each of which walks Polymarket (6 a minute, in bursts of up to 400); not the per-minute window, so a cached market still answers, and the next cold read is admitted at Retry-After. max_plan_required (403 forbidden, #23085): the key is valid and its account is on Pro, but the route is part of Max (GET /api/v1/edge-hunter); every Pro route keeps working with the same key, so do not disable it. The message names https://0xinsider.com/pricing, where the account upgrades; a retry never clears it. endpoint_retired (410): this legacy sports endpoint no longer serves data. Migrate to GET /api/v1/edge-hunter; retrying the retired path cannot succeed. */
|
|
95
95
|
reason?: "cursor_expired" | "unknown_endpoint" | "pick_not_released" | "trader_not_tracked" | "market_out_of_scope" | "read_model_warming" | "database_unavailable" | "request_accounting_unavailable" | "idempotency_in_progress" | "webhook_delivery_in_progress" | "webhook_secret_rotation_not_prepared" | "webhook_secret_rotation_overlap_active" | "sandbox_api_key" | "api_key_in_query" | "subscription_inactive" | "monthly_quota_exceeded" | "invalid_query" | "unknown_query_parameter" | "invalid_path" | "invalid_body" | "unsupported_media_type" | "payload_too_large" | "method_not_allowed" | "ip_rate_limited" | "ip_throttled" | "cold_read_limited" | "export_expired" | "freshness_ceiling_unsatisfied" | "max_plan_required" | "endpoint_retired";
|
|
96
96
|
};
|
|
97
|
+
export type BatchGameHoldersItem = {
|
|
98
|
+
/** Zero-based request index. Duplicate inputs keep separate result rows. */
|
|
99
|
+
index: number;
|
|
100
|
+
input: string;
|
|
101
|
+
status: "ok" | "error";
|
|
102
|
+
data?: GameHoldersItem;
|
|
103
|
+
error?: ApiErrorBody;
|
|
104
|
+
};
|
|
97
105
|
export type BatchMarketFlowItem = {
|
|
98
106
|
/** Zero-based request index. Duplicate inputs keep separate result rows. */
|
|
99
107
|
index: number;
|
|
@@ -142,6 +150,22 @@ export type Candle = {
|
|
|
142
150
|
/** Close price in provider [0, 1] units (last observed point in the bucket). */
|
|
143
151
|
c: number;
|
|
144
152
|
};
|
|
153
|
+
export type CategoryLeader = {
|
|
154
|
+
address: string;
|
|
155
|
+
as_of: string;
|
|
156
|
+
category: string;
|
|
157
|
+
edge_lower_bound: number | null;
|
|
158
|
+
grade: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
159
|
+
id: string;
|
|
160
|
+
independent_events: number;
|
|
161
|
+
n_resolved: number | null;
|
|
162
|
+
platform: "polymarket";
|
|
163
|
+
pnl: number | null;
|
|
164
|
+
rank: number;
|
|
165
|
+
unresolved_events: number;
|
|
166
|
+
username: string | null;
|
|
167
|
+
win_rate: number | null;
|
|
168
|
+
};
|
|
145
169
|
/** Model-wide readiness, read in the same database snapshot as category_records. Individual category rows retain their own status. */
|
|
146
170
|
export type CategorySkillModelReadiness = {
|
|
147
171
|
status: "live" | "insufficient" | "stale" | "unknown" | "degraded";
|
|
@@ -883,10 +907,10 @@ export type EdgeHunterSportFunnelReport = {
|
|
|
883
907
|
board_upcoming_configured: boolean;
|
|
884
908
|
/** Whether every configured upcoming-board scope completed as available. False with board_upcoming_configured=false means not applicable. When board_upcoming_configured is true and this flag is false, read board_upcoming_status for the cause (unknown means no cause was recorded, which no computed snapshot reports): the board_source_unavailable and board_deadline_unavailable terminals are assigned only to already-started rows (the live half) and are structurally 0 for the upcoming source, so they never explain this flag. */
|
|
885
909
|
board_upcoming_available: boolean;
|
|
886
|
-
/** Why the upcoming-board source is (un)available. Board supply is one canonical-sport union: the bare category owns live truth and every configured composed league scope contributes upcoming rows; folded leagues without a configured board (currently
|
|
910
|
+
/** Why the upcoming-board source is (un)available. Board supply is one canonical-sport union: the bare category owns live truth and every configured composed league scope contributes upcoming rows; folded leagues without a configured board (currently CFL) are not in the upcoming union. available: every configured scope completed truthfully (a successful empty schedule still counts). capacity_limited: provider pagination or a configured upcoming cache published an intentionally bounded complete-event prefix; those rows are excluded from diagnostic-universe input and must not be treated as a complete upcoming universe. Cache-bound prefixes are limited to an exact 5,000,000-byte final envelope. source_unavailable: composition failed before a truthful union; resolved scope readers turn half failures into cold_unavailable, so fresh producers are whole-union identity reconciliation or a registry contract failure and carry zero rows. cold_unavailable: every scope completed but at least one reported its upcoming half unavailable because no servable entry was inside the stale-serve bound and the background warm did not land in time; it is not by itself proof of a provider outage. deadline_unavailable: an internal configured-scope deadline or the outer bounded fair wave expired. An internal deadline may retain healthy bare-category or sibling-scope rows; the outer wave records zero rows. These upcoming fields do not describe league live-membership availability. If the bare-category live scope fails, all live rows are dropped even when a league scope completed, because the bare category is the sole live-truth owner. not_configured: no upcoming scope applies to the sport. unknown: no cause was recorded; every computed snapshot reports a concrete status, so none reads unknown. board_upcoming_available is exactly board_upcoming_status == available. */
|
|
887
911
|
board_upcoming_status: "unknown" | "not_configured" | "available" | "capacity_limited" | "source_unavailable" | "cold_unavailable" | "deadline_unavailable";
|
|
888
|
-
/** Configured upcoming scopes that did not complete as available. Values are category, a provider league tag slug (nfl, cfb, nba, wnba, euroleague-basketball, nhl, mls, valorant, league-of-legends, counter-strike-2, or dota-2), registry when the compiled scope/projection contract drifted, union when cross-scope identity reconciliation failed, or wave when the outer fair-wave deadline expired before scope-level evidence returned. Empty means no unavailable upcoming scope was identified; this includes healthy/not-configured rows and a legacy cached row. Observation league scopes are upcoming-only and perform no live-membership read. */
|
|
889
|
-
board_upcoming_unavailable_scopes: ("category" | "nfl" | "cfb" | "nba" | "wnba" | "euroleague-basketball" | "nhl" | "mls" | "valorant" | "league-of-legends" | "counter-strike-2" | "dota-2" | "registry" | "union" | "wave")[];
|
|
912
|
+
/** Configured upcoming scopes that did not complete as available. Values are category, a provider league tag slug (nfl, cfb, nba, wnba, euroleague-basketball, ncaa-basketball, cwbb, nhl, mls, valorant, league-of-legends, counter-strike-2, or dota-2), registry when the compiled scope/projection contract drifted, union when cross-scope identity reconciliation failed, or wave when the outer fair-wave deadline expired before scope-level evidence returned. Empty means no unavailable upcoming scope was identified; this includes healthy/not-configured rows and a legacy cached row. Observation league scopes are upcoming-only and perform no live-membership read. */
|
|
913
|
+
board_upcoming_unavailable_scopes: ("category" | "nfl" | "cfb" | "nba" | "wnba" | "euroleague-basketball" | "ncaa-basketball" | "cwbb" | "nhl" | "mls" | "valorant" | "league-of-legends" | "counter-strike-2" | "dota-2" | "registry" | "union" | "wave")[];
|
|
890
914
|
/** Stored-universe rows plus provider-board rows missing from storage. */
|
|
891
915
|
input: number;
|
|
892
916
|
/** Sparse counts over the closed 25-value terminal vocabulary: outside_horizon, resolved, provider_closed, provider_excluded, invalid_market, missing_token, missing_stored_market, not_provider_live, board_source_unavailable, board_deadline_unavailable, primary_slate_candidate, zero_indexed_holder_research, capacity_limited, provider_unavailable, holder_deadline_unavailable, holder_computation_unavailable, holder_scan_incomplete, no_current_graded_holder, split_holder_pile, price_unavailable, wider_holder_emitted, in_play_emitted, in_play_stale_observed, in_play_directional_unavailable, or internal_unclassified. primary_slate_candidate means the view=signals snapshot named by signals_as_of lists the market at its widest selection (horizon_hours=48, min_grade=B, no selector), so it is not a wider_holder candidate; when no view=signals snapshot could be read (signals_as_of null), no market takes it. capacity_limited is intentional bounded provider-work admission, is fully accounted here, and does not itself set degraded=true. board_source_unavailable means a completed board source was unavailable; board_deadline_unavailable means live-board work missed either an internal configured-scope deadline or the outer fair-wave deadline; provider_unavailable means a holder read sent to the provider failed and the market had no reusable holder page; holder_deadline_unavailable means holder cache/provider work missed the absolute request deadline, or local capacity never sent the holder read, and the market had no reusable holder page; holder_computation_unavailable means post-holder provider or DB-backed price/metadata evaluation was unavailable. */
|
|
@@ -1212,7 +1236,7 @@ export type FreshnessFailure = {
|
|
|
1212
1236
|
/** The trader body's whole-response data-quality status. Only fresh can satisfy max_age_s. */
|
|
1213
1237
|
data_quality_status: "fresh" | "partial" | "unknown" | "untracked" | "unavailable";
|
|
1214
1238
|
};
|
|
1215
|
-
/** One sports or esports game: both sides, its schedule, provider status,
|
|
1239
|
+
/** One sports or esports game: both sides, its schedule, provider status, its winner markets (the moneyline, or the soccer 1X2 legs) with their available provider moneyline price states and liquidity, and the game's traded volume. The event's other markets are on GET /api/v1/games/{event_slug}/markets. Assembled from the same provider-first live and upcoming projections the site's boards use, with no request-time provider fan-out. */
|
|
1216
1240
|
export type Game = {
|
|
1217
1241
|
object: "game";
|
|
1218
1242
|
/** The game's identity, for example mlb-mil-cin-2026-06-22. The same key the live_sports_updated webhook pulse carries and the same key /api/v1/games/{event_slug} takes. */
|
|
@@ -1234,12 +1258,15 @@ export type Game = {
|
|
|
1234
1258
|
series_format?: string;
|
|
1235
1259
|
/** Whether this read includes a market classified as paying on a draw, including soccer's independent 1X2 draw leg. Read this instead of assuming a two-outcome moneyline. */
|
|
1236
1260
|
draw_offered: boolean;
|
|
1237
|
-
/**
|
|
1261
|
+
/** The game's winner markets the sports board binds to its sides (the moneyline, or a soccer game's three 1X2 legs), ordered by condition_id. Spreads, totals, period lines and props are on GET /api/v1/games/{event_slug}/markets. */
|
|
1238
1262
|
markets: GameMarket[];
|
|
1239
1263
|
freshness: GameFreshness;
|
|
1240
1264
|
coverage: GameCoverage;
|
|
1241
1265
|
/** The game's page on 0xinsider. */
|
|
1242
1266
|
url: string;
|
|
1267
|
+
sharp_money?: GameSharpMoney;
|
|
1268
|
+
/** The game's traded volume, the figure the sports board carries for it, with its source, basis, unit and observation clock. A client can rank or filter games by volume.value. Omitted when the board carries no volume for the game, and on a finished game read from its stored record (freshness.source stored); never 0 in place of a missing figure. */
|
|
1269
|
+
volume?: GameVolume;
|
|
1243
1270
|
};
|
|
1244
1271
|
/** One side of the game. */
|
|
1245
1272
|
export type GameCompetitor = {
|
|
@@ -1256,7 +1283,7 @@ export type GameCompetitor = {
|
|
|
1256
1283
|
};
|
|
1257
1284
|
/** What this game's read actually supplied, so a client branches on coverage instead of on a missing key. */
|
|
1258
1285
|
export type GameCoverage = {
|
|
1259
|
-
/** available when a live-score frame supplied this game
|
|
1286
|
+
/** available when a live-score frame supplied a score for this game. A game no live-score feed has reported yet, as most scheduled games are, reads unavailable. */
|
|
1260
1287
|
scores: "available" | "unavailable";
|
|
1261
1288
|
/** provider_ids when every side carries a provider id, labels when only the provider's names identify them, unavailable when neither exists. Do not join on names when this reads labels. */
|
|
1262
1289
|
competitors: "provider_ids" | "labels" | "unavailable";
|
|
@@ -1265,15 +1292,15 @@ export type GameCoverage = {
|
|
|
1265
1292
|
};
|
|
1266
1293
|
/** How current this game's facts are. Independent per source: the board half that produced the game, and the live-score frame that produced its scores. */
|
|
1267
1294
|
export type GameFreshness = {
|
|
1268
|
-
/**
|
|
1269
|
-
source: "live" | "upcoming";
|
|
1295
|
+
/** What produced this game: live or upcoming, the board half that carried it, or stored, the stored record of a finished game that has left the board (GET /api/v1/games/{event_slug}, and GET /api/v1/games with a finished status). */
|
|
1296
|
+
source: "live" | "upcoming" | "stored";
|
|
1270
1297
|
/** Whether that half returned a truthful source body for this read. */
|
|
1271
1298
|
source_status: "ok" | "unavailable";
|
|
1272
1299
|
/** Whether that half had a source body at all. not_applicable means the sport has no configured source for that half. */
|
|
1273
1300
|
source_availability: "available" | "unavailable" | "not_applicable";
|
|
1274
|
-
/** Freshness of the cached source body, never inferred from the response clock or the row count. */
|
|
1301
|
+
/** Freshness of the cached source body, never inferred from the response clock or the row count. not_applicable for a stored game, whose record is final. */
|
|
1275
1302
|
source_freshness: "fresh" | "stale" | "unknown" | "not_applicable";
|
|
1276
|
-
/** The source body's data vintage. Omitted when the read has no vintage anchor, which is not age zero. */
|
|
1303
|
+
/** The source body's data vintage. Omitted when the read has no vintage anchor, which is not age zero. For a stored game, the later of its last live-score write and its last leg settlement. */
|
|
1277
1304
|
source_observed_at?: string;
|
|
1278
1305
|
/** Age of source_observed_at in seconds, capped at 600. Omitted past the cap or with no anchor. */
|
|
1279
1306
|
source_age_seconds?: number;
|
|
@@ -1284,6 +1311,22 @@ export type GameFreshness = {
|
|
|
1284
1311
|
/** The provider's own frame clock. Omitted when the frame carries none. */
|
|
1285
1312
|
scores_source_at?: string;
|
|
1286
1313
|
};
|
|
1314
|
+
/** One market of a game holders batch: GET /api/v1/market/{condition_id}/holders unfiltered and cut to the batch limit. */
|
|
1315
|
+
export type GameHoldersItem = {
|
|
1316
|
+
/** The roster's top holders by current value, at most limit. */
|
|
1317
|
+
data: MarketHolder[];
|
|
1318
|
+
/** More graded holders than limit: page them on GET /api/v1/market/{condition_id}/holders. */
|
|
1319
|
+
has_more: boolean;
|
|
1320
|
+
/** Graded holders in the roster, across every page. */
|
|
1321
|
+
total: number;
|
|
1322
|
+
market: MarketHoldersMarket;
|
|
1323
|
+
scan: MarketHoldersScan;
|
|
1324
|
+
totals: MarketHoldersTotals;
|
|
1325
|
+
/** When this roster was computed. A cached roster is at most 60 seconds old. */
|
|
1326
|
+
computed_at: string;
|
|
1327
|
+
/** true when the roster came from the 60-second roster cache. */
|
|
1328
|
+
cached: boolean;
|
|
1329
|
+
};
|
|
1287
1330
|
/** One Polymarket market linked to this game. */
|
|
1288
1331
|
export type GameMarket = {
|
|
1289
1332
|
/** The mkt_-prefixed market id every other V1 response uses. */
|
|
@@ -1306,6 +1349,17 @@ export type GameMarket = {
|
|
|
1306
1349
|
outcome_token_ids?: string[];
|
|
1307
1350
|
/** Default provider moneyline state. Omitted when this market has no classified moneyline projection; incomplete and invalid projections remain explicit. */
|
|
1308
1351
|
prices?: GameMarketPrices;
|
|
1352
|
+
/** Polymarket's reported liquidity for this market. Omitted when the provider read carried none, and on a finished game read from its stored record; never 0 in place of a missing figure. */
|
|
1353
|
+
liquidity?: GameMarketLiquidity;
|
|
1354
|
+
};
|
|
1355
|
+
/** One market's liquidity as Polymarket reports it (Gamma liquidityNum), verbatim. Polymarket documents it only as reported market liquidity, with no unit. It describes the market's resting order book, not traded volume. */
|
|
1356
|
+
export type GameMarketLiquidity = {
|
|
1357
|
+
/** The provider's figure at full precision. */
|
|
1358
|
+
value: number;
|
|
1359
|
+
/** Always gamma: the Polymarket Gamma API. */
|
|
1360
|
+
source: "gamma";
|
|
1361
|
+
/** When 0xinsider read the sports board body this figure came from, never a provider-authored timestamp. Omitted when that read has no clock. */
|
|
1362
|
+
observed_at?: string;
|
|
1309
1363
|
};
|
|
1310
1364
|
/** How the existing sports-board writer bound prices to competitors. */
|
|
1311
1365
|
export type GameMarketPriceBindingProvenance = "provider_ids" | "exact_labels" | "containment_labels" | "elimination";
|
|
@@ -1366,18 +1420,66 @@ export type GameMarketProviderPrices = GameMarketPricePaired | GameMarketPriceIn
|
|
|
1366
1420
|
export type GamesCoverage = {
|
|
1367
1421
|
/** Canonical sport buckets served, sorted. */
|
|
1368
1422
|
sports: string[];
|
|
1369
|
-
/** League tags served, sorted. EuroLeague is euroleague under the Basketball sport bucket. */
|
|
1423
|
+
/** League tags served, sorted. EuroLeague is euroleague, NCAA men's college basketball cbb and NCAA women's college basketball cwbb, all under the Basketball sport bucket. */
|
|
1370
1424
|
leagues: string[];
|
|
1371
1425
|
/** Scopes whose source half was unavailable for this read, as <sport>:<half>. Empty means every scope answered. */
|
|
1372
1426
|
sources_unavailable: string[];
|
|
1373
1427
|
};
|
|
1428
|
+
/** Event-level sharp money for one game. Every aggregate field is null unless status is computed; null means unknown, never zero. */
|
|
1429
|
+
export type GameSharpMoney = {
|
|
1430
|
+
allocation: "exact" | "degraded" | null;
|
|
1431
|
+
computed_at: string | null;
|
|
1432
|
+
event_slug: string;
|
|
1433
|
+
holders_partial: boolean | null;
|
|
1434
|
+
lifecycle: "live" | "settled" | "indeterminate" | null;
|
|
1435
|
+
money_as_of: string | null;
|
|
1436
|
+
object: string;
|
|
1437
|
+
outcomes: ({
|
|
1438
|
+
is_leader: boolean;
|
|
1439
|
+
label: string;
|
|
1440
|
+
pct: number;
|
|
1441
|
+
side: "home" | "draw" | "away";
|
|
1442
|
+
usd: number;
|
|
1443
|
+
wallets: {
|
|
1444
|
+
a: number;
|
|
1445
|
+
b: number;
|
|
1446
|
+
s: number;
|
|
1447
|
+
};
|
|
1448
|
+
})[];
|
|
1449
|
+
status: "computed" | "not_computed" | "unavailable";
|
|
1450
|
+
total_usd: number | null;
|
|
1451
|
+
trader_count: number | null;
|
|
1452
|
+
unallocated_usd: number | null;
|
|
1453
|
+
verdict: {
|
|
1454
|
+
kind: "no_sharp_money";
|
|
1455
|
+
} | {
|
|
1456
|
+
kind: "all_on";
|
|
1457
|
+
label: string;
|
|
1458
|
+
} | {
|
|
1459
|
+
kind: "split";
|
|
1460
|
+
} | {
|
|
1461
|
+
kind: "leans";
|
|
1462
|
+
label: string;
|
|
1463
|
+
pct: number;
|
|
1464
|
+
} | {
|
|
1465
|
+
kind: "unavailable";
|
|
1466
|
+
} | {
|
|
1467
|
+
divergence_pts: number;
|
|
1468
|
+
kind: "leans_over_price";
|
|
1469
|
+
label: string;
|
|
1470
|
+
} | {
|
|
1471
|
+
kind: "no_clear_lean";
|
|
1472
|
+
} | {
|
|
1473
|
+
kind: "withheld";
|
|
1474
|
+
} | null;
|
|
1475
|
+
};
|
|
1374
1476
|
/** Where the game is in its own life, as the provider reports it. A postponement, a cancellation and a suspension each keep their own state, so a client can tell a game that will be played later from one that never will be. */
|
|
1375
1477
|
export type GameStatus = {
|
|
1376
|
-
/** scheduled: kickoff is ahead or the provider still
|
|
1478
|
+
/** scheduled: kickoff is ahead, or the provider still lists the game open and neither in play nor ended. With no live-score frame a game stays scheduled past its kickoff until the provider says otherwise. live: the provider reports it in play. paused: halftime or a provider-reported break. ended: the provider reported a final, an award or a forfeit. postponed, cancelled, suspended, delayed: the provider's own verdict, kept distinct. A tennis match that the provider still lists in play, with no live score feed and no change of period or score for 3 hours, also reads suspended. unknown: no provider state reached this read. A kickoff in the past is never read as live on its own. */
|
|
1377
1479
|
state: "scheduled" | "live" | "paused" | "ended" | "postponed" | "cancelled" | "suspended" | "delayed" | "unknown";
|
|
1378
|
-
/** The provider status folded onto one vocabulary across leagues. unknown means the provider sent a value this API has no meaning for; provider_status keeps that value verbatim. Omitted when no live-score frame carries a status. */
|
|
1480
|
+
/** The provider status folded onto one vocabulary across leagues. unknown means the provider sent a value this API has no meaning for; provider_status keeps that value verbatim. Omitted when no live-score frame carries a status, as for a listed game no live-score feed has reported yet. */
|
|
1379
1481
|
match_status?: "scheduled" | "in_progress" | "halftime" | "penalty_shootout" | "delayed" | "suspended" | "final" | "final_overtime" | "final_shootout" | "awarded" | "forfeit" | "not_necessary" | "postponed" | "cancelled" | "unknown";
|
|
1380
|
-
/** The
|
|
1482
|
+
/** The live-score feed's status string, verbatim. Omitted when no live-score frame carries one. This API never puts a label of its own here, such as Scheduled for a listed game. */
|
|
1381
1483
|
provider_status?: string;
|
|
1382
1484
|
/** The provider's period label, for example Q3, End Q2 or T5. Omitted when the provider sent none. */
|
|
1383
1485
|
period?: string;
|
|
@@ -1388,6 +1490,62 @@ export type GameStatus = {
|
|
|
1388
1490
|
/** Whether the game is over. Always present. */
|
|
1389
1491
|
ended: boolean;
|
|
1390
1492
|
};
|
|
1493
|
+
/** One fill in a game, as the game page's activity list shows it. */
|
|
1494
|
+
export type GameTrade = {
|
|
1495
|
+
/** Stable fill identity: {transaction_hash}:{token_id}:{wallet}:{shares}. Deduplicate on it across polls. */
|
|
1496
|
+
id: string;
|
|
1497
|
+
/** When the fill happened, to the second. */
|
|
1498
|
+
traded_at: string;
|
|
1499
|
+
/** The provider's side of the fill. */
|
|
1500
|
+
side: "BUY" | "SELL";
|
|
1501
|
+
/** The traded outcome's label; null when the provider named none. */
|
|
1502
|
+
outcome: string | null;
|
|
1503
|
+
/** 0 for the first (Yes) outcome token, 1 for the second (No); null when the provider did not say. */
|
|
1504
|
+
outcome_index: number | null;
|
|
1505
|
+
/** Fill price, 0 to 1. */
|
|
1506
|
+
price: number;
|
|
1507
|
+
/** Shares filled. */
|
|
1508
|
+
shares: number;
|
|
1509
|
+
/** USDC notional of the fill. */
|
|
1510
|
+
size_usd: number;
|
|
1511
|
+
/** The signed handicap the fill's side carries on a spread line, for example -1.5 or 1.5; null off spreads. */
|
|
1512
|
+
point: number | null;
|
|
1513
|
+
trader: {
|
|
1514
|
+
/** Lowercase proxy wallet. */
|
|
1515
|
+
address: string;
|
|
1516
|
+
/** The name the site shows: the 0xinsider username, else the provider's name or pseudonym, else the shortened address. */
|
|
1517
|
+
display_name: string;
|
|
1518
|
+
/** The trader's grade today; null for an ungraded or untracked wallet. */
|
|
1519
|
+
grade: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
1520
|
+
};
|
|
1521
|
+
market: {
|
|
1522
|
+
/** The market's v1 id, mkt_ plus the condition_id. */
|
|
1523
|
+
id: string;
|
|
1524
|
+
/** The raw provider condition_id. */
|
|
1525
|
+
condition_id: string;
|
|
1526
|
+
/** The market's question. */
|
|
1527
|
+
title: string | null;
|
|
1528
|
+
/** The market's page slug. */
|
|
1529
|
+
slug: string | null;
|
|
1530
|
+
/** The market's name within the game, for example Draw, O/U 2.5, First to Score: CD Guadalajara, Game 2: Any Player Quadra Kill. */
|
|
1531
|
+
line_label: string | null;
|
|
1532
|
+
};
|
|
1533
|
+
};
|
|
1534
|
+
/** A game's traded volume as Polymarket reports it, read by the sports board with no request-time provider call. A one-side taker share count, the number Polymarket's own pages print behind a dollar sign, not the cash that changed hands. */
|
|
1535
|
+
export type GameVolume = {
|
|
1536
|
+
/** The volume at full precision, in unit. */
|
|
1537
|
+
value: number;
|
|
1538
|
+
/** taker_shares: cumulative one-side taker volume in shares. One share pays $1 at settlement, so this is not cash traded. Omitted only on a figure observed before units were recorded; never assume cash. */
|
|
1539
|
+
unit?: "taker_shares";
|
|
1540
|
+
/** game_lines: the game volume Polymarket's game page states, summed over the game's own lines. event_total: the whole event's volume, stated when no game volume was readable. The two can differ in either direction. Omitted when the basis is unknown. */
|
|
1541
|
+
basis?: "game_lines" | "event_total";
|
|
1542
|
+
/** The Polymarket API the figure was read from: polymarket_data (the Data API's live volume) or gamma (the Gamma API). */
|
|
1543
|
+
source: "polymarket_data" | "gamma";
|
|
1544
|
+
/** When 0xinsider read the figure from the provider, never a provider-authored timestamp. Omitted when no read time is held for it. */
|
|
1545
|
+
observed_at?: string;
|
|
1546
|
+
/** How long after observed_at 0xinsider treats the figure as current: 60 or 300 by source and basis, or 3600 for an older figure kept because a later read of the same total was lower or missing (a cumulative volume never falls). */
|
|
1547
|
+
fresh_for_seconds: number;
|
|
1548
|
+
};
|
|
1391
1549
|
/** Current category evidence, independent of the global grade. Pick of the Day stamps only the served display roster; frozen entry snapshots remain unchanged. */
|
|
1392
1550
|
export type HolderCategoryEvidence = {
|
|
1393
1551
|
status: "live" | "insufficient" | "stale" | "unknown" | "degraded";
|
|
@@ -1660,12 +1818,42 @@ export type LeaderboardEntry = {
|
|
|
1660
1818
|
win_rate?: number;
|
|
1661
1819
|
/** Additive (#27859): the wallet's sports and esports record, the same object as GET /api/v1/trader/{address} pnl.in_scope, as of the leaderboard's last refresh. The 0xinsider leaderboard page shows and sorts by in_scope.realized_pnl and in_scope.win_rate. Omitted until 0xinsider has computed the wallet's record; absent means not computed yet, never zero. */
|
|
1662
1820
|
in_scope?: TraderPnlInScope;
|
|
1821
|
+
/** Additive (#32270): the wallet's edge over the price paid on its sports and esports markets, the figures the 0xinsider leaderboard page's Edge column states for the row. sort=edge orders by price_edge.edge. Omitted when the wallet has no settled sports or esports market of $20 or more at a known entry price. */
|
|
1822
|
+
price_edge?: LeaderboardPriceEdge;
|
|
1663
1823
|
/** Observed trading style identifier. New rows use two_sided, category_focused, high_activity, diversified, mixed, or unclassified, counted over the wallet's sports and esports markets only. Historical identifiers remain readable during normal reclassification; style does not predict skill or intent. */
|
|
1664
1824
|
strategy_type?: string;
|
|
1665
1825
|
/** Provider platform. Always polymarket. */
|
|
1666
1826
|
platform: "polymarket";
|
|
1667
1827
|
last_active?: string;
|
|
1668
1828
|
};
|
|
1829
|
+
export type LeaderboardLeagues = {
|
|
1830
|
+
leagues: {
|
|
1831
|
+
category: string;
|
|
1832
|
+
name: string;
|
|
1833
|
+
ranked_traders: number;
|
|
1834
|
+
slug: string;
|
|
1835
|
+
sport: string;
|
|
1836
|
+
total_traders: number;
|
|
1837
|
+
}[];
|
|
1838
|
+
min_ranked: number;
|
|
1839
|
+
min_resolved: number;
|
|
1840
|
+
refreshed_at: string;
|
|
1841
|
+
};
|
|
1842
|
+
/** Edge over the price paid (#32270): how often the side a wallet bought won, minus the average price it paid, over its settled sports and esports markets of $20 or more at a known entry price. Probabilities throughout: edge 0.12 is 12 percentage points. A wallet buying at 99 cents that wins every market has an edge of about 0.01. A market bought on both sides counts by its shares: the winning side's share of the shares bought is its hit, the cost over those shares its price. */
|
|
1843
|
+
export type LeaderboardPriceEdge = {
|
|
1844
|
+
/** Settled sports and esports markets of $20 or more at a known entry price that the edge is measured over. */
|
|
1845
|
+
markets: number;
|
|
1846
|
+
/** Share of those markets whose bought side won, 0-1. */
|
|
1847
|
+
hit_rate: number;
|
|
1848
|
+
/** Mean entry price paid, 0-1. */
|
|
1849
|
+
avg_price: number;
|
|
1850
|
+
/** hit_rate minus avg_price, full precision. The value sort=edge orders by. */
|
|
1851
|
+
edge: number;
|
|
1852
|
+
/** Whether the edge ranks. ranked: at least 30 such markets, and the share of the decided ones that made money at settlement within 10 points of the win rate over the same markets. too_few_markets: fewer than 30. sample_mismatch: that share is more than 10 points away, so these markets do not describe the wallet's record. Only a ranked edge with no hold orders on sort=edge. */
|
|
1853
|
+
status: "ranked" | "too_few_markets" | "sample_mismatch";
|
|
1854
|
+
/** Why the leaderboard does not rank a ranked edge. record_incomplete: the wallet's stored sports and esports record shows more profit than Polymarket reports for it, so some losing markets are likely missing. Omitted when nothing holds the edge, and always omitted unless status is ranked. */
|
|
1855
|
+
hold?: "record_incomplete";
|
|
1856
|
+
};
|
|
1669
1857
|
/** One side's score line inside a `live_sports_updated` pulse. */
|
|
1670
1858
|
export type LiveSportsScoreEntry = {
|
|
1671
1859
|
/** Team name, ordered for the league (away first where the league reads that way). */
|
|
@@ -1870,6 +2058,15 @@ export type MarketHoldersSideGrades = {
|
|
|
1870
2058
|
a: number;
|
|
1871
2059
|
b: number;
|
|
1872
2060
|
};
|
|
2061
|
+
/** Polymarket currentValue in USD per grade on one side, over the same wallets as that side's usd total. Each value is rounded to the cent after summing, so s + a + b can differ from the side total by up to 2 cents. */
|
|
2062
|
+
export type MarketHoldersSideGradeUsd = {
|
|
2063
|
+
/** USD held by S-grade wallets netting this side. */
|
|
2064
|
+
s: number;
|
|
2065
|
+
/** USD held by A-grade wallets netting this side. */
|
|
2066
|
+
a: number;
|
|
2067
|
+
/** USD held by B-grade wallets netting this side. */
|
|
2068
|
+
b: number;
|
|
2069
|
+
};
|
|
1873
2070
|
/** Roster totals BEFORE any `outcome` or `min_grade` filter, so a page always knows the whole market it was cut from. */
|
|
1874
2071
|
export type MarketHoldersTotals = {
|
|
1875
2072
|
/** Distinct graded wallets with net exposure; a two-sided wallet counts once. */
|
|
@@ -1884,6 +2081,10 @@ export type MarketHoldersTotals = {
|
|
|
1884
2081
|
no_usd: number;
|
|
1885
2082
|
yes_grades: MarketHoldersSideGrades;
|
|
1886
2083
|
no_grades: MarketHoldersSideGrades;
|
|
2084
|
+
/** yes_usd split by grade: where the S, A and B money on YES sits. */
|
|
2085
|
+
yes_grade_usd: MarketHoldersSideGradeUsd;
|
|
2086
|
+
/** no_usd split by grade: where the S, A and B money on NO sits. */
|
|
2087
|
+
no_grade_usd: MarketHoldersSideGradeUsd;
|
|
1887
2088
|
};
|
|
1888
2089
|
export type MarketSearchResult = {
|
|
1889
2090
|
id: string;
|
|
@@ -1895,6 +2096,7 @@ export type MarketSearchResult = {
|
|
|
1895
2096
|
platform: "polymarket" | null;
|
|
1896
2097
|
/** closed once Polymarket has closed trading or the market has resolved; active otherwise. The same rule labels a market on markets/search, markets/explore and market/{condition_id}/snapshot. */
|
|
1897
2098
|
status: "active" | "closed";
|
|
2099
|
+
event_slug?: string;
|
|
1898
2100
|
};
|
|
1899
2101
|
export type MarketSnapshot = {
|
|
1900
2102
|
market: {
|
|
@@ -1989,6 +2191,143 @@ export type MarketSnapshotTrust = {
|
|
|
1989
2191
|
current_price: TrustMetadata;
|
|
1990
2192
|
spread_bps: TrustMetadata;
|
|
1991
2193
|
};
|
|
2194
|
+
export type MarketTopHolder = {
|
|
2195
|
+
/** 1-based position on this outcome, by shares. */
|
|
2196
|
+
rank: number;
|
|
2197
|
+
/** `trd_`-prefixed trader id, accepted by `GET /api/v1/trader/{address}`. */
|
|
2198
|
+
trader_id: string;
|
|
2199
|
+
/** Lowercased proxy wallet. */
|
|
2200
|
+
address: string;
|
|
2201
|
+
/** The wallet's display name; null when it shows none. */
|
|
2202
|
+
name: string | null;
|
|
2203
|
+
/** All-time trader grade, S to F. Null for a wallet 0xinsider has not graded: this route lists every holder whatever its grade. */
|
|
2204
|
+
grade: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
2205
|
+
/** Shares held on this outcome. */
|
|
2206
|
+
shares: number;
|
|
2207
|
+
/** Polymarket's current value of this position, in USD. Null when the provider served none. */
|
|
2208
|
+
current_value_usd: number | null;
|
|
2209
|
+
/** Average price paid for the shares still held, as a 0..1 fraction of $1. Null when the provider served none. */
|
|
2210
|
+
avg_entry_price: number | null;
|
|
2211
|
+
/** Shares on the other outcome when the wallet holds both; the wallet is then listed on both sides. Absent when it is one-sided. */
|
|
2212
|
+
other_outcome_shares?: number;
|
|
2213
|
+
/** Polymarket's realized P&L of this position (sells and redemptions), in USD. Null when the provider served no economics for the row. */
|
|
2214
|
+
position_realized_pnl: number | null;
|
|
2215
|
+
/** Polymarket's mark-to-market P&L of the shares still held, in USD. On a resolved market the mark is the settlement price. */
|
|
2216
|
+
position_unrealized_pnl: number | null;
|
|
2217
|
+
/** `position_realized_pnl` plus `position_unrealized_pnl`, in USD. */
|
|
2218
|
+
position_total_pnl: number | null;
|
|
2219
|
+
/** The wallet's realized P&L on sports and esports markets, in USD, the figure on its 0xinsider profile. Null until 0xinsider has computed the record, never 0 in its place, and null for every row when `profiles_status` is `unavailable`. */
|
|
2220
|
+
in_scope_realized_pnl: number | null;
|
|
2221
|
+
/** The wallet's volume traded on sports and esports markets, in USD. Null under the same rule as `in_scope_realized_pnl`. */
|
|
2222
|
+
in_scope_volume: number | null;
|
|
2223
|
+
/** The wallet's stored trading-style label (see Wallet trading styles); null when it has none. */
|
|
2224
|
+
strategy_type: string | null;
|
|
2225
|
+
/** The wallet's last recorded trade anywhere, null when unknown. */
|
|
2226
|
+
last_traded_at: string | null;
|
|
2227
|
+
/** This wallet's win rate in the market's canonical category (`market.category`): the share of its settled markets in that category (it closed its position by selling out, or the market resolved) whose realized P&L closed positive, as a 0..1 fraction. Present only with `category_win_rate_status` = `measured`. The same read `GET /api/v1/trader/{address}/categories` serves per wallet. */
|
|
2228
|
+
category_win_rate?: number;
|
|
2229
|
+
/** The two counts `category_win_rate` is the ratio of, from the same row: `wins / decided` equals the rate. Every settled Polymarket market the wallet traded (it closed its position by selling out, or the market resolved) in the market's canonical category, at any position size, rebuilt daily. Present only with `category_win_rate_status` = `measured`. */
|
|
2230
|
+
category_win_record?: {
|
|
2231
|
+
/** Settled markets in the category that this wallet closed with a profit. */
|
|
2232
|
+
wins: number;
|
|
2233
|
+
/** Settled 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. */
|
|
2234
|
+
decided: number;
|
|
2235
|
+
};
|
|
2236
|
+
/** The wallet's average entry price in the market's canonical category, as a 0..1 fraction of $1 (0.98 is 98 cents). Its sample is the wallet's markets in that category that resolved to a winning side, 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. */
|
|
2237
|
+
category_avg_price?: number;
|
|
2238
|
+
/** Where `category_win_rate` and `category_win_record` were measured: for an esports market 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 market in a registered league that league, by the name Pick of the Day uses for it (`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-settled-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 market, and beside every non-measured status. Label the rate with this when present and with the market's `category` otherwise. */
|
|
2239
|
+
category_win_rate_game?: string;
|
|
2240
|
+
/** Why `category_win_rate` is present or absent: `measured` (rate present), `not_enough_data` (under the floor of 5 decided markets in the category), or `unavailable` (the read failed; retry later). Absent when the market has no canonical category. */
|
|
2241
|
+
category_win_rate_status?: "measured" | "not_enough_data" | "unavailable";
|
|
2242
|
+
/** 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. The five badge fields are present together, only for a wallet that draws at least one badge. */
|
|
2243
|
+
wallet_age_days?: number | null;
|
|
2244
|
+
/** True when the wallet's first trade was under 30 days ago. */
|
|
2245
|
+
is_new_wallet?: boolean;
|
|
2246
|
+
/** Distinct markets the wallet has traded. */
|
|
2247
|
+
markets_traded?: number | null;
|
|
2248
|
+
/** True when the wallet is flagged as automated. */
|
|
2249
|
+
is_bot?: boolean;
|
|
2250
|
+
/** The wallet's X handle without the @, when linked. */
|
|
2251
|
+
x_username?: string | null;
|
|
2252
|
+
};
|
|
2253
|
+
export type MarketTopHolders = {
|
|
2254
|
+
market: MarketHoldersMarket;
|
|
2255
|
+
/** The largest YES holders, by shares, up to `limit`. */
|
|
2256
|
+
yes: MarketTopHolder[];
|
|
2257
|
+
/** The largest NO holders, by shares, up to `limit`. */
|
|
2258
|
+
no: MarketTopHolder[];
|
|
2259
|
+
totals: MarketTopHoldersTotals;
|
|
2260
|
+
/** `unavailable` when the wallet record read failed: `in_scope_realized_pnl`, `in_scope_volume` and `strategy_type` are then null for every row because they were not read, not because they are unknown. */
|
|
2261
|
+
profiles_status: "available" | "unavailable";
|
|
2262
|
+
/** When the daily pass behind the rows' category win records began. Absent when the market has no category or the read answered no row. */
|
|
2263
|
+
category_records_as_of?: string;
|
|
2264
|
+
/** When this holder sample was built. */
|
|
2265
|
+
computed_at?: string;
|
|
2266
|
+
/** When Polymarket's holder board behind this sample was fetched: up to 120 s before `computed_at` on an open market. Absent on a resolved market, whose sample reads no live board, and when the fetch stamp could not be read. */
|
|
2267
|
+
positions_as_of?: string;
|
|
2268
|
+
};
|
|
2269
|
+
export type MarketTopHoldersTotals = {
|
|
2270
|
+
/** Holders in the YES sample, before `limit`. Equal to `sample_cap` means that many or more. */
|
|
2271
|
+
yes_count: number;
|
|
2272
|
+
/** Holders in the NO sample, before `limit`. */
|
|
2273
|
+
no_count: number;
|
|
2274
|
+
/** Shares summed over the YES sample. */
|
|
2275
|
+
yes_shares: number;
|
|
2276
|
+
/** Shares summed over the NO sample. */
|
|
2277
|
+
no_shares: number;
|
|
2278
|
+
/** The most holders the sample keeps per outcome (100). */
|
|
2279
|
+
sample_cap: number;
|
|
2280
|
+
};
|
|
2281
|
+
/** One market's net buyers and net sellers over a 24h or 7d window, as the market page's wallets in/out panel shows a Pro viewer. */
|
|
2282
|
+
export type MarketWalletsInOut = {
|
|
2283
|
+
/** The market's raw provider condition id. */
|
|
2284
|
+
condition_id: string;
|
|
2285
|
+
/** The window the nets are summed over: 24h or 7d. */
|
|
2286
|
+
window: string;
|
|
2287
|
+
/** The window's inclusive start; null only when the bounds are unknown. */
|
|
2288
|
+
window_start: string | null;
|
|
2289
|
+
/** The window's inclusive end, the read's clock; null only when the bounds are unknown. */
|
|
2290
|
+
window_end: string | null;
|
|
2291
|
+
/** Totals over every wallet that traded the market in the window, not only the listed 50. */
|
|
2292
|
+
summary: {
|
|
2293
|
+
/** Wallets with a positive net in the window. */
|
|
2294
|
+
wallets_in: number;
|
|
2295
|
+
/** Wallets with a negative net in the window. */
|
|
2296
|
+
wallets_out: number;
|
|
2297
|
+
/** The sum of every wallet's net, in USD. A fully rotated wallet nets zero and is on neither side. */
|
|
2298
|
+
net_usd: number;
|
|
2299
|
+
};
|
|
2300
|
+
/** Wallets whose net is positive, largest first, at most 25. */
|
|
2301
|
+
net_buyers: ({
|
|
2302
|
+
/** Lowercase proxy wallet. */
|
|
2303
|
+
address: string;
|
|
2304
|
+
/** The name the site shows: the 0xinsider username, else the shortened address. */
|
|
2305
|
+
display_name: string;
|
|
2306
|
+
/** Today's grade; null for an ungraded or untracked wallet. */
|
|
2307
|
+
grade: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
2308
|
+
/** Buys minus sells in the window, both outcomes, in USD: the matched notional, fees excluded. */
|
|
2309
|
+
net_usd: number;
|
|
2310
|
+
/** Fills in the window. */
|
|
2311
|
+
trades: number;
|
|
2312
|
+
/** The wallet's newest trade on any market, at or before window_end; null when unknown. */
|
|
2313
|
+
last_traded_at: string | null;
|
|
2314
|
+
})[];
|
|
2315
|
+
/** Wallets whose net is negative, most negative first, at most 25. */
|
|
2316
|
+
net_sellers: ({
|
|
2317
|
+
/** Lowercase proxy wallet. */
|
|
2318
|
+
address: string;
|
|
2319
|
+
/** The name the site shows: the 0xinsider username, else the shortened address. */
|
|
2320
|
+
display_name: string;
|
|
2321
|
+
/** Today's grade; null for an ungraded or untracked wallet. */
|
|
2322
|
+
grade: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
2323
|
+
/** Buys minus sells in the window, both outcomes, in USD: the matched notional, fees excluded. */
|
|
2324
|
+
net_usd: number;
|
|
2325
|
+
/** Fills in the window. */
|
|
2326
|
+
trades: number;
|
|
2327
|
+
/** The wallet's newest trade on any market, at or before window_end; null when unknown. */
|
|
2328
|
+
last_traded_at: string | null;
|
|
2329
|
+
})[];
|
|
2330
|
+
};
|
|
1992
2331
|
export type McpJsonRpcError = {
|
|
1993
2332
|
jsonrpc: "2.0";
|
|
1994
2333
|
/** The request's id, or null when the request could not be parsed. Omitted on the answer to an unsolicited response message. */
|
|
@@ -2616,6 +2955,405 @@ export type PickOfTheDayNoEntitledPicks = {
|
|
|
2616
2955
|
*/
|
|
2617
2956
|
supersedes_pick_id: string | null;
|
|
2618
2957
|
};
|
|
2958
|
+
export type PickOfTheDayStats = {
|
|
2959
|
+
categories: {
|
|
2960
|
+
canonical_category?: string;
|
|
2961
|
+
clv_avg_display?: string;
|
|
2962
|
+
clv_avg_pct?: number;
|
|
2963
|
+
clv_avg_pp?: number;
|
|
2964
|
+
clv_avg_pp_display?: string;
|
|
2965
|
+
clv_measured: number;
|
|
2966
|
+
edge_display?: string;
|
|
2967
|
+
edge_pp?: number;
|
|
2968
|
+
key: string;
|
|
2969
|
+
label: string;
|
|
2970
|
+
losses: number;
|
|
2971
|
+
net_profit_display?: string;
|
|
2972
|
+
net_profit_usd?: number;
|
|
2973
|
+
pending: number;
|
|
2974
|
+
picks: number;
|
|
2975
|
+
priced_decided: number;
|
|
2976
|
+
priced_in_display?: string;
|
|
2977
|
+
priced_in_pct?: number;
|
|
2978
|
+
roi_display?: string;
|
|
2979
|
+
roi_pct?: number;
|
|
2980
|
+
settled: number;
|
|
2981
|
+
small_sample: boolean;
|
|
2982
|
+
staked_usd: number;
|
|
2983
|
+
unit_score?: number;
|
|
2984
|
+
unit_score_display?: string;
|
|
2985
|
+
void: number;
|
|
2986
|
+
win_rate_display?: string;
|
|
2987
|
+
win_rate_pct?: number;
|
|
2988
|
+
wins: number;
|
|
2989
|
+
}[];
|
|
2990
|
+
days: ({
|
|
2991
|
+
date: string;
|
|
2992
|
+
losses: number;
|
|
2993
|
+
net_profit_display?: string;
|
|
2994
|
+
net_profit_usd?: number;
|
|
2995
|
+
pending: number;
|
|
2996
|
+
picks: number;
|
|
2997
|
+
sweep?: "win" | "loss";
|
|
2998
|
+
unit_score?: number;
|
|
2999
|
+
unit_score_display?: string;
|
|
3000
|
+
void: number;
|
|
3001
|
+
wins: number;
|
|
3002
|
+
})[];
|
|
3003
|
+
hit_rate: PickOfTheDayHitRate;
|
|
3004
|
+
market_expectations: {
|
|
3005
|
+
as_of_date: string;
|
|
3006
|
+
price_basis: string;
|
|
3007
|
+
timezone: string;
|
|
3008
|
+
windows: ({
|
|
3009
|
+
clv_avg_display: string | null;
|
|
3010
|
+
clv_avg_pct: number | null;
|
|
3011
|
+
clv_avg_pp: number | null;
|
|
3012
|
+
clv_avg_pp_display: string | null;
|
|
3013
|
+
clv_measured: number;
|
|
3014
|
+
clv_missing: number;
|
|
3015
|
+
expected_wins: number | null;
|
|
3016
|
+
expected_wins_display: string | null;
|
|
3017
|
+
from_date: string | null;
|
|
3018
|
+
key: string;
|
|
3019
|
+
label: string;
|
|
3020
|
+
numeric_unavailable: boolean;
|
|
3021
|
+
priced_decided: number;
|
|
3022
|
+
through_date: string;
|
|
3023
|
+
units: number | null;
|
|
3024
|
+
units_display: string | null;
|
|
3025
|
+
units_z: number | null;
|
|
3026
|
+
units_z_display: string | null;
|
|
3027
|
+
unpriced_decided: number;
|
|
3028
|
+
wins: number;
|
|
3029
|
+
wins_z: number | null;
|
|
3030
|
+
wins_z_display: string | null;
|
|
3031
|
+
})[];
|
|
3032
|
+
};
|
|
3033
|
+
market_types: {
|
|
3034
|
+
canonical_category?: string;
|
|
3035
|
+
clv_avg_display?: string;
|
|
3036
|
+
clv_avg_pct?: number;
|
|
3037
|
+
clv_avg_pp?: number;
|
|
3038
|
+
clv_avg_pp_display?: string;
|
|
3039
|
+
clv_measured: number;
|
|
3040
|
+
edge_display?: string;
|
|
3041
|
+
edge_pp?: number;
|
|
3042
|
+
key: string;
|
|
3043
|
+
label: string;
|
|
3044
|
+
losses: number;
|
|
3045
|
+
net_profit_display?: string;
|
|
3046
|
+
net_profit_usd?: number;
|
|
3047
|
+
pending: number;
|
|
3048
|
+
picks: number;
|
|
3049
|
+
priced_decided: number;
|
|
3050
|
+
priced_in_display?: string;
|
|
3051
|
+
priced_in_pct?: number;
|
|
3052
|
+
roi_display?: string;
|
|
3053
|
+
roi_pct?: number;
|
|
3054
|
+
settled: number;
|
|
3055
|
+
small_sample: boolean;
|
|
3056
|
+
staked_usd: number;
|
|
3057
|
+
unit_score?: number;
|
|
3058
|
+
unit_score_display?: string;
|
|
3059
|
+
void: number;
|
|
3060
|
+
win_rate_display?: string;
|
|
3061
|
+
win_rate_pct?: number;
|
|
3062
|
+
wins: number;
|
|
3063
|
+
}[];
|
|
3064
|
+
months: {
|
|
3065
|
+
canonical_category?: string;
|
|
3066
|
+
clv_avg_display?: string;
|
|
3067
|
+
clv_avg_pct?: number;
|
|
3068
|
+
clv_avg_pp?: number;
|
|
3069
|
+
clv_avg_pp_display?: string;
|
|
3070
|
+
clv_measured: number;
|
|
3071
|
+
edge_display?: string;
|
|
3072
|
+
edge_pp?: number;
|
|
3073
|
+
key: string;
|
|
3074
|
+
label: string;
|
|
3075
|
+
losses: number;
|
|
3076
|
+
net_profit_display?: string;
|
|
3077
|
+
net_profit_usd?: number;
|
|
3078
|
+
pending: number;
|
|
3079
|
+
picks: number;
|
|
3080
|
+
priced_decided: number;
|
|
3081
|
+
priced_in_display?: string;
|
|
3082
|
+
priced_in_pct?: number;
|
|
3083
|
+
roi_display?: string;
|
|
3084
|
+
roi_pct?: number;
|
|
3085
|
+
settled: number;
|
|
3086
|
+
small_sample: boolean;
|
|
3087
|
+
staked_usd: number;
|
|
3088
|
+
unit_score?: number;
|
|
3089
|
+
unit_score_display?: string;
|
|
3090
|
+
void: number;
|
|
3091
|
+
win_rate_display?: string;
|
|
3092
|
+
win_rate_pct?: number;
|
|
3093
|
+
wins: number;
|
|
3094
|
+
}[];
|
|
3095
|
+
outcome_stats: {
|
|
3096
|
+
concentration: {
|
|
3097
|
+
positive_wins: number;
|
|
3098
|
+
remaining_valued_decided: number;
|
|
3099
|
+
removed_wins: number;
|
|
3100
|
+
roi_without_top_wins_display: string | null;
|
|
3101
|
+
roi_without_top_wins_pct: number | null;
|
|
3102
|
+
target_wins: number;
|
|
3103
|
+
top_wins_share_display: string | null;
|
|
3104
|
+
top_wins_share_pct: number | null;
|
|
3105
|
+
valued_decided: number;
|
|
3106
|
+
};
|
|
3107
|
+
drawdown: {
|
|
3108
|
+
completed_days: number;
|
|
3109
|
+
current_days_below_peak: number | null;
|
|
3110
|
+
current_drawdown_display: string | null;
|
|
3111
|
+
current_drawdown_units: number | null;
|
|
3112
|
+
days_below_peak: number | null;
|
|
3113
|
+
excluded_days: number;
|
|
3114
|
+
from_date: string | null;
|
|
3115
|
+
longest_days_below_peak: number | null;
|
|
3116
|
+
longest_recovery_days: number | null;
|
|
3117
|
+
max_drawdown_display: string | null;
|
|
3118
|
+
max_drawdown_units: number | null;
|
|
3119
|
+
peak_date: string | null;
|
|
3120
|
+
peak_net_profit_usd: number | null;
|
|
3121
|
+
through_date: string | null;
|
|
3122
|
+
};
|
|
3123
|
+
profit_factor: {
|
|
3124
|
+
display: string | null;
|
|
3125
|
+
gross_loss_usd: number | null;
|
|
3126
|
+
gross_profit_usd: number | null;
|
|
3127
|
+
state: "empty" | "measured" | "no_losses" | "numeric_unavailable";
|
|
3128
|
+
value: number | null;
|
|
3129
|
+
valued_decided: number;
|
|
3130
|
+
};
|
|
3131
|
+
rolling: ({
|
|
3132
|
+
from_date: string | null;
|
|
3133
|
+
losses: number;
|
|
3134
|
+
roi_display: string | null;
|
|
3135
|
+
roi_pct: number | null;
|
|
3136
|
+
through_date: string | null;
|
|
3137
|
+
units: number | null;
|
|
3138
|
+
units_display: string | null;
|
|
3139
|
+
valued_decided: number;
|
|
3140
|
+
win_rate_display: string | null;
|
|
3141
|
+
win_rate_pct: number | null;
|
|
3142
|
+
window_size: number;
|
|
3143
|
+
wins: number;
|
|
3144
|
+
})[];
|
|
3145
|
+
};
|
|
3146
|
+
price_bands: {
|
|
3147
|
+
canonical_category?: string;
|
|
3148
|
+
clv_avg_display?: string;
|
|
3149
|
+
clv_avg_pct?: number;
|
|
3150
|
+
clv_avg_pp?: number;
|
|
3151
|
+
clv_avg_pp_display?: string;
|
|
3152
|
+
clv_measured: number;
|
|
3153
|
+
edge_display?: string;
|
|
3154
|
+
edge_pp?: number;
|
|
3155
|
+
key: string;
|
|
3156
|
+
label: string;
|
|
3157
|
+
losses: number;
|
|
3158
|
+
net_profit_display?: string;
|
|
3159
|
+
net_profit_usd?: number;
|
|
3160
|
+
pending: number;
|
|
3161
|
+
picks: number;
|
|
3162
|
+
priced_decided: number;
|
|
3163
|
+
priced_in_display?: string;
|
|
3164
|
+
priced_in_pct?: number;
|
|
3165
|
+
roi_display?: string;
|
|
3166
|
+
roi_pct?: number;
|
|
3167
|
+
settled: number;
|
|
3168
|
+
small_sample: boolean;
|
|
3169
|
+
staked_usd: number;
|
|
3170
|
+
unit_score?: number;
|
|
3171
|
+
unit_score_display?: string;
|
|
3172
|
+
void: number;
|
|
3173
|
+
win_rate_display?: string;
|
|
3174
|
+
win_rate_pct?: number;
|
|
3175
|
+
wins: number;
|
|
3176
|
+
}[];
|
|
3177
|
+
records: {
|
|
3178
|
+
best_day?: {
|
|
3179
|
+
date: string;
|
|
3180
|
+
date_display: string;
|
|
3181
|
+
losses: number;
|
|
3182
|
+
net_profit_display: string;
|
|
3183
|
+
net_profit_usd: number;
|
|
3184
|
+
picks: number;
|
|
3185
|
+
wins: number;
|
|
3186
|
+
};
|
|
3187
|
+
biggest_win?: {
|
|
3188
|
+
category: string;
|
|
3189
|
+
date: string;
|
|
3190
|
+
date_display: string;
|
|
3191
|
+
matchup: string;
|
|
3192
|
+
net_profit_display: string;
|
|
3193
|
+
net_profit_usd: number;
|
|
3194
|
+
};
|
|
3195
|
+
longest_losing_day_streak?: {
|
|
3196
|
+
days: number;
|
|
3197
|
+
end_date: string;
|
|
3198
|
+
net_profit_display: string;
|
|
3199
|
+
net_profit_usd: number;
|
|
3200
|
+
range_display: string;
|
|
3201
|
+
start_date: string;
|
|
3202
|
+
};
|
|
3203
|
+
longest_winning_day_streak?: {
|
|
3204
|
+
days: number;
|
|
3205
|
+
end_date: string;
|
|
3206
|
+
net_profit_display: string;
|
|
3207
|
+
net_profit_usd: number;
|
|
3208
|
+
range_display: string;
|
|
3209
|
+
start_date: string;
|
|
3210
|
+
};
|
|
3211
|
+
sweeps: {
|
|
3212
|
+
clean_sweeps: number;
|
|
3213
|
+
latest_clean_sweep?: {
|
|
3214
|
+
date: string;
|
|
3215
|
+
date_display: string;
|
|
3216
|
+
losses: number;
|
|
3217
|
+
wins: number;
|
|
3218
|
+
};
|
|
3219
|
+
latest_wipeout?: {
|
|
3220
|
+
date: string;
|
|
3221
|
+
date_display: string;
|
|
3222
|
+
losses: number;
|
|
3223
|
+
wins: number;
|
|
3224
|
+
};
|
|
3225
|
+
min_decided: number;
|
|
3226
|
+
wipeouts: number;
|
|
3227
|
+
};
|
|
3228
|
+
winning_days?: {
|
|
3229
|
+
flat: number;
|
|
3230
|
+
losing: number;
|
|
3231
|
+
settled: number;
|
|
3232
|
+
winning: number;
|
|
3233
|
+
winning_pct: number;
|
|
3234
|
+
winning_pct_display: string;
|
|
3235
|
+
};
|
|
3236
|
+
worst_day?: {
|
|
3237
|
+
date: string;
|
|
3238
|
+
date_display: string;
|
|
3239
|
+
losses: number;
|
|
3240
|
+
net_profit_display: string;
|
|
3241
|
+
net_profit_usd: number;
|
|
3242
|
+
picks: number;
|
|
3243
|
+
wins: number;
|
|
3244
|
+
};
|
|
3245
|
+
};
|
|
3246
|
+
sports: {
|
|
3247
|
+
canonical_category?: string;
|
|
3248
|
+
clv_avg_display?: string;
|
|
3249
|
+
clv_avg_pct?: number;
|
|
3250
|
+
clv_avg_pp?: number;
|
|
3251
|
+
clv_avg_pp_display?: string;
|
|
3252
|
+
clv_measured: number;
|
|
3253
|
+
edge_display?: string;
|
|
3254
|
+
edge_pp?: number;
|
|
3255
|
+
key: string;
|
|
3256
|
+
label: string;
|
|
3257
|
+
losses: number;
|
|
3258
|
+
net_profit_display?: string;
|
|
3259
|
+
net_profit_usd?: number;
|
|
3260
|
+
pending: number;
|
|
3261
|
+
picks: number;
|
|
3262
|
+
priced_decided: number;
|
|
3263
|
+
priced_in_display?: string;
|
|
3264
|
+
priced_in_pct?: number;
|
|
3265
|
+
roi_display?: string;
|
|
3266
|
+
roi_pct?: number;
|
|
3267
|
+
settled: number;
|
|
3268
|
+
small_sample: boolean;
|
|
3269
|
+
staked_usd: number;
|
|
3270
|
+
unit_score?: number;
|
|
3271
|
+
unit_score_display?: string;
|
|
3272
|
+
void: number;
|
|
3273
|
+
win_rate_display?: string;
|
|
3274
|
+
win_rate_pct?: number;
|
|
3275
|
+
wins: number;
|
|
3276
|
+
}[];
|
|
3277
|
+
streaks: {
|
|
3278
|
+
current?: number;
|
|
3279
|
+
current_day?: number;
|
|
3280
|
+
current_day_display?: string;
|
|
3281
|
+
current_display?: string;
|
|
3282
|
+
longest_loss: number;
|
|
3283
|
+
longest_win: number;
|
|
3284
|
+
};
|
|
3285
|
+
tiers: {
|
|
3286
|
+
canonical_category?: string;
|
|
3287
|
+
clv_avg_display?: string;
|
|
3288
|
+
clv_avg_pct?: number;
|
|
3289
|
+
clv_avg_pp?: number;
|
|
3290
|
+
clv_avg_pp_display?: string;
|
|
3291
|
+
clv_measured: number;
|
|
3292
|
+
edge_display?: string;
|
|
3293
|
+
edge_pp?: number;
|
|
3294
|
+
key: string;
|
|
3295
|
+
label: string;
|
|
3296
|
+
losses: number;
|
|
3297
|
+
net_profit_display?: string;
|
|
3298
|
+
net_profit_usd?: number;
|
|
3299
|
+
pending: number;
|
|
3300
|
+
picks: number;
|
|
3301
|
+
priced_decided: number;
|
|
3302
|
+
priced_in_display?: string;
|
|
3303
|
+
priced_in_pct?: number;
|
|
3304
|
+
roi_display?: string;
|
|
3305
|
+
roi_pct?: number;
|
|
3306
|
+
settled: number;
|
|
3307
|
+
small_sample: boolean;
|
|
3308
|
+
staked_usd: number;
|
|
3309
|
+
unit_score?: number;
|
|
3310
|
+
unit_score_display?: string;
|
|
3311
|
+
void: number;
|
|
3312
|
+
win_rate_display?: string;
|
|
3313
|
+
win_rate_pct?: number;
|
|
3314
|
+
wins: number;
|
|
3315
|
+
}[];
|
|
3316
|
+
total_sides: {
|
|
3317
|
+
canonical_category?: string;
|
|
3318
|
+
clv_avg_display?: string;
|
|
3319
|
+
clv_avg_pct?: number;
|
|
3320
|
+
clv_avg_pp?: number;
|
|
3321
|
+
clv_avg_pp_display?: string;
|
|
3322
|
+
clv_measured: number;
|
|
3323
|
+
edge_display?: string;
|
|
3324
|
+
edge_pp?: number;
|
|
3325
|
+
key: string;
|
|
3326
|
+
label: string;
|
|
3327
|
+
losses: number;
|
|
3328
|
+
net_profit_display?: string;
|
|
3329
|
+
net_profit_usd?: number;
|
|
3330
|
+
pending: number;
|
|
3331
|
+
picks: number;
|
|
3332
|
+
priced_decided: number;
|
|
3333
|
+
priced_in_display?: string;
|
|
3334
|
+
priced_in_pct?: number;
|
|
3335
|
+
roi_display?: string;
|
|
3336
|
+
roi_pct?: number;
|
|
3337
|
+
settled: number;
|
|
3338
|
+
small_sample: boolean;
|
|
3339
|
+
staked_usd: number;
|
|
3340
|
+
unit_score?: number;
|
|
3341
|
+
unit_score_display?: string;
|
|
3342
|
+
void: number;
|
|
3343
|
+
win_rate_display?: string;
|
|
3344
|
+
win_rate_pct?: number;
|
|
3345
|
+
wins: number;
|
|
3346
|
+
}[];
|
|
3347
|
+
voids: {
|
|
3348
|
+
backed_price?: number;
|
|
3349
|
+
backed_side?: string;
|
|
3350
|
+
category?: string;
|
|
3351
|
+
matchup?: string;
|
|
3352
|
+
pick_date: string;
|
|
3353
|
+
pick_id: string;
|
|
3354
|
+
pick_rank: number;
|
|
3355
|
+
}[];
|
|
3356
|
+
};
|
|
2619
3357
|
/** A settled uncommitted pick's market, side and price. The same eight fields as PickOfTheDayCommitmentPayload, in the same key order, so a settled pick's side and price sit under payload whatever the entry's state. It is NOT a commitment: no hash was taken over it before the game, and it proves nothing about when the pick was made. */
|
|
2620
3358
|
export type PickOfTheDayUncommittedPayload = {
|
|
2621
3359
|
/** Frozen pre-game price of the backed side, 0..1, as the plain decimal text of the stored NUMERIC at full stored precision, trailing zeros included -- rendered exactly as the commitment payload renders it. */
|
|
@@ -2984,6 +3722,60 @@ export type ReportSourceRange = {
|
|
|
2984
3722
|
end_date: string;
|
|
2985
3723
|
timezone: "UTC";
|
|
2986
3724
|
};
|
|
3725
|
+
export type ResolutionReport = {
|
|
3726
|
+
accuracy: number | null;
|
|
3727
|
+
all_wallets_accuracy: number | null;
|
|
3728
|
+
all_wallets_right: number | null;
|
|
3729
|
+
all_wallets_wrong: number | null;
|
|
3730
|
+
date: string | null;
|
|
3731
|
+
generated_at: string | null;
|
|
3732
|
+
grade_basis: "at_resolution" | "current" | null;
|
|
3733
|
+
market_scope: "all_markets" | "sports_and_esports";
|
|
3734
|
+
markets?: ({
|
|
3735
|
+
all_wallets_right: boolean | null;
|
|
3736
|
+
category: string | null;
|
|
3737
|
+
condition_id: string | null;
|
|
3738
|
+
confidence: number | null;
|
|
3739
|
+
event_slug: string | null;
|
|
3740
|
+
out_of_product_scope: boolean;
|
|
3741
|
+
outcome_no: string | null;
|
|
3742
|
+
outcome_yes: string | null;
|
|
3743
|
+
report_at: string;
|
|
3744
|
+
smart_consensus: string | null;
|
|
3745
|
+
smart_right: boolean | null;
|
|
3746
|
+
smart_trader_count: number | null;
|
|
3747
|
+
time_basis: "polymarket_gamma_closed_time" | "observed_resolution";
|
|
3748
|
+
title: string | null;
|
|
3749
|
+
total_smart_pnl: number | null;
|
|
3750
|
+
traders: ({
|
|
3751
|
+
address: string | null;
|
|
3752
|
+
correct: boolean | null;
|
|
3753
|
+
cost: number | null;
|
|
3754
|
+
grade: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
3755
|
+
last_traded_at: string | null;
|
|
3756
|
+
pnl: number | null;
|
|
3757
|
+
side: string | null;
|
|
3758
|
+
username: string | null;
|
|
3759
|
+
})[];
|
|
3760
|
+
weighted_no: number | null;
|
|
3761
|
+
weighted_yes: number | null;
|
|
3762
|
+
winning_outcome: number | null;
|
|
3763
|
+
})[];
|
|
3764
|
+
markets_without_smart_positions: number | null;
|
|
3765
|
+
no_consensus: number | null;
|
|
3766
|
+
positions_grade_unknown: number | null;
|
|
3767
|
+
positions_without_side: number | null;
|
|
3768
|
+
smart_money_right: number | null;
|
|
3769
|
+
smart_money_wrong: number | null;
|
|
3770
|
+
source_updates_pending: boolean;
|
|
3771
|
+
time_basis_counts: {
|
|
3772
|
+
observed_resolution: number;
|
|
3773
|
+
polymarket_gamma_closed_time: number;
|
|
3774
|
+
} | null;
|
|
3775
|
+
total_resolved: number | null;
|
|
3776
|
+
total_smart_pnl: number | null;
|
|
3777
|
+
with_smart_positions: number | null;
|
|
3778
|
+
};
|
|
2987
3779
|
export type ResponseMeta = {
|
|
2988
3780
|
/** Unique request ID (req_ prefix). The same value as the X-Request-Id response header, the request's usage accounting row and its log lines. */
|
|
2989
3781
|
request_id: string;
|
|
@@ -3148,6 +3940,50 @@ export type SnapshotState = {
|
|
|
3148
3940
|
/** When this body's source read started, the clock finality is judged on. null for a body stored before that clock was recorded. */
|
|
3149
3941
|
source_read_started_at: string | null;
|
|
3150
3942
|
};
|
|
3943
|
+
export type SportLeaderboard = {
|
|
3944
|
+
as_of: string | null;
|
|
3945
|
+
category: string | null;
|
|
3946
|
+
edge_average: number | null;
|
|
3947
|
+
league: {
|
|
3948
|
+
name: string;
|
|
3949
|
+
ranked_traders: number;
|
|
3950
|
+
slug: string;
|
|
3951
|
+
} | null;
|
|
3952
|
+
limit: number;
|
|
3953
|
+
min_resolved: number;
|
|
3954
|
+
rows: ({
|
|
3955
|
+
address: string;
|
|
3956
|
+
cost: number | null;
|
|
3957
|
+
edge_hold: "category_loss" | "record_incomplete" | null;
|
|
3958
|
+
edge_skill: number | null;
|
|
3959
|
+
grade: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
3960
|
+
id: string;
|
|
3961
|
+
last_category_trade_at: string | null;
|
|
3962
|
+
losses: number;
|
|
3963
|
+
n_resolved: number;
|
|
3964
|
+
platform: "polymarket";
|
|
3965
|
+
pnl: number | null;
|
|
3966
|
+
price_edge: {
|
|
3967
|
+
avg_price: number;
|
|
3968
|
+
edge: number;
|
|
3969
|
+
edge_lower: number;
|
|
3970
|
+
hit_rate: number;
|
|
3971
|
+
markets: number;
|
|
3972
|
+
status: "ranked" | "too_few_markets" | "sample_mismatch";
|
|
3973
|
+
} | null;
|
|
3974
|
+
rank: number;
|
|
3975
|
+
roi: number | null;
|
|
3976
|
+
username: string | null;
|
|
3977
|
+
volume: number | null;
|
|
3978
|
+
win_rate: number | null;
|
|
3979
|
+
win_rate_wilson_lb: number | null;
|
|
3980
|
+
wins: number;
|
|
3981
|
+
})[];
|
|
3982
|
+
sort: "edge" | "pnl" | "win_rate";
|
|
3983
|
+
sport: string;
|
|
3984
|
+
total_traders: number;
|
|
3985
|
+
volume_scope: "sports_and_esports";
|
|
3986
|
+
};
|
|
3151
3987
|
export type SuspiciousTrade = {
|
|
3152
3988
|
/** Prefixed ID (rf_...). */
|
|
3153
3989
|
id: string;
|
|
@@ -3276,7 +4112,7 @@ export type Trader = {
|
|
|
3276
4112
|
* @deprecated
|
|
3277
4113
|
*/
|
|
3278
4114
|
realized?: number;
|
|
3279
|
-
/** Unrealized P&L in USD of the wallet's open positions on its synced markets, from the open-position aggregate (dated by the positions data_quality group).
|
|
4115
|
+
/** Unrealized P&L in USD of the wallet's open positions on its synced sports and esports markets, from the open-position aggregate (dated by the positions data_quality group). Each open position's market is judged when the aggregate is read (#32119), so a stored position on a market of another category (one that moved out of sports and esports, or one stored before its category was known) is left out. Before 2026-10-27 (#29366) it covered every Polymarket market. */
|
|
3280
4116
|
unrealized?: number;
|
|
3281
4117
|
/**
|
|
3282
4118
|
* Deprecated since 2026-10-27 and never sent: its one member was the lossless counterpart of the retired pnl.realized (#29830).
|
|
@@ -3376,7 +4212,7 @@ export type TraderCategoryRecords = {
|
|
|
3376
4212
|
};
|
|
3377
4213
|
export type TraderContext = {
|
|
3378
4214
|
trader: Trader;
|
|
3379
|
-
/** Aggregate position and P&L coverage for the trader, over its synced markets.
|
|
4215
|
+
/** Aggregate position and P&L coverage for the trader, over its synced markets. markets_open, unrealized_mtm and cost_basis_locked cover the open positions on sports and esports markets, each market judged when the summary is read (#32119). markets_synced, markets_resolved and the resolved win figures count every stored market: since 2026-10-27 (#29366) those are mostly sports and esports markets, but a market that moved out of sports and esports, or one stored before its category was known, stays in them, and sync_coverage counts every category on both sides. markets_total, total_realized_pnl and synced_realized_pnl still cover every Polymarket market of the wallet. Omitted entirely (key absent, never null) when the trader is not in the local database or native net economics is unavailable. Realized fields remain numbers when present, including a genuine zero. */
|
|
3380
4216
|
position_summary?: {
|
|
3381
4217
|
/** Polymarket's count of the markets the wallet traded, every category, when known; null when the provider total is unavailable. */
|
|
3382
4218
|
markets_total: number | null;
|
|
@@ -3390,7 +4226,7 @@ export type TraderContext = {
|
|
|
3390
4226
|
markets_combo: number;
|
|
3391
4227
|
/** Synced markets the wallet has settled: it closed its position by selling out, or the market resolved. Its P&L there is final. */
|
|
3392
4228
|
markets_resolved: number;
|
|
3393
|
-
/** Synced markets still open with residual value (open positions with current value > 0). */
|
|
4229
|
+
/** Synced sports and esports markets still open with residual value (open positions with current value > 0); a stored market of another category is left out (#32119). */
|
|
3394
4230
|
markets_open: number;
|
|
3395
4231
|
/** markets_synced plus markets_pruned plus markets_unstored plus markets_combo, divided by markets_total when the provider total is known (capped at 1.0); 0.0-1.0. Both sides count every category: no Polymarket count of a wallet's sports and esports markets exists, so the ratio does not estimate one. When markets_total is unknown or not positive (null, 0, or negative), this is 1.0 if that sum is positive (else 0.0), so cross-check markets_total before treating 1.0 as full coverage. */
|
|
3396
4232
|
sync_coverage: number;
|
|
@@ -3398,9 +4234,9 @@ export type TraderContext = {
|
|
|
3398
4234
|
synced_realized_pnl: number;
|
|
3399
4235
|
/** Native net realized P&L (USD) over every Polymarket market of the wallet, including credited rebates, read directly from the accounting snapshot. For the sports and esports figure read trader.pnl.in_scope.realized_pnl. Position sync_coverage is separate from this accounting basis. */
|
|
3400
4236
|
total_realized_pnl: number;
|
|
3401
|
-
/** Mark-to-market unrealized P&L (USD) on open positions in synced markets. */
|
|
4237
|
+
/** Mark-to-market unrealized P&L (USD) on open positions in synced sports and esports markets (#32119). */
|
|
3402
4238
|
unrealized_mtm: number;
|
|
3403
|
-
/** Cost basis (USD) currently tied up in open positions in synced markets. */
|
|
4239
|
+
/** Cost basis (USD) currently tied up in open positions in synced sports and esports markets (#32119). */
|
|
3404
4240
|
cost_basis_locked: number;
|
|
3405
4241
|
/** Win rate as a percentage (0-100): resolved_wins over resolved_decided. A settled market that closed at exactly zero realized P&L (a void, a refund, a fully hedged position) is neither a win nor a loss and is not in the denominator, the same rule the leaderboard applies; null when no resolved market was decided. It is the rule of trader.stats.win_rate, read from the synced rows at request time; stats.win_rate is the stored figure the profile shows, refreshed by each sync and a few minutes after a closed-history write. context.md prints one Market win rate, stats.win_rate. */
|
|
3406
4242
|
resolved_win_rate: number | null;
|
|
@@ -4330,6 +5166,7 @@ export interface OperationData {
|
|
|
4330
5166
|
scopes: string[] | null;
|
|
4331
5167
|
};
|
|
4332
5168
|
getApiDiscovery: ApiDiscovery;
|
|
5169
|
+
getCategoryLeaderboard: CategoryLeader[];
|
|
4333
5170
|
getCombo: ComboDetail;
|
|
4334
5171
|
getCombosSummary: CombosSummary;
|
|
4335
5172
|
getCoverage: Platforms;
|
|
@@ -4337,6 +5174,8 @@ export interface OperationData {
|
|
|
4337
5174
|
getEdgeHunter: EdgeHunterBoard | EdgeHunterRankedSignal[] | EdgeHunterObservation[];
|
|
4338
5175
|
getEventReplaySince: EventReplayEvent[];
|
|
4339
5176
|
getGame: Game;
|
|
5177
|
+
getGameHolders: BatchGameHoldersItem[];
|
|
5178
|
+
getGameSharpMoney: GameSharpMoney;
|
|
4340
5179
|
getHealth: {
|
|
4341
5180
|
status: "ok" | "degraded" | "down" | "maintenance";
|
|
4342
5181
|
db: boolean;
|
|
@@ -4367,15 +5206,20 @@ export interface OperationData {
|
|
|
4367
5206
|
getMarketHolders: MarketHolder[];
|
|
4368
5207
|
getMarketIntel: MarketFlow;
|
|
4369
5208
|
getMarketSnapshot: MarketSnapshot;
|
|
5209
|
+
getMarketTopHolders: MarketTopHolders;
|
|
5210
|
+
getMarketWalletsInOut: MarketWalletsInOut;
|
|
4370
5211
|
getMonthlyReportSnapshot: ReportSnapshot;
|
|
4371
5212
|
getPickOfTheDay: PickOfTheDay | PickOfTheDayNoEntitledPicks;
|
|
4372
5213
|
getPickOfTheDayArchive: PickOfTheDayArchive;
|
|
4373
5214
|
getPickOfTheDayLedger: PickOfTheDayLedger;
|
|
4374
5215
|
getPickOfTheDayLedgerEntry: PickOfTheDayLedgerEntry;
|
|
5216
|
+
getPickOfTheDayStats: PickOfTheDayStats;
|
|
4375
5217
|
getPlatforms: Platforms;
|
|
4376
5218
|
getPositionTimeline: PositionTimelineEvent[];
|
|
4377
5219
|
getPositionTimelineById: PositionTimelineEvent[];
|
|
4378
5220
|
getReports: ReportSnapshot;
|
|
5221
|
+
getResolutionReport: ResolutionReport;
|
|
5222
|
+
getSportLeaderboard: SportLeaderboard;
|
|
4379
5223
|
getStream: string;
|
|
4380
5224
|
getSuspiciousTrade: SuspiciousTrade;
|
|
4381
5225
|
getTrader: Trader;
|
|
@@ -4528,8 +5372,43 @@ export interface OperationData {
|
|
|
4528
5372
|
filters: WhaleDatasetFilters;
|
|
4529
5373
|
};
|
|
4530
5374
|
getWhaleTrade: LargeTradeDetail;
|
|
5375
|
+
listCategoryLeaders: CategoryLeader[];
|
|
4531
5376
|
listComboFills: ComboFill[];
|
|
5377
|
+
listGameMarkets: ({
|
|
5378
|
+
condition_id: string;
|
|
5379
|
+
event_slug: string;
|
|
5380
|
+
group_item_title?: string;
|
|
5381
|
+
id: string;
|
|
5382
|
+
line?: number;
|
|
5383
|
+
line_outcome_index?: number;
|
|
5384
|
+
negative_risk?: boolean;
|
|
5385
|
+
outcomes: {
|
|
5386
|
+
index: number;
|
|
5387
|
+
label?: string;
|
|
5388
|
+
token_id?: string;
|
|
5389
|
+
}[];
|
|
5390
|
+
platform?: string;
|
|
5391
|
+
slug?: string;
|
|
5392
|
+
sports_market_type?: string;
|
|
5393
|
+
status: string;
|
|
5394
|
+
title?: string;
|
|
5395
|
+
sharp_money?: {
|
|
5396
|
+
money_as_of: string | null;
|
|
5397
|
+
outcomes: {
|
|
5398
|
+
index: number;
|
|
5399
|
+
usd: number;
|
|
5400
|
+
wallets: {
|
|
5401
|
+
a: number;
|
|
5402
|
+
b: number;
|
|
5403
|
+
s: number;
|
|
5404
|
+
};
|
|
5405
|
+
}[];
|
|
5406
|
+
status: "computed" | "not_computed" | "unavailable";
|
|
5407
|
+
trader_count: number | null;
|
|
5408
|
+
};
|
|
5409
|
+
})[];
|
|
4532
5410
|
listGames: Game[];
|
|
5411
|
+
listGameTrades: GameTrade[];
|
|
4533
5412
|
listInsiderRadar: SuspiciousTrade[];
|
|
4534
5413
|
listLargePositions: LargePosition[];
|
|
4535
5414
|
listLargeTradeCounterpartyExecutions: CounterpartyAnalysis;
|
|
@@ -4537,6 +5416,7 @@ export interface OperationData {
|
|
|
4537
5416
|
listLargeTradeHistory: LargeTrade[];
|
|
4538
5417
|
listLargeTrades: LargeTrade[];
|
|
4539
5418
|
listLeaderboard: LeaderboardEntry[];
|
|
5419
|
+
listLeaderboardLeagues: LeaderboardLeagues;
|
|
4540
5420
|
listPositions: Position[];
|
|
4541
5421
|
listSharpMoneyFlows: SmartMoneyFlowMarket[];
|
|
4542
5422
|
listSmartMoneyFlows: SmartMoneyFlowMarket[];
|
|
@@ -4693,6 +5573,16 @@ export interface OperationQuery {
|
|
|
4693
5573
|
};
|
|
4694
5574
|
getAccountIdentity: Record<string, never>;
|
|
4695
5575
|
getApiDiscovery: Record<string, never>;
|
|
5576
|
+
getCategoryLeaderboard: {
|
|
5577
|
+
/** Keep wallets that traded in the category within this window. all (the default) keeps every ranked wallet. */
|
|
5578
|
+
active_within?: "all" | "7d" | "30d" | "90d";
|
|
5579
|
+
/** Independent events a wallet needs in the category to be listed. The site offers 0, 50, 100 and 250. Clamped to 0..1000000. */
|
|
5580
|
+
min_events?: number;
|
|
5581
|
+
/** Maximum number of leaders to return. Out-of-range values are clamped to 1..100. */
|
|
5582
|
+
limit?: number;
|
|
5583
|
+
/** Opaque cel_ pagination cursor from a prior response. It binds the lower-bound/independent-event/wallet boundary to the committed category-skill ranking and to the slug, active_within and min_events of the request that issued it; a cursor from another filter is 400 on cursor, and one issued before the ranking refreshed is 400 with error.reason=cursor_expired. */
|
|
5584
|
+
cursor?: string;
|
|
5585
|
+
};
|
|
4696
5586
|
getCombo: Record<string, never>;
|
|
4697
5587
|
getCombosSummary: Record<string, never>;
|
|
4698
5588
|
getCoverage: Record<string, never>;
|
|
@@ -4751,6 +5641,13 @@ export interface OperationQuery {
|
|
|
4751
5641
|
expand?: "trade"[];
|
|
4752
5642
|
};
|
|
4753
5643
|
getGame: Record<string, never>;
|
|
5644
|
+
getGameHolders: {
|
|
5645
|
+
/** 1 to 25 condition_id values of this game's markets, comma-separated. The key may also repeat (condition_ids=a&condition_ids=b). A raw provider condition_id or the mkt_-prefixed market id. */
|
|
5646
|
+
condition_ids: string[];
|
|
5647
|
+
/** Holders per market. Out-of-range values are clamped to 1..100. */
|
|
5648
|
+
limit?: number;
|
|
5649
|
+
};
|
|
5650
|
+
getGameSharpMoney: Record<string, never>;
|
|
4754
5651
|
getHealth: Record<string, never>;
|
|
4755
5652
|
getInsiderRadarFlag: Record<string, never>;
|
|
4756
5653
|
getLargeTrade: Record<string, never>;
|
|
@@ -4787,6 +5684,14 @@ export interface OperationQuery {
|
|
|
4787
5684
|
/** Include trust metadata for current_price and spread_bps. Repeatable: trust. */
|
|
4788
5685
|
expand?: "trust"[];
|
|
4789
5686
|
};
|
|
5687
|
+
getMarketTopHolders: {
|
|
5688
|
+
/** Maximum holders per outcome. Out-of-range values are clamped to 1..100. `totals` covers the whole sample whatever the limit. */
|
|
5689
|
+
limit?: number;
|
|
5690
|
+
};
|
|
5691
|
+
getMarketWalletsInOut: {
|
|
5692
|
+
/** The window the nets are summed over, ending at the read's clock: 24h (the default) or 7d. */
|
|
5693
|
+
window?: "24h" | "7d";
|
|
5694
|
+
};
|
|
4790
5695
|
getMonthlyReportSnapshot: {
|
|
4791
5696
|
/** UTC report month in YYYY-MM format. A month that ends before 2024-03-01, the first day report data covers, or starts after tomorrow UTC returns 400 bad_request with error.param=month. */
|
|
4792
5697
|
month: string;
|
|
@@ -4795,6 +5700,7 @@ export interface OperationQuery {
|
|
|
4795
5700
|
getPickOfTheDayArchive: Record<string, never>;
|
|
4796
5701
|
getPickOfTheDayLedger: Record<string, never>;
|
|
4797
5702
|
getPickOfTheDayLedgerEntry: Record<string, never>;
|
|
5703
|
+
getPickOfTheDayStats: Record<string, never>;
|
|
4798
5704
|
getPlatforms: Record<string, never>;
|
|
4799
5705
|
getPositionTimeline: {
|
|
4800
5706
|
/** Market condition_id. One timeline per (trader, market). */
|
|
@@ -4818,6 +5724,20 @@ export interface OperationQuery {
|
|
|
4818
5724
|
/** Period token for the granularity. daily: UTC date YYYY-MM-DD. weekly: ISO week YYYY-WW for a durable canonical snapshot, or a from,to YYYY-MM-DD pair for an exact ephemeral range limited to 31 inclusive UTC days. A wider explicit range returns 400 invalid_query. monthly: UTC month YYYY-MM. A period that ends before 2024-03-01, the first day report data covers, or starts after tomorrow UTC returns 400 bad_request with error.param=period. */
|
|
4819
5725
|
period: string;
|
|
4820
5726
|
};
|
|
5727
|
+
getResolutionReport: {
|
|
5728
|
+
/** UTC report date in YYYY-MM-DD format, no later than today UTC. Any other value returns 400 bad_request with error.param=date. */
|
|
5729
|
+
date: string;
|
|
5730
|
+
/** `totals` returns the counts without `markets`. Any other value than full or totals returns 400 bad_request with error.param=view. */
|
|
5731
|
+
view?: "full" | "totals";
|
|
5732
|
+
};
|
|
5733
|
+
getSportLeaderboard: {
|
|
5734
|
+
/** A league slug of the sport, for example premier-league or cs2, from GET /api/v1/leaderboard/leagues. Omit it for the sport board. */
|
|
5735
|
+
league?: string;
|
|
5736
|
+
/** Ranking axis. Any other value returns 400 bad_request with error.param=sort. */
|
|
5737
|
+
sort?: "edge" | "pnl" | "win_rate";
|
|
5738
|
+
/** Rows to return from the top of the board. Out-of-range values are clamped to 1..100. */
|
|
5739
|
+
limit?: number;
|
|
5740
|
+
};
|
|
4821
5741
|
getStream: {
|
|
4822
5742
|
/** Query-string fallback for the Last-Event-ID resume cursor when the client cannot set the request header. Numeric cluster-shared sequence id; non-numeric or absent attaches live with no replay. A future or expired id emits resync. */
|
|
4823
5743
|
last_event_id?: string;
|
|
@@ -4881,6 +5801,7 @@ export interface OperationQuery {
|
|
|
4881
5801
|
};
|
|
4882
5802
|
getWhaleDatasetStatus: Record<string, never>;
|
|
4883
5803
|
getWhaleTrade: Record<string, never>;
|
|
5804
|
+
listCategoryLeaders: Record<string, never>;
|
|
4884
5805
|
listComboFills: {
|
|
4885
5806
|
/** CSV of pending, won, or lost; all clears the filter. Unknown results appear only in unfiltered lists. */
|
|
4886
5807
|
result?: string;
|
|
@@ -4905,21 +5826,45 @@ export interface OperationQuery {
|
|
|
4905
5826
|
/** Offset for ranked largest or payout ordering; use returned next_offset. */
|
|
4906
5827
|
offset?: number;
|
|
4907
5828
|
};
|
|
5829
|
+
listGameMarkets: {
|
|
5830
|
+
/** Comma-separated provider market types to keep, case-insensitive: spreads, totals, points, first_half_totals. Omitted keeps every type. An unknown type returns an empty page, not a 400; families lists the event's types. */
|
|
5831
|
+
sports_market_type?: string;
|
|
5832
|
+
/** active, closed or all. closed means the provider closed the market or it resolved. */
|
|
5833
|
+
status?: "active" | "closed" | "all";
|
|
5834
|
+
/** Page size. Out-of-range values are clamped to 1..100. */
|
|
5835
|
+
limit?: number;
|
|
5836
|
+
/** Opaque gmk_v1_ cursor from next_cursor, sent with the same filters. It pins the page position (sports_market_type, line, condition_id), not a snapshot. A cursor this endpoint did not issue returns 400 with error.param=cursor. */
|
|
5837
|
+
cursor?: string;
|
|
5838
|
+
/** sharp_money adds each row's sharp_money: the game page's per-line split, side USD and S, A and B wallet counts per outcome. One read for the event whatever the page size; the request costs 5 instead of 2. Pro and Max. Repeatable: sharp_money. */
|
|
5839
|
+
expand?: "sharp_money"[];
|
|
5840
|
+
/** Backward-compatible alias for expand. Repeatable: sharp_money. */
|
|
5841
|
+
"expand[]"?: "sharp_money"[];
|
|
5842
|
+
};
|
|
4908
5843
|
listGames: {
|
|
4909
5844
|
/** Canonical sport bucket, case-insensitive, with - and _ read as a space: table-tennis and Table Tennis are the same bucket. Omit for every covered sport. A bucket this deployment does not serve returns an empty page. */
|
|
4910
5845
|
sport?: string;
|
|
4911
|
-
/** League tag, case-insensitive, as coverage.leagues spells it: nfl, epl, cs2, euroleague. EuroLeague games use sport=Basketball and league=euroleague. Omit for every league inside the selected sports. */
|
|
5846
|
+
/** League tag, case-insensitive, as coverage.leagues spells it: nfl, epl, cs2, euroleague, cbb, cwbb. EuroLeague games use sport=Basketball and league=euroleague; NCAA men's and women's college basketball games use sport=Basketball with league=cbb and league=cwbb. Omit for every league inside the selected sports. */
|
|
4912
5847
|
league?: string;
|
|
4913
|
-
/** Keep only games in this state. A value outside the enum returns an empty page. */
|
|
5848
|
+
/** Keep only games in this state. ended, cancelled and postponed also list finished games that have left the live board, read from their stored records, for kickoffs within starts_after..starts_before (default: the 7 days before now). Without status, or with any other state, the list is the live and upcoming board. A value outside the enum returns an empty page. */
|
|
4914
5849
|
status?: "scheduled" | "live" | "paused" | "ended" | "postponed" | "cancelled" | "suspended" | "delayed" | "unknown";
|
|
4915
|
-
/** RFC 3339 instant. Keep only games whose kickoff is at or after it. Games with no published kickoff are excluded whenever either bound is set. */
|
|
5850
|
+
/** RFC 3339 instant. Keep only games whose kickoff is at or after it. Games with no published kickoff are excluded whenever either bound is set. With a finished status, the stored games' look-back starts here; omitted, it starts 7 days before starts_before, and nothing caps an earlier value. */
|
|
4916
5851
|
starts_after?: string;
|
|
4917
5852
|
/** RFC 3339 instant. Keep only games whose kickoff is at or before it. Must be at or after starts_after. */
|
|
4918
5853
|
starts_before?: string;
|
|
5854
|
+
/** Which games to read. all, the default, lists the whole covered catalog, which can start with games the provider still holds open weeks after kickoff. now lists what is on now: every game the provider reports in play (live or paused), plus any other game whose kickoff was at most 3 hours ago or is still to come; ended, postponed and cancelled games are left out, and a game with no published kickoff stays and sorts last. Combines with every other filter. A value other than all or now returns 400 invalid_query with error.param=window. */
|
|
5855
|
+
window?: "all" | "now";
|
|
4919
5856
|
/** Page size. Out-of-range values are clamped to 1..100. */
|
|
4920
5857
|
limit?: number;
|
|
4921
|
-
/** Opaque gms_v1_ cursor from next_cursor. It pins the page position (kickoff and event_slug), not a snapshot: the catalog is live, so a game added or removed between pages moves with it. A cursor this endpoint did not issue returns 400 with error.param=cursor. */
|
|
5858
|
+
/** Opaque gms_v1_ cursor from next_cursor. It pins the page position (kickoff and event_slug), not a snapshot: the catalog is live, so a game added or removed between pages moves with it. With a finished status, a page that spent its read budget carries a cursor past everything it read, which may be past the last game it returned. A cursor this endpoint did not issue returns 400 with error.param=cursor. */
|
|
4922
5859
|
cursor?: string;
|
|
5860
|
+
/** Backward-compatible alias for expand. Repeatable: sharp_money. */
|
|
5861
|
+
"expand[]"?: "sharp_money"[];
|
|
5862
|
+
/** sharp_money adds each game's sharp_money, the GameSharpMoney object GET /api/v1/games/{event_slug}/sharp-money returns, read from the sport board's cached aggregate: one board read per sport on the page, never a per-game compute. A game the board did not evaluate carries status not_computed (read the per-game route for it); a sport whose aggregate could not be read carries status unavailable while the rest of the page is served. Adds 3 to the request cost. Repeatable. */
|
|
5863
|
+
expand?: "sharp_money"[];
|
|
5864
|
+
};
|
|
5865
|
+
listGameTrades: {
|
|
5866
|
+
/** Newest fills to return. Out-of-range values are clamped to 1..200. */
|
|
5867
|
+
limit?: number;
|
|
4923
5868
|
};
|
|
4924
5869
|
listInsiderRadar: {
|
|
4925
5870
|
/** Maximum number of radar flags to return. Out-of-range values are clamped to 1..100. */
|
|
@@ -4990,6 +5935,8 @@ export interface OperationQuery {
|
|
|
4990
5935
|
min_market_volume_share?: number;
|
|
4991
5936
|
/** Order of the returned page. recent is newest first and is the default. market_volume_share ranks by each trade's share of its market's traded volume, biggest first, with a trade whose share is unavailable last. That ranking reads from, or the last 30 days when from is omitted, for the same reason. A cursor is bound to the order it was minted in, so a continuation cannot cross from one order into the other. */
|
|
4992
5937
|
sort?: "recent" | "market_volume_share";
|
|
5938
|
+
/** Only the large trades in one game: every market of the game behind this event slug, the moneyline, spreads, totals and props, as GET /api/v1/games/{event_slug}/trades reads them. Matched case-insensitively. Newest first only (sort=market_volume_share answers 400), and cannot be combined with condition_id (400). An unknown slug answers 404 not_found with error.param event_slug. */
|
|
5939
|
+
event_slug?: string;
|
|
4993
5940
|
};
|
|
4994
5941
|
listLargeTrades: {
|
|
4995
5942
|
/** Maximum number of recent large trades to return. Out-of-range values are clamped to 1..100. */
|
|
@@ -5010,17 +5957,28 @@ export interface OperationQuery {
|
|
|
5010
5957
|
sort?: "recent" | "market_volume_share";
|
|
5011
5958
|
/** Return only the trades recorded after this one. Pass the id of a large trade this API returned (wt_<n>, or the bare integer). The answer keeps the list shape and newest-first order, and next_cursor pages within it. After means commit order: a trade recorded late with an earlier traded_at is still returned, and a trade whose write has not committed yet is returned on a later poll, never skipped. To poll, send the id of the first trade on the first page of your last answer that had trades, with If-None-Match set to the ETag you last received; when nothing new was recorded the answer is 304 with an empty body. A late trade can come back once, so deduplicate on id. Only with sort=recent. An id that names no trade, or one more than 10000 trades behind the newest, answers 400 with error.param since; request the list without since and continue from its first trade. */
|
|
5012
5959
|
since?: string;
|
|
5960
|
+
/** Only this market's large trades: an exact raw provider condition_id. The page is read from the market's own index, newest first, and pages with cursor; it cannot be combined with since or with event_slug (400). An unknown market returns an empty list. */
|
|
5961
|
+
condition_id?: string;
|
|
5962
|
+
/** Only the large trades in one game: every market of the game behind this event slug, the moneyline, spreads, totals and props, as GET /api/v1/games/{event_slug}/trades reads them. Matched case-insensitively. Newest first only (sort=market_volume_share answers 400), pages with cursor, and cannot be combined with since or with condition_id (400). An unknown slug answers 404 not_found with error.param event_slug. */
|
|
5963
|
+
event_slug?: string;
|
|
5013
5964
|
};
|
|
5014
5965
|
listLeaderboard: {
|
|
5015
5966
|
/** Maximum number of ranked traders to return. Out-of-range values are clamped to 1..100. */
|
|
5016
5967
|
limit?: number;
|
|
5017
|
-
/** Opaque lbv1_ pagination cursor from a prior response. It binds the finite score/address boundary to the committed leaderboard generation and the effective category/strategy filters;
|
|
5968
|
+
/** Opaque lbv1_ pagination cursor from a prior response. It binds the finite score/address boundary to the committed leaderboard generation and the effective category/strategy filters, and on a sorted page to its sort, dir and activity. A cursor from another sort or dir is a 400 bad_request on cursor; one from another activity, category, strategy or generation is cursor_expired. Legacy, malformed, non-finite, and unsupported-version cursors are rejected. */
|
|
5018
5969
|
cursor?: string;
|
|
5019
5970
|
/** Filter by category: a sport or esports bucket. Values are matched to canonical category buckets: league values fold into their sport (NBA and NCAAB into Basketball, NFL into Football). Mapped buckets are case-insensitive; passthrough buckets (Cricket, Sports) match case-sensitively against the provider-native bucket key, so use exact casing. Sports and esports only (#27306): a category outside them returns 400 bad_request with param category and names the accepted buckets. */
|
|
5020
5971
|
category?: string;
|
|
5021
5972
|
/** Filter by observed trading style. Current styles: two_sided, category_focused, high_activity, diversified, mixed, unclassified. Current styles count the wallet's sports and esports markets only. The ten archetype keys retired on 2026-10-01 (accumulator, algo_trader, arbitrageur, directional, event_driven, market_maker, momentum, scalper, speculator, swing_trader) are still accepted and match no wallet. Style describes recorded behavior; grade measures performance. */
|
|
5022
5973
|
strategy?: "category_focused" | "diversified" | "high_activity" | "mixed" | "two_sided" | "unclassified";
|
|
5023
|
-
|
|
5974
|
+
/** Order of the list, the sort columns of the site's leaderboard (/skill-leaderboard). rank (default) is the board's own order, the rank the site and the trader profile show. grade orders by score. volume orders by sports and esports USD volume, the figure GET /api/v1/trader/{address} serves as stats.total_volume. predictions orders by markets_traded. pnl orders by in_scope.realized_pnl. win_rate orders by win_rate among wallets with at least 5 decided sports and esports markets; a wallet with fewer sorts as having none. edge orders by price_edge.edge among wallets whose price_edge.status is ranked and that carry no price_edge.hold; any other wallet sorts as having none. The site's Edge column ranks those same wallets by their edge pulled toward the sports and esports average, a figure the API does not send, so the two orders can differ. A wallet without the value sorts as the lowest, so last in the natural direction and first with the direction reversed. Ties fall to address ascending. With ?category= a sort still orders by these whole-record figures; the category only decides which wallets are listed. Since 2026-11-02 (#32237; edge, #32270). */
|
|
5975
|
+
sort?: "rank" | "grade" | "volume" | "predictions" | "pnl" | "win_rate" | "edge";
|
|
5976
|
+
/** Direction of sort. Omitted, each sort reads in its natural direction: rank 1 first for rank (asc), largest first for every other sort (desc). The opposite value reverses the list. Since 2026-11-02 (#32237). */
|
|
5977
|
+
dir?: "asc" | "desc";
|
|
5978
|
+
/** Limit the list to wallets by recent trading, the site leaderboard's split. active: the wallet's last trade, as its current grade recorded it and aged to today, is 30 days old or less. inactive: older than 30 days, or no trade on record. all (default): every ranked wallet. Since 2026-11-02 (#32237). */
|
|
5979
|
+
activity?: "all" | "active" | "inactive";
|
|
5980
|
+
};
|
|
5981
|
+
listLeaderboardLeagues: Record<string, never>;
|
|
5024
5982
|
listPositions: {
|
|
5025
5983
|
/** Maximum number of current positions to return. Out-of-range values are clamped to 1..100. */
|
|
5026
5984
|
limit?: number;
|
|
@@ -5058,6 +6016,10 @@ export interface OperationQuery {
|
|
|
5058
6016
|
min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
5059
6017
|
/** Optional post-aggregate flow direction filter. */
|
|
5060
6018
|
direction?: "YES" | "NO";
|
|
6019
|
+
/** Only this market's flow: an exact raw provider condition_id. Cannot be combined with event_slug (400). An unknown market returns an empty list. */
|
|
6020
|
+
condition_id?: string;
|
|
6021
|
+
/** Only the markets of one game: every market of the game behind this event slug, the moneyline, spreads, totals and props, as GET /api/v1/games/{event_slug}/trades reads them, ranked as the unfiltered list ranks. Matched case-insensitively; cannot be combined with condition_id (400). An unknown slug answers 404 not_found with error.param event_slug. */
|
|
6022
|
+
event_slug?: string;
|
|
5061
6023
|
};
|
|
5062
6024
|
listSmartMoneyFlows: {
|
|
5063
6025
|
/** Lookback window for grade-filtered whale flow aggregation. */
|
|
@@ -5074,6 +6036,10 @@ export interface OperationQuery {
|
|
|
5074
6036
|
min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
5075
6037
|
/** Optional post-aggregate flow direction filter. */
|
|
5076
6038
|
direction?: "YES" | "NO";
|
|
6039
|
+
/** Only this market's flow: an exact raw provider condition_id. Cannot be combined with event_slug (400). An unknown market returns an empty list. */
|
|
6040
|
+
condition_id?: string;
|
|
6041
|
+
/** Only the markets of one game: every market of the game behind this event slug, the moneyline, spreads, totals and props, as GET /api/v1/games/{event_slug}/trades reads them, ranked as the unfiltered list ranks. Matched case-insensitively; cannot be combined with condition_id (400). An unknown slug answers 404 not_found with error.param event_slug. */
|
|
6042
|
+
event_slug?: string;
|
|
5077
6043
|
};
|
|
5078
6044
|
listSuspiciousTrades: {
|
|
5079
6045
|
/** Maximum number of suspicious trades to return. Out-of-range values are clamped to 1..100. */
|
|
@@ -5146,6 +6112,8 @@ export interface OperationQuery {
|
|
|
5146
6112
|
min_market_volume_share?: number;
|
|
5147
6113
|
/** Order of the returned page. recent is newest first and is the default. market_volume_share ranks by each trade's share of its market's traded volume, biggest first, with a trade whose share is unavailable last. That ranking reads from, or the last 30 days when from is omitted, for the same reason. A cursor is bound to the order it was minted in, so a continuation cannot cross from one order into the other. */
|
|
5148
6114
|
sort?: "recent" | "market_volume_share";
|
|
6115
|
+
/** Only the large trades in one game: every market of the game behind this event slug, the moneyline, spreads, totals and props, as GET /api/v1/games/{event_slug}/trades reads them. Matched case-insensitively. Newest first only (sort=market_volume_share answers 400), and cannot be combined with condition_id (400). An unknown slug answers 404 not_found with error.param event_slug. */
|
|
6116
|
+
event_slug?: string;
|
|
5149
6117
|
};
|
|
5150
6118
|
listWhaleTrades: {
|
|
5151
6119
|
/** Maximum number of recent large trades to return. Out-of-range values are clamped to 1..100. */
|
|
@@ -5166,6 +6134,10 @@ export interface OperationQuery {
|
|
|
5166
6134
|
sort?: "recent" | "market_volume_share";
|
|
5167
6135
|
/** Return only the trades recorded after this one. Pass the id of a large trade this API returned (wt_<n>, or the bare integer). The answer keeps the list shape and newest-first order, and next_cursor pages within it. After means commit order: a trade recorded late with an earlier traded_at is still returned, and a trade whose write has not committed yet is returned on a later poll, never skipped. To poll, send the id of the first trade on the first page of your last answer that had trades, with If-None-Match set to the ETag you last received; when nothing new was recorded the answer is 304 with an empty body. A late trade can come back once, so deduplicate on id. Only with sort=recent. An id that names no trade, or one more than 10000 trades behind the newest, answers 400 with error.param since; request the list without since and continue from its first trade. */
|
|
5168
6136
|
since?: string;
|
|
6137
|
+
/** Only this market's large trades: an exact raw provider condition_id. The page is read from the market's own index, newest first, and pages with cursor; it cannot be combined with since or with event_slug (400). An unknown market returns an empty list. */
|
|
6138
|
+
condition_id?: string;
|
|
6139
|
+
/** Only the large trades in one game: every market of the game behind this event slug, the moneyline, spreads, totals and props, as GET /api/v1/games/{event_slug}/trades reads them. Matched case-insensitively. Newest first only (sort=market_volume_share answers 400), pages with cursor, and cannot be combined with since or with condition_id (400). An unknown slug answers 404 not_found with error.param event_slug. */
|
|
6140
|
+
event_slug?: string;
|
|
5169
6141
|
};
|
|
5170
6142
|
prepareWebhookSecret: Record<string, never>;
|
|
5171
6143
|
redeliverWebhookDelivery: Record<string, never>;
|
|
@@ -5179,7 +6151,7 @@ export interface OperationQuery {
|
|
|
5179
6151
|
limit?: number;
|
|
5180
6152
|
};
|
|
5181
6153
|
searchMarkets: {
|
|
5182
|
-
/** Search query. Must be
|
|
6154
|
+
/** Search query. Must be 2-512 characters before whitespace trimming and hold at least 2 letters or digits after trimming; a query with fewer letters or digits (a, 7, ?) returns 400 bad_request with param q (#32309). */
|
|
5183
6155
|
q: string;
|
|
5184
6156
|
/** Maximum number of matching markets to return. Out-of-range values are clamped to 1..100. */
|
|
5185
6157
|
limit?: number;
|
|
@@ -5230,6 +6202,10 @@ export interface OperationPath {
|
|
|
5230
6202
|
exploreMarkets: Record<string, never>;
|
|
5231
6203
|
getAccountIdentity: Record<string, never>;
|
|
5232
6204
|
getApiDiscovery: Record<string, never>;
|
|
6205
|
+
getCategoryLeaderboard: {
|
|
6206
|
+
/** The category slug, for example soccer, basketball, tennis or esports, as GET /api/v1/leaderboard/categories lists it lowercased. Matched case-insensitively. */
|
|
6207
|
+
slug: string;
|
|
6208
|
+
};
|
|
5233
6209
|
getCombo: {
|
|
5234
6210
|
/** Combo identifier: 0x followed by 62 lowercase hex characters. This differs from a binary market condition ID. */
|
|
5235
6211
|
condition_id: string;
|
|
@@ -5243,6 +6219,14 @@ export interface OperationPath {
|
|
|
5243
6219
|
/** The game's event slug, for example nfl-buf-nyj-2026-09-22. Matched case-insensitively. */
|
|
5244
6220
|
event_slug: string;
|
|
5245
6221
|
};
|
|
6222
|
+
getGameHolders: {
|
|
6223
|
+
/** The game's event slug from GET /api/v1/games, for example nba-bos-orl-2026-11-01. Matched case-insensitively. */
|
|
6224
|
+
event_slug: string;
|
|
6225
|
+
};
|
|
6226
|
+
getGameSharpMoney: {
|
|
6227
|
+
/** The game's event slug, for example nba-bos-orl-2026-11-01. Matched case-insensitively; the response carries the canonical slug. */
|
|
6228
|
+
event_slug: string;
|
|
6229
|
+
};
|
|
5246
6230
|
getHealth: Record<string, never>;
|
|
5247
6231
|
getInsiderRadarFlag: {
|
|
5248
6232
|
/** Raw whale_alerts.id or rf_-prefixed radar flag id. */
|
|
@@ -5276,6 +6260,14 @@ export interface OperationPath {
|
|
|
5276
6260
|
/** Market condition ID. Accepts the raw provider-backed condition_id returned by /api/v1/markets/search or /api/v1/markets/explore, or the mkt_-prefixed market.id emitted by V1 responses. */
|
|
5277
6261
|
condition_id: string;
|
|
5278
6262
|
};
|
|
6263
|
+
getMarketTopHolders: {
|
|
6264
|
+
/** Market condition ID. Accepts the raw provider-backed condition_id returned by /api/v1/markets/search or the mkt_-prefixed market.id emitted by V1 responses. */
|
|
6265
|
+
condition_id: string;
|
|
6266
|
+
};
|
|
6267
|
+
getMarketWalletsInOut: {
|
|
6268
|
+
/** Market condition ID. Accepts the raw provider-backed condition_id returned by /api/v1/markets/search or /api/v1/markets/explore, or the mkt_-prefixed market.id emitted by V1 responses. */
|
|
6269
|
+
condition_id: string;
|
|
6270
|
+
};
|
|
5279
6271
|
getMonthlyReportSnapshot: Record<string, never>;
|
|
5280
6272
|
getPickOfTheDay: Record<string, never>;
|
|
5281
6273
|
getPickOfTheDayArchive: Record<string, never>;
|
|
@@ -5284,6 +6276,7 @@ export interface OperationPath {
|
|
|
5284
6276
|
/** Stable positive pick row id as canonical decimal text. */
|
|
5285
6277
|
pick_id: string;
|
|
5286
6278
|
};
|
|
6279
|
+
getPickOfTheDayStats: Record<string, never>;
|
|
5287
6280
|
getPlatforms: Record<string, never>;
|
|
5288
6281
|
getPositionTimeline: {
|
|
5289
6282
|
/** Trader identity: 0x... wallet address, username, trd_-prefixed trader id, bare integer traders.id, or @username. Resolved with precedence @username -> wallet -> trd_ -> integer -> username (a leading @ forces a username lookup, for all-digit usernames); wallet matching is case-insensitive. */
|
|
@@ -5294,6 +6287,11 @@ export interface OperationPath {
|
|
|
5294
6287
|
trader: string;
|
|
5295
6288
|
};
|
|
5296
6289
|
getReports: Record<string, never>;
|
|
6290
|
+
getResolutionReport: Record<string, never>;
|
|
6291
|
+
getSportLeaderboard: {
|
|
6292
|
+
/** The sport slug, for example soccer, basketball, football or esports. Matched case-insensitively. A league or title alias such as nba, epl or cs2 reads its sport's board, and the body's sport is that board's slug; pass league for one league's board. */
|
|
6293
|
+
sport: string;
|
|
6294
|
+
};
|
|
5297
6295
|
getStream: Record<string, never>;
|
|
5298
6296
|
getSuspiciousTrade: {
|
|
5299
6297
|
/** Raw whale_alerts.id or rf_-prefixed suspicious trade id. */
|
|
@@ -5351,8 +6349,17 @@ export interface OperationPath {
|
|
|
5351
6349
|
/** Raw whale_alerts.id or wt_-prefixed whale trade id. */
|
|
5352
6350
|
id: string;
|
|
5353
6351
|
};
|
|
6352
|
+
listCategoryLeaders: Record<string, never>;
|
|
5354
6353
|
listComboFills: Record<string, never>;
|
|
6354
|
+
listGameMarkets: {
|
|
6355
|
+
/** The event slug from GET /api/v1/games, GET /api/v1/games/{event_slug} or a markets/search result's event_slug, for example nba-bos-orl-2026-11-01. Matched case-insensitively. */
|
|
6356
|
+
event_slug: string;
|
|
6357
|
+
};
|
|
5355
6358
|
listGames: Record<string, never>;
|
|
6359
|
+
listGameTrades: {
|
|
6360
|
+
/** The game's event slug, for example nfl-buf-nyj-2026-09-22. Matched case-insensitively. */
|
|
6361
|
+
event_slug: string;
|
|
6362
|
+
};
|
|
5356
6363
|
listInsiderRadar: Record<string, never>;
|
|
5357
6364
|
listLargePositions: Record<string, never>;
|
|
5358
6365
|
listLargeTradeCounterpartyExecutions: {
|
|
@@ -5368,6 +6375,7 @@ export interface OperationPath {
|
|
|
5368
6375
|
listLargeTradeHistory: Record<string, never>;
|
|
5369
6376
|
listLargeTrades: Record<string, never>;
|
|
5370
6377
|
listLeaderboard: Record<string, never>;
|
|
6378
|
+
listLeaderboardLeagues: Record<string, never>;
|
|
5371
6379
|
listPositions: Record<string, never>;
|
|
5372
6380
|
listSharpMoneyFlows: Record<string, never>;
|
|
5373
6381
|
listSmartMoneyFlows: Record<string, never>;
|
|
@@ -5465,6 +6473,7 @@ export interface OperationBody {
|
|
|
5465
6473
|
exploreMarkets: never;
|
|
5466
6474
|
getAccountIdentity: never;
|
|
5467
6475
|
getApiDiscovery: never;
|
|
6476
|
+
getCategoryLeaderboard: never;
|
|
5468
6477
|
getCombo: never;
|
|
5469
6478
|
getCombosSummary: never;
|
|
5470
6479
|
getCoverage: never;
|
|
@@ -5472,6 +6481,8 @@ export interface OperationBody {
|
|
|
5472
6481
|
getEdgeHunter: never;
|
|
5473
6482
|
getEventReplaySince: never;
|
|
5474
6483
|
getGame: never;
|
|
6484
|
+
getGameHolders: never;
|
|
6485
|
+
getGameSharpMoney: never;
|
|
5475
6486
|
getHealth: never;
|
|
5476
6487
|
getInsiderRadarFlag: never;
|
|
5477
6488
|
getLargeTrade: never;
|
|
@@ -5481,15 +6492,20 @@ export interface OperationBody {
|
|
|
5481
6492
|
getMarketHolders: never;
|
|
5482
6493
|
getMarketIntel: never;
|
|
5483
6494
|
getMarketSnapshot: never;
|
|
6495
|
+
getMarketTopHolders: never;
|
|
6496
|
+
getMarketWalletsInOut: never;
|
|
5484
6497
|
getMonthlyReportSnapshot: never;
|
|
5485
6498
|
getPickOfTheDay: never;
|
|
5486
6499
|
getPickOfTheDayArchive: never;
|
|
5487
6500
|
getPickOfTheDayLedger: never;
|
|
5488
6501
|
getPickOfTheDayLedgerEntry: never;
|
|
6502
|
+
getPickOfTheDayStats: never;
|
|
5489
6503
|
getPlatforms: never;
|
|
5490
6504
|
getPositionTimeline: never;
|
|
5491
6505
|
getPositionTimelineById: never;
|
|
5492
6506
|
getReports: never;
|
|
6507
|
+
getResolutionReport: never;
|
|
6508
|
+
getSportLeaderboard: never;
|
|
5493
6509
|
getStream: never;
|
|
5494
6510
|
getSuspiciousTrade: never;
|
|
5495
6511
|
getTrader: never;
|
|
@@ -5506,8 +6522,11 @@ export interface OperationBody {
|
|
|
5506
6522
|
getWeeklyReportSnapshot: never;
|
|
5507
6523
|
getWhaleDatasetStatus: never;
|
|
5508
6524
|
getWhaleTrade: never;
|
|
6525
|
+
listCategoryLeaders: never;
|
|
5509
6526
|
listComboFills: never;
|
|
6527
|
+
listGameMarkets: never;
|
|
5510
6528
|
listGames: never;
|
|
6529
|
+
listGameTrades: never;
|
|
5511
6530
|
listInsiderRadar: never;
|
|
5512
6531
|
listLargePositions: never;
|
|
5513
6532
|
listLargeTradeCounterpartyExecutions: never;
|
|
@@ -5515,6 +6534,7 @@ export interface OperationBody {
|
|
|
5515
6534
|
listLargeTradeHistory: never;
|
|
5516
6535
|
listLargeTrades: never;
|
|
5517
6536
|
listLeaderboard: never;
|
|
6537
|
+
listLeaderboardLeagues: never;
|
|
5518
6538
|
listPositions: never;
|
|
5519
6539
|
listSharpMoneyFlows: never;
|
|
5520
6540
|
listSmartMoneyFlows: never;
|
|
@@ -5620,6 +6640,15 @@ export interface OperationResponse {
|
|
|
5620
6640
|
data: OperationData["getApiDiscovery"];
|
|
5621
6641
|
meta: ResponseMeta;
|
|
5622
6642
|
};
|
|
6643
|
+
getCategoryLeaderboard: {
|
|
6644
|
+
object: "list";
|
|
6645
|
+
data: OperationData["getCategoryLeaderboard"];
|
|
6646
|
+
has_more: boolean;
|
|
6647
|
+
next_cursor?: string;
|
|
6648
|
+
/** Wallets in the category whose edge lower bound is above zero, Wallets in the full walk across every page: those in the category, under this request's active_within and min_events, whose edge lower bound is above zero. The same on every page. */
|
|
6649
|
+
total?: number;
|
|
6650
|
+
meta: ResponseMeta;
|
|
6651
|
+
};
|
|
5623
6652
|
getCombo: ComboResponse;
|
|
5624
6653
|
getCombosSummary: CombosSummaryResponse;
|
|
5625
6654
|
getCoverage: {
|
|
@@ -5647,6 +6676,16 @@ export interface OperationResponse {
|
|
|
5647
6676
|
as_of: string;
|
|
5648
6677
|
meta: ResponseMeta;
|
|
5649
6678
|
};
|
|
6679
|
+
getGameHolders: {
|
|
6680
|
+
object: "game_holders_batch";
|
|
6681
|
+
data: OperationData["getGameHolders"];
|
|
6682
|
+
meta: BatchResponseMeta;
|
|
6683
|
+
};
|
|
6684
|
+
getGameSharpMoney: {
|
|
6685
|
+
object: "game_sharp_money";
|
|
6686
|
+
data: OperationData["getGameSharpMoney"];
|
|
6687
|
+
meta: ResponseMeta;
|
|
6688
|
+
};
|
|
5650
6689
|
getHealth: {
|
|
5651
6690
|
object: "health";
|
|
5652
6691
|
data: OperationData["getHealth"];
|
|
@@ -5696,6 +6735,16 @@ export interface OperationResponse {
|
|
|
5696
6735
|
data: OperationData["getMarketSnapshot"];
|
|
5697
6736
|
meta: ResponseMeta;
|
|
5698
6737
|
};
|
|
6738
|
+
getMarketTopHolders: {
|
|
6739
|
+
object: "market_top_holders";
|
|
6740
|
+
data: OperationData["getMarketTopHolders"];
|
|
6741
|
+
meta: ResponseMeta;
|
|
6742
|
+
};
|
|
6743
|
+
getMarketWalletsInOut: {
|
|
6744
|
+
object: "market_wallets_in_out";
|
|
6745
|
+
data: OperationData["getMarketWalletsInOut"];
|
|
6746
|
+
meta: ResponseMeta;
|
|
6747
|
+
};
|
|
5699
6748
|
getMonthlyReportSnapshot: {
|
|
5700
6749
|
object: "report_snapshot";
|
|
5701
6750
|
data: OperationData["getMonthlyReportSnapshot"];
|
|
@@ -5721,6 +6770,11 @@ export interface OperationResponse {
|
|
|
5721
6770
|
data: OperationData["getPickOfTheDayLedgerEntry"];
|
|
5722
6771
|
meta: ResponseMeta;
|
|
5723
6772
|
};
|
|
6773
|
+
getPickOfTheDayStats: {
|
|
6774
|
+
object: "pick_of_the_day_stats";
|
|
6775
|
+
data: OperationData["getPickOfTheDayStats"];
|
|
6776
|
+
meta: ResponseMeta;
|
|
6777
|
+
};
|
|
5724
6778
|
getPlatforms: {
|
|
5725
6779
|
object: "platforms";
|
|
5726
6780
|
data: OperationData["getPlatforms"];
|
|
@@ -5749,6 +6803,16 @@ export interface OperationResponse {
|
|
|
5749
6803
|
data: OperationData["getReports"];
|
|
5750
6804
|
meta: ResponseMeta;
|
|
5751
6805
|
};
|
|
6806
|
+
getResolutionReport: {
|
|
6807
|
+
object: "resolution_report";
|
|
6808
|
+
data: OperationData["getResolutionReport"];
|
|
6809
|
+
meta: ResponseMeta;
|
|
6810
|
+
};
|
|
6811
|
+
getSportLeaderboard: {
|
|
6812
|
+
object: "sport_leaderboard";
|
|
6813
|
+
data: OperationData["getSportLeaderboard"];
|
|
6814
|
+
meta: ResponseMeta;
|
|
6815
|
+
};
|
|
5752
6816
|
getStream: string;
|
|
5753
6817
|
getSuspiciousTrade: {
|
|
5754
6818
|
object: "suspicious_trade";
|
|
@@ -5809,18 +6873,52 @@ export interface OperationResponse {
|
|
|
5809
6873
|
data: OperationData["getWhaleTrade"];
|
|
5810
6874
|
meta: ResponseMeta;
|
|
5811
6875
|
};
|
|
6876
|
+
listCategoryLeaders: {
|
|
6877
|
+
object: "list";
|
|
6878
|
+
data: OperationData["listCategoryLeaders"];
|
|
6879
|
+
has_more: boolean;
|
|
6880
|
+
next_cursor?: string;
|
|
6881
|
+
/** Number of rows returned: up to three per category. */
|
|
6882
|
+
total?: number;
|
|
6883
|
+
meta: ResponseMeta;
|
|
6884
|
+
};
|
|
5812
6885
|
listComboFills: ComboFillsResponse;
|
|
6886
|
+
listGameMarkets: {
|
|
6887
|
+
data: OperationData["listGameMarkets"];
|
|
6888
|
+
event_slug: string;
|
|
6889
|
+
families: {
|
|
6890
|
+
active: number;
|
|
6891
|
+
markets: number;
|
|
6892
|
+
sports_market_type?: string;
|
|
6893
|
+
}[];
|
|
6894
|
+
has_more: boolean;
|
|
6895
|
+
meta: ResponseMeta;
|
|
6896
|
+
next_cursor?: string;
|
|
6897
|
+
object: string;
|
|
6898
|
+
};
|
|
5813
6899
|
listGames: {
|
|
5814
6900
|
object: "list";
|
|
5815
6901
|
data: OperationData["listGames"];
|
|
5816
6902
|
has_more: boolean;
|
|
5817
6903
|
/** Pass as cursor for the next page. Present only when has_more is true. */
|
|
5818
6904
|
next_cursor?: string;
|
|
5819
|
-
/** When this read assembled the catalog. Per-source vintage is on each game's freshness. */
|
|
6905
|
+
/** When this read assembled the catalog; with status ended, cancelled or postponed, when it read the stored records. Per-source vintage is on each game's freshness. */
|
|
5820
6906
|
as_of: string;
|
|
5821
6907
|
coverage: GamesCoverage;
|
|
5822
6908
|
meta: ResponseMeta;
|
|
5823
6909
|
};
|
|
6910
|
+
listGameTrades: {
|
|
6911
|
+
object: "list";
|
|
6912
|
+
/** Newest first. */
|
|
6913
|
+
data: OperationData["listGameTrades"];
|
|
6914
|
+
/** Always false: the list is the game's newest limit fills, not a walk. Poll again for newer fills. */
|
|
6915
|
+
has_more: boolean;
|
|
6916
|
+
/** The game the rows were read for, lowercased. */
|
|
6917
|
+
event_slug: string;
|
|
6918
|
+
/** true when the rows are the game's last complete read, served while its refresh runs. Read again in a few seconds for the live rows. */
|
|
6919
|
+
source_stale: boolean;
|
|
6920
|
+
meta: ResponseMeta;
|
|
6921
|
+
};
|
|
5824
6922
|
listInsiderRadar: {
|
|
5825
6923
|
object: "list";
|
|
5826
6924
|
data: OperationData["listInsiderRadar"];
|
|
@@ -5881,6 +6979,11 @@ export interface OperationResponse {
|
|
|
5881
6979
|
total?: number;
|
|
5882
6980
|
meta: ResponseMeta;
|
|
5883
6981
|
};
|
|
6982
|
+
listLeaderboardLeagues: {
|
|
6983
|
+
object: "leaderboard_leagues";
|
|
6984
|
+
data: OperationData["listLeaderboardLeagues"];
|
|
6985
|
+
meta: ResponseMeta;
|
|
6986
|
+
};
|
|
5884
6987
|
listPositions: {
|
|
5885
6988
|
object: "list";
|
|
5886
6989
|
data: OperationData["listPositions"];
|