@0xinsider/sdk 0.40.0 → 0.41.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/dist/schema.d.ts CHANGED
@@ -123,6 +123,14 @@ export type BatchGameHoldersItem = {
123
123
  data?: GameHoldersItem;
124
124
  error?: ApiErrorBody;
125
125
  };
126
+ export type BatchMarketCloseItem = {
127
+ /** Zero-based request index. Duplicate inputs keep separate result rows. */
128
+ index: number;
129
+ input: string;
130
+ status: "ok" | "error";
131
+ data?: MarketClose;
132
+ error?: ApiErrorBody;
133
+ };
126
134
  export type BatchMarketFlowItem = {
127
135
  /** Zero-based request index. Duplicate inputs keep separate result rows. */
128
136
  index: number;
@@ -1276,7 +1284,7 @@ export type Game = {
1276
1284
  /** Kickoff in UTC, as the provider supplied it. Omitted when the provider published none; coverage.schedule then reads unavailable. */
1277
1285
  scheduled_at?: string;
1278
1286
  status: GameStatus;
1279
- /** Both sides, in the provider's own order. For a team league the provider lists the home side first. Empty when the provider identified neither side. */
1287
+ /** Both sides, in the provider's own order. That order states no home or away: Polymarket lists the away team first in US leagues and the home team first in soccer. Read a market's side for home and away. Empty when the provider identified neither side. */
1280
1288
  competitors: GameCompetitor[];
1281
1289
  /** The esports series length, for example Bo3. Omitted for everything else. */
1282
1290
  series_format?: string;
@@ -1296,7 +1304,7 @@ export type Game = {
1296
1304
  };
1297
1305
  /** One side of the game. */
1298
1306
  export type GameCompetitor = {
1299
- /** The competitor's name as the provider gives it. */
1307
+ /** The team as its moneyline outcome names it, the same before, during and after the game (Jaguars, Penn). Where no outcome names the team, for example a soccer game's Yes/No win markets, the provider's full name (FC Bayern München). To identify a team, prefer provider_id. */
1300
1308
  name: string;
1301
1309
  /** The provider's league-scoped competitor id, as a string. Omitted when the provider has not identified this side; coverage.competitors then reads labels. */
1302
1310
  provider_id?: string;
@@ -1371,7 +1379,7 @@ export type GameMarket = {
1371
1379
  slug?: string;
1372
1380
  /** The provider's own market type, for example moneyline or spread. Omitted when the provider sent none. Not an enum: the provider owns this vocabulary and adds to it. */
1373
1381
  sports_market_type?: string;
1374
- /** Which side of the game this market's YES leg pays. Soccer 1X2 legs are explicitly classified as home, draw or away by the provider projection. draw is a real value, not a competitor. Omitted when the provider projection cannot classify the leg, which is not the same as other. */
1382
+ /** Which side of the game this market's YES leg pays. home and away are the provider's own home/away designation of the team the YES leg names (Polymarket's teams[].ordering), never its place in competitors. Soccer 1X2 legs are explicitly classified as home, draw or away by the provider projection. draw is a real value, not a competitor. Omitted when the provider projection cannot classify the leg or the provider designates neither team home or away, which is not the same as other. */
1375
1383
  side?: "home" | "away" | "draw" | "other";
1376
1384
  /** The provider's label for the YES outcome. Omitted when the provider sent none. */
1377
1385
  outcome_yes?: string;
@@ -1799,6 +1807,23 @@ export type LargeTrade = {
1799
1807
  /** Provider-backed market_canonical category. */
1800
1808
  category?: string;
1801
1809
  };
1810
+ /** Closing line value against the market's stored close (GET /api/v1/market/{condition_id}/close). Always present; status says whether it is measured. */
1811
+ clv: {
1812
+ /** The CLV definition, clv@v1. */
1813
+ basis_version: string;
1814
+ /** The anchor pre_kickoff was judged against: the stored close's anchor, else the market's kickoff. */
1815
+ close_anchor_at: string | null;
1816
+ /** The traded outcome's closing price, 0 to 1, whenever a usable close is stored and the outcome is known, in play included. */
1817
+ close_price: number | null;
1818
+ /** Cents per share, positive when the trade beat the close: buy is (close_price - price) * 100, sell is (price - close_price) * 100. Gross of fees. Computed from the trade's exact stored price; price on the wire is rounded to 4 places, so a recomputation from it agrees within 0.005 cents. Set exactly when status is measured. */
1819
+ clv_cents: number | null;
1820
+ /** Whether the trade filled before close_anchor_at. null when the market has no anchor. */
1821
+ pre_kickoff: boolean | null;
1822
+ /** measured: clv_cents is set. in_play: traded at or after the close anchor (kickoff), no CLV is defined. pending: traded before kickoff and the market's close is not stored yet. unavailable: see unavailable_reason. */
1823
+ status: "measured" | "in_play" | "pending" | "unavailable";
1824
+ /** Set exactly when status is unavailable. The market's reasons (see MarketClose.unavailable_reason), plus anchor_stale (the kickoff moved after the close was captured) and outcome_unknown (the traded outcome is not known for this trade). */
1825
+ unavailable_reason: "no_observation_in_lookback" | "provider_empty_window" | "provider_invalid_contract" | "capture_window_closed" | "no_game_start_time" | "not_one_sided_resolution" | "not_captured" | "close_token_mismatch" | "anchor_stale" | "outcome_unknown" | null;
1826
+ };
1802
1827
  };
1803
1828
  export type LargeTradeDetail = LargeTrade & {
1804
1829
  counterparty_analysis: CounterpartyAnalysis;
@@ -2017,6 +2042,48 @@ export type MarketCandles = {
2017
2042
  /** One entry per present provider token (YES first, then NO); empty when no tokens have been fetched yet. */
2018
2043
  outcomes: OutcomeCandles[];
2019
2044
  };
2045
+ /** A market's stored closing line (#32517): Polymarket's price-history value for the last minute bucket ending at or before kickoff, read once after settlement and never recomputed. */
2046
+ export type MarketClose = {
2047
+ /** true when game_start_time has moved more than lookback_seconds from close_anchor_at since capture; large trades on the market then carry no CLV. null without a stored row. */
2048
+ anchor_stale: boolean | null;
2049
+ /** Provider response contract version the value was read under. */
2050
+ basis_version: string | null;
2051
+ /** When the close was stored. Bookkeeping only. */
2052
+ captured_at: string | null;
2053
+ /** The instant the close was measured at: the kickoff when it was captured. Write-once; null when no close row is stored. */
2054
+ close_anchor_at: string | null;
2055
+ /** The field that supplied close_anchor_at, markets.game_start_time. */
2056
+ close_anchor_source: string | null;
2057
+ /** Polymarket condition id. */
2058
+ condition_id: string;
2059
+ /** The market's kickoff as stored now. */
2060
+ game_start_time: string | null;
2061
+ /** How far before the anchor the admitted bucket may start: 21600 (6 hours). */
2062
+ lookback_seconds: number | null;
2063
+ /** Bucket width: 60 (minute grain) or 3600 (hour grain, for a market read more than about six days after kickoff). */
2064
+ observation_window_seconds: number | null;
2065
+ /** Start of the provider bucket the close is. The bucket ends at observed_at + observation_window_seconds, at or before close_anchor_at. */
2066
+ observed_at: string | null;
2067
+ /** YES then NO when status is measured; empty otherwise. */
2068
+ outcomes: ({
2069
+ /** Closing price, 0 to 1, at full stored precision. */
2070
+ close_price: number;
2071
+ /** true on the NO leg: 1 minus the stored YES price, never a second read. */
2072
+ derived_from_yes: boolean;
2073
+ /** The outcome's label. */
2074
+ outcome: string | null;
2075
+ /** 0 is the YES leg, 1 the NO leg. */
2076
+ outcome_index: number;
2077
+ /** CLOB token id of the outcome. */
2078
+ token_id: string | null;
2079
+ })[];
2080
+ /** Provider endpoint and grain, e.g. polymarket_data_v2_prices_history@minute-window-v1. */
2081
+ price_source: string | null;
2082
+ /** measured: outcomes carries the close. pending: no close is stored yet and the capture will still read the market. unavailable: no close will be served; see unavailable_reason. */
2083
+ status: "measured" | "pending" | "unavailable";
2084
+ /** Set exactly when status is unavailable. no_observation_in_lookback, provider_empty_window, provider_invalid_contract and capture_window_closed are the capture's own stored refusals; no_game_start_time: the market has no kickoff time; not_one_sided_resolution: it resolved to neither side; not_captured: the capture does not read it (no tracked buy before resolution, or kickoff over 30 days ago); close_token_mismatch: the close was read on a different YES token than the market carries now. */
2085
+ unavailable_reason: "no_observation_in_lookback" | "provider_empty_window" | "provider_invalid_contract" | "capture_window_closed" | "no_game_start_time" | "not_one_sided_resolution" | "not_captured" | "close_token_mismatch" | "anchor_stale" | "outcome_unknown" | null;
2086
+ };
2020
2087
  export type MarketFlow = {
2021
2088
  market: {
2022
2089
  id: string;
@@ -2265,7 +2332,7 @@ export type MarketSnapshot = {
2265
2332
  source: string;
2266
2333
  live_match_key?: string;
2267
2334
  live_league_key?: string;
2268
- /** Live-score period and elapsed may be omitted when unavailable (older responses use null). A score entry may omit full_name when it equals team; fall back to team. Distinct aliases and score admission markers are preserved. For live esports, scores[].map_score retains an available pair through an update omitting both sides only within the same live map, series format and series totals. Map changes and final state follow current provider updates; absent detail remains unavailable. Optional tennis_points supplies independently sourced current-game points and serving side; absence means unavailable. Compatible unexpired tennis_points survives temporary supplemental snapshot unavailability or contention; expiry and set/game mismatch still clear it. */
2335
+ /** Live-score period and elapsed may be omitted when unavailable (older responses use null). A score entry may omit full_name when it equals team; fall back to team. A score entry's side (home or away) is the provider's home/away designation of that team, omitted when the provider gives none; the order of scores states no side. Distinct aliases and score admission markers are preserved. For live esports, scores[].map_score retains an available pair through an update omitting both sides only within the same live map, series format and series totals. Map changes and final state follow current provider updates; absent detail remains unavailable. Optional tennis_points supplies independently sourced current-game points and serving side; absence means unavailable. Compatible unexpired tennis_points survives temporary supplemental snapshot unavailability or contention; expiry and set/game mismatch still clear it. */
2269
2336
  live_score?: Record<string, unknown> & {
2270
2337
  tennis_points?: TennisPoints;
2271
2338
  };
@@ -4969,6 +5036,53 @@ export type TraderCategoryRecords = {
4969
5036
  /** One entry per canonical category with at least one decided market, ordered by decided descending then category. A category with no decided market is omitted. The Esports entry carries its per-game records in games. */
4970
5037
  records: TraderCategoryRecord[];
4971
5038
  };
5039
+ /** Closing line value over one wallet's large trades in a window (#32517). */
5040
+ export type TraderClv = {
5041
+ /** Wallet address, lowercase. */
5042
+ address: string;
5043
+ /** The CLV definition, clv@v1, each trade's clv.basis_version. */
5044
+ basis_version: string;
5045
+ /** The category filter as sent, or null. */
5046
+ category: string | null;
5047
+ /** The window's trades that carry no CLV, by clv.status. */
5048
+ excluded: {
5049
+ in_play: number;
5050
+ pending: number;
5051
+ unavailable: number;
5052
+ };
5053
+ /** Window start, inclusive. */
5054
+ from: string;
5055
+ /** trd_-prefixed trader id. */
5056
+ id: string;
5057
+ /** Large trades in the window, every status. */
5058
+ large_trades: number;
5059
+ /** Figures over the trades whose clv.status is measured. */
5060
+ measured: {
5061
+ /** Normal 95% interval on market_mean_clv_cents from the markets' sample deviation, as low and high. null below two markets. */
5062
+ market_ci95_cents: {
5063
+ high: number;
5064
+ low: number;
5065
+ } | null;
5066
+ /** Mean over markets of each market's mean clv_cents. null with no measured trade. */
5067
+ market_mean_clv_cents: number | null;
5068
+ /** Distinct markets among them. */
5069
+ markets: number;
5070
+ /** Plain mean of clv_cents. null with no measured trade. */
5071
+ mean_clv_cents: number | null;
5072
+ /** Share of measured trades with clv_cents > 0, 0 to 1. null with no measured trade. */
5073
+ share_beat_close: number | null;
5074
+ /** Their summed size in USDC. */
5075
+ size_usd: number;
5076
+ /** Mean of clv_cents weighted by each trade's size_usd. null with no measured trade. */
5077
+ stake_weighted_clv_cents: number | null;
5078
+ /** Large trades with clv.status measured. */
5079
+ trades: number;
5080
+ };
5081
+ /** Size floor in USDC, as /large-trades/history reads it. */
5082
+ min_size: number;
5083
+ /** Window end, exclusive. */
5084
+ to: string;
5085
+ };
4972
5086
  export type TraderContext = {
4973
5087
  trader: Trader;
4974
5088
  /** 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. */
@@ -5898,6 +6012,23 @@ export type WhaleDatasetTrade = {
5898
6012
  /** Stored source trade identity. */
5899
6013
  trade_event_id: string;
5900
6014
  source_trade_ingested_at: string | null;
6015
+ /** Closing line value: the clv object of the same trade on /api/v1/large-trades, judged at the generation's selected_at from close states read inside the same snapshot. A pending row can be measured in a later generation. The close is stored once (GET /api/v1/market/{condition_id}/close), so a measured clv_cents changes only if the market's kickoff or YES token changes afterwards, which makes it unavailable (anchor_stale, close_token_mismatch). */
6016
+ clv: {
6017
+ /** The CLV definition, clv@v1. */
6018
+ basis_version: string;
6019
+ /** The anchor pre_kickoff was judged against: the stored close's anchor, else the market's kickoff. */
6020
+ close_anchor_at: string | null;
6021
+ /** The traded outcome's closing price, 0 to 1, whenever a usable close is stored and the outcome is known, in play included. */
6022
+ close_price: number | null;
6023
+ /** Cents per share, positive when the trade beat the close: buy is (close_price - price) * 100, sell is (price - close_price) * 100. Gross of fees. Computed from the exact stored price this row carries, so a recomputation from price and close_price agrees to the stored digits. Set exactly when status is measured. */
6024
+ clv_cents: number | null;
6025
+ /** Whether the trade filled before close_anchor_at. null when the market has no anchor. */
6026
+ pre_kickoff: boolean | null;
6027
+ /** measured: clv_cents is set. in_play: traded at or after the close anchor (kickoff), no CLV is defined. pending: traded before kickoff and the market's close is not stored yet. unavailable: see unavailable_reason. */
6028
+ status: "measured" | "in_play" | "pending" | "unavailable";
6029
+ /** Set exactly when status is unavailable. The market's reasons (see MarketClose.unavailable_reason), plus anchor_stale (the kickoff moved after the close was captured) and outcome_unknown (the traded outcome is not known for this trade). */
6030
+ unavailable_reason: "no_observation_in_lookback" | "provider_empty_window" | "provider_invalid_contract" | "capture_window_closed" | "no_game_start_time" | "not_one_sided_resolution" | "not_captured" | "close_token_mismatch" | "anchor_stale" | "outcome_unknown" | null;
6031
+ };
5901
6032
  };
5902
6033
  /**
5903
6034
  * The `data` payload of each webhook event type, from the document's
@@ -5928,6 +6059,7 @@ export interface WebhookEventData {
5928
6059
  */
5929
6060
  export interface OperationData {
5930
6061
  activateWebhookSecret: WebhookEndpoint;
6062
+ batchGetMarketClose: BatchMarketCloseItem[];
5931
6063
  batchGetMarketFlow: BatchMarketFlowItem[];
5932
6064
  batchGetMarketIntel: BatchMarketFlowItem[];
5933
6065
  batchGetTraders: BatchTraderItem[];
@@ -6098,6 +6230,7 @@ export interface OperationData {
6098
6230
  getInsiderRadarFlag: SuspiciousTrade;
6099
6231
  getLargeTrade: LargeTradeDetail;
6100
6232
  getMarketCandles: MarketCandles;
6233
+ getMarketClose: MarketClose;
6101
6234
  getMarketContextMarkdown: string;
6102
6235
  getMarketFlow: MarketFlow;
6103
6236
  getMarketHolders: MarketHolder[];
@@ -6174,6 +6307,7 @@ export interface OperationData {
6174
6307
  getSuspiciousTrade: SuspiciousTrade;
6175
6308
  getTrader: Trader;
6176
6309
  getTraderCategoryRecords: TraderCategoryRecords;
6310
+ getTraderClv: TraderClv;
6177
6311
  getTraderContext: TraderContext;
6178
6312
  getTraderContextMarkdown: string;
6179
6313
  getTraderExportSnapshot: TraderExportSnapshot;
@@ -6539,6 +6673,7 @@ export interface OperationData {
6539
6673
  /** Each operation's documented query parameters. */
6540
6674
  export interface OperationQuery {
6541
6675
  activateWebhookSecret: Record<string, never>;
6676
+ batchGetMarketClose: Record<string, never>;
6542
6677
  batchGetMarketFlow: Record<string, never>;
6543
6678
  batchGetMarketIntel: Record<string, never>;
6544
6679
  batchGetTraders: Record<string, never>;
@@ -6657,6 +6792,7 @@ export interface OperationQuery {
6657
6792
  /** Inclusive upper bound as a URL-decoded unix timestamp in seconds; points after this timestamp are omitted. If from is also present, from must be less than or equal to to. */
6658
6793
  to?: number;
6659
6794
  };
6795
+ getMarketClose: Record<string, never>;
6660
6796
  getMarketContextMarkdown: Record<string, never>;
6661
6797
  getMarketFlow: {
6662
6798
  /** Lookback window for whale flow aggregation. */
@@ -6788,6 +6924,16 @@ export interface OperationQuery {
6788
6924
  /** Filter to one canonical category, matched through the same rollup every other category surface uses: soccer, EPL and champions league all reach Soccer, every esports label folds into Esports, and football is AMERICAN football and reaches Football. A filter that reaches Esports returns the Esports record with all of its games; a game is not a filter of its own, so ask for esports and read games. A sports or esports category the wallet has no record in answers 200 with an empty records array, never 404. Sports and esports only (#27311): a category outside them, or a value that reaches no category, returns 400 bad_request with param category and names the accepted buckets. The word sports, in any casing, matches every sport but Esports, the provider's catch-all Sports category (cycling, lacrosse) included: use esports for Esports alone, or omit category for both (#32657). */
6789
6925
  category?: string;
6790
6926
  };
6927
+ getTraderClv: {
6928
+ /** Inclusive RFC3339 lower bound on the trade time. Defaults to 90 days before to. */
6929
+ from?: string;
6930
+ /** Exclusive RFC3339 upper bound on the trade time. Defaults to now; must be after from, and at most 366 days after it. */
6931
+ to?: string;
6932
+ /** Minimum trade size in USD. The capture floor was 3,000 USD before 2026-07-06 and 10,000 USD from then (1,000 USD in earnings markets), so 10000 gives one size rule across the whole archive. From 2026-09-23 a fill must also be at least 0.1% of its market's recorded traded volume (Polymarket's own share count); rows written before that date were not re-filtered. */
6933
+ min_size?: number;
6934
+ /** Filter by market category (case-insensitive). A canonical bucket name (e.g. Basketball) matches every provider member that folds into it (NBA, WNBA, NCAAB); a raw provider value also resolves to its bucket. Sports and esports only (#27430): a category outside them returns 400 bad_request with param category and names the accepted buckets. The word sports, in any casing, matches every sport but Esports, the provider's catch-all Sports category (cycling, lacrosse) included: use esports for Esports alone, or omit category for both (#32657). */
6935
+ category?: string;
6936
+ };
6791
6937
  getTraderContext: Record<string, never>;
6792
6938
  getTraderContextMarkdown: Record<string, never>;
6793
6939
  getTraderExportSnapshot: Record<string, never>;
@@ -7207,6 +7353,7 @@ export interface OperationPath {
7207
7353
  /** Webhook endpoint id owned by the authenticated API key user. */
7208
7354
  id: number;
7209
7355
  };
7356
+ batchGetMarketClose: Record<string, never>;
7210
7357
  batchGetMarketFlow: Record<string, never>;
7211
7358
  batchGetMarketIntel: Record<string, never>;
7212
7359
  batchGetTraders: Record<string, never>;
@@ -7269,6 +7416,10 @@ export interface OperationPath {
7269
7416
  /** 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. */
7270
7417
  condition_id: string;
7271
7418
  };
7419
+ getMarketClose: {
7420
+ /** 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. */
7421
+ condition_id: string;
7422
+ };
7272
7423
  getMarketContextMarkdown: {
7273
7424
  /** 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. */
7274
7425
  condition_id: string;
@@ -7334,6 +7485,10 @@ export interface OperationPath {
7334
7485
  /** Wallet address (0x...), username, or trd_-prefixed trader id. */
7335
7486
  address: string;
7336
7487
  };
7488
+ getTraderClv: {
7489
+ /** Wallet address (0x...), username, or trd_-prefixed trader id. */
7490
+ address: string;
7491
+ };
7337
7492
  getTraderContext: {
7338
7493
  /** Ethereum wallet address (0x...), known trader username, or trd_-prefixed trader ID emitted by this API. */
7339
7494
  address: string;
@@ -7466,6 +7621,10 @@ export interface OperationPath {
7466
7621
  /** Each operation's JSON request body; `never` when it takes none. */
7467
7622
  export interface OperationBody {
7468
7623
  activateWebhookSecret: never;
7624
+ batchGetMarketClose: {
7625
+ /** Market condition IDs (raw or mkt_-prefixed) to resolve in input order. */
7626
+ condition_ids: string[];
7627
+ };
7469
7628
  batchGetMarketFlow: {
7470
7629
  /** Market condition IDs to resolve in input order. */
7471
7630
  condition_ids: string[];
@@ -7516,6 +7675,7 @@ export interface OperationBody {
7516
7675
  getInsiderRadarFlag: never;
7517
7676
  getLargeTrade: never;
7518
7677
  getMarketCandles: never;
7678
+ getMarketClose: never;
7519
7679
  getMarketContextMarkdown: never;
7520
7680
  getMarketFlow: never;
7521
7681
  getMarketHolders: never;
@@ -7539,6 +7699,7 @@ export interface OperationBody {
7539
7699
  getSuspiciousTrade: never;
7540
7700
  getTrader: never;
7541
7701
  getTraderCategoryRecords: never;
7702
+ getTraderClv: never;
7542
7703
  getTraderContext: never;
7543
7704
  getTraderContextMarkdown: never;
7544
7705
  getTraderExportSnapshot: never;
@@ -7606,6 +7767,11 @@ export interface OperationResponse {
7606
7767
  data: OperationData["activateWebhookSecret"];
7607
7768
  meta: ResponseMeta;
7608
7769
  };
7770
+ batchGetMarketClose: {
7771
+ object: "market_close_batch";
7772
+ data: OperationData["batchGetMarketClose"];
7773
+ meta: BatchResponseMeta;
7774
+ };
7609
7775
  batchGetMarketFlow: {
7610
7776
  object: "market_flow_batch";
7611
7777
  data: OperationData["batchGetMarketFlow"];
@@ -7735,6 +7901,11 @@ export interface OperationResponse {
7735
7901
  data: OperationData["getMarketCandles"];
7736
7902
  meta: ResponseMeta;
7737
7903
  };
7904
+ getMarketClose: {
7905
+ object: "market_close";
7906
+ data: OperationData["getMarketClose"];
7907
+ meta: ResponseMeta;
7908
+ };
7738
7909
  getMarketContextMarkdown: string;
7739
7910
  getMarketFlow: {
7740
7911
  object: "market_flow";
@@ -7858,6 +8029,11 @@ export interface OperationResponse {
7858
8029
  data: OperationData["getTraderCategoryRecords"];
7859
8030
  meta: ResponseMeta;
7860
8031
  };
8032
+ getTraderClv: {
8033
+ object: "trader_clv";
8034
+ data: OperationData["getTraderClv"];
8035
+ meta: ResponseMeta;
8036
+ };
7861
8037
  getTraderContext: {
7862
8038
  object: "trader_context";
7863
8039
  data: OperationData["getTraderContext"];