@0xinsider/sdk 0.20.0 → 0.22.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 +100 -5
- package/dist/client.d.ts +274 -30
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +80 -4
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pagination.d.ts +14 -5
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +2 -1
- package/dist/pagination.js.map +1 -1
- package/dist/provenance.d.ts +1 -1
- package/dist/provenance.js +2 -2
- package/dist/schema.d.ts +320 -18
- package/dist/schema.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -234,10 +234,10 @@ if (board.object === "edge_hunter") {
|
|
|
234
234
|
}
|
|
235
235
|
```
|
|
236
236
|
|
|
237
|
-
The board
|
|
238
|
-
|
|
239
|
-
defaults to 48 and
|
|
240
|
-
limit
|
|
237
|
+
The board defaults cover all sports and esports with a B grade floor and at most
|
|
238
|
+
30 ranked rows. `total` counts selected admitted rows before the cap.
|
|
239
|
+
`horizon_hours` defaults to 48 and clamps to 1..48; `min_grade` accepts S/A/B
|
|
240
|
+
and `limit` defaults to 30 and clamps to 1..30. The board has no ETag or pagination.
|
|
241
241
|
|
|
242
242
|
Every row includes provider participants, both outcome quotes, and backed-side
|
|
243
243
|
analytics. Current prices are decimal strings with their own `basis`, `ts`,
|
|
@@ -251,6 +251,101 @@ A Pro credential throws `MaxPlanRequiredError` (403 `forbidden`,
|
|
|
251
251
|
same key. All four previous sports-edge and pre-game-side paths are retired
|
|
252
252
|
and return 410 `endpoint_retired`. Their list and conditional-read methods
|
|
253
253
|
were removed in SDK 0.20.0. Migrate to `client.edgeHunter.get()`.
|
|
254
|
+
SDK 0.21.0 preserves the default board and adds the complete advanced contracts:
|
|
255
|
+
|
|
256
|
+
```ts
|
|
257
|
+
const signals = await client.edgeHunter.get({ view: "signals", category: "Soccer", min_grade: "A", limit: 20 });
|
|
258
|
+
if (signals.object === "list") console.log(signals.view, signals.data, signals.next_cursor);
|
|
259
|
+
|
|
260
|
+
const observations = await client.edgeHunter.observations({ cohort: "in_play", limit: 20 });
|
|
261
|
+
if (observations.object === "list") console.log(observations.snapshot_as_of, observations.degraded, observations.funnel);
|
|
262
|
+
|
|
263
|
+
const unchanged = await client.edgeHunter.getConditional(
|
|
264
|
+
{ view: "observations", cohort: "in_play" },
|
|
265
|
+
{ headers: { "If-None-Match": observations.meta.etag ?? "" } },
|
|
266
|
+
);
|
|
267
|
+
if (unchanged.object === "not_modified") console.log("Unchanged snapshot");
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
`view: "signals"` returns full ranked records, nullable `token_id`, snapshot clocks,
|
|
271
|
+
holder/directional analytics, category evidence and provenance. It accepts `category`,
|
|
272
|
+
`min_grade` (S/A/B, default B), `horizon_hours` (default 12, clamp 1..48), `limit`
|
|
273
|
+
(default 20, clamp 1..100) and `cursor`. Grade floor requires a holder at that grade or better;
|
|
274
|
+
it does not remove other holders. `signals()` is a convenience for the same mode.
|
|
275
|
+
|
|
276
|
+
`view: "observations"` requires `cohort` (`wider_holder`, `in_play`, `emerging_pile`)
|
|
277
|
+
and accepts `category`, `limit` and `cursor`. Records preserve verified token IDs,
|
|
278
|
+
midpoint `backed_price` marks, observation/holder clocks, provider/directional status,
|
|
279
|
+
and completeness. The envelope retains `snapshot_as_of`, `degraded` and all per-sport
|
|
280
|
+
funnel diagnostics. Price marks are not wallet entry costs; volume is shares.
|
|
281
|
+
In-play reuse is capped at 30 seconds and fails closed without fresh source evidence.
|
|
282
|
+
|
|
283
|
+
Literal view queries have distinct result types, including on empty pages. Advanced
|
|
284
|
+
responses add `view: "signals" | "observations"` beside `object: "list"`. Both advanced
|
|
285
|
+
views support ETag/304 and private revalidation. All public views read warmed generations only;
|
|
286
|
+
missing/stale readiness returns 503 `read_model_warming` with `Retry-After: 5`
|
|
287
|
+
without running holder/provider computation in the request. `getConditional()`
|
|
288
|
+
accepts advanced views only. Parameters for another view return 400, and a refreshed
|
|
289
|
+
snapshot expires its cursors. Start a new cursor walk when migrating from retired URLs.
|
|
290
|
+
The shared `list()`, `paginate()`, `paginatePages()` and `collect()` helpers accept
|
|
291
|
+
Edge Hunter only with an explicit advanced view and preserve the corresponding record
|
|
292
|
+
and envelope types:
|
|
293
|
+
|
|
294
|
+
```ts
|
|
295
|
+
for await (const page of paginatePages(client, "getEdgeHunter", {
|
|
296
|
+
query: { view: "observations", cohort: "wider_holder", limit: 100 },
|
|
297
|
+
maxPages: 2,
|
|
298
|
+
})) console.log(page.view, page.funnel, page.data);
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
SDK 0.22.0 adds common selections to every Edge Hunter view:
|
|
302
|
+
|
|
303
|
+
```ts
|
|
304
|
+
const nfl = await client.edgeHunter.get({ kind: "sports", leagues: ["nfl"], limit: 10 });
|
|
305
|
+
if (nfl.object === "edge_hunter") {
|
|
306
|
+
console.log(nfl.selection, nfl.data.rows.map(row => row.market_context));
|
|
307
|
+
}
|
|
308
|
+
const selectedSignals = await client.edgeHunter.signals({
|
|
309
|
+
sports: ["Soccer", "Football"], market_types: ["moneyline"], min_grade: "A", limit: 20,
|
|
310
|
+
});
|
|
311
|
+
const selectedObservations = await client.edgeHunter.observations({
|
|
312
|
+
cohort: "in_play", kind: "esports", leagues: ["cs2", "lol"], limit: 20,
|
|
313
|
+
});
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
| Selection | Meaning |
|
|
317
|
+
| --- | --- |
|
|
318
|
+
| `kind` | `sports` or `esports`; omit for both |
|
|
319
|
+
| `sports` | Canonical sport buckets, including `Football`, `Soccer`, `Esports` and `Table Tennis`; case-insensitive |
|
|
320
|
+
| `leagues` | Machine/provider league identities such as `nfl`, `epl`, `cs2` and `lol`; known wire/tag aliases normalize |
|
|
321
|
+
| `market_types` | Exact provider `sports_market_type` values from `market_context.market_type` |
|
|
322
|
+
| `condition_ids` | Exact markets by raw provider ID or `mkt_` alias |
|
|
323
|
+
| `event_slugs` / `series_slugs` | Exact provider event/series identities from the row and `market_context.series_slug` |
|
|
324
|
+
| `category` | Legacy canonical bucket alias: `NFL` selects all Football; use `leagues: ["nfl"]` for NFL only |
|
|
325
|
+
|
|
326
|
+
Lists match OR within an axis and AND across axes. Each array must contain 1..100
|
|
327
|
+
supplied values before server normalization and deduplication; empty SDK arrays
|
|
328
|
+
fail before HTTP. The SDK serializes repeated bare query names, and the server
|
|
329
|
+
also accepts CSV inside a value. Market types and event/series slugs are trimmed
|
|
330
|
+
exact case-sensitive strings. Unknown canonical sport names are invalid; unknown
|
|
331
|
+
provider identities or market IDs can yield an empty selected collection.
|
|
332
|
+
|
|
333
|
+
A selected 200 response adds top-level `selection` with only requested normalized
|
|
334
|
+
axes. Blank `category` retains omission behavior. Selected SDK reads always send
|
|
335
|
+
`X-Query-Validation: strict`, even if `strictQuery: false` was supplied, and refuse
|
|
336
|
+
responses missing their echo so an older serving instance cannot silently ignore
|
|
337
|
+
new filters. Generic `call()`, `list()` and pagination use the same protection.
|
|
338
|
+
Advanced cursors and ETags bind the normalized selection; restart at page one
|
|
339
|
+
when changing it.
|
|
340
|
+
|
|
341
|
+
Every row adds required nullable `market_context` with required nullable `league`,
|
|
342
|
+
`series_slug`, `market_type` and `metadata_updated_at`. Discover exact selectors
|
|
343
|
+
from those frozen facts. The clock is local `market_canonical.updated_at`, not a
|
|
344
|
+
provider observation time. Unselected legacy cache generations may carry
|
|
345
|
+
`market_context: null`; selected reads require a ready frozen sidecar and return
|
|
346
|
+
503 warming if it is absent. Missing selected metadata excludes rows. Observation
|
|
347
|
+
`funnel` remains source-generation/category accounting rather than a league/type/ID
|
|
348
|
+
request-input census.
|
|
254
349
|
|
|
255
350
|
### Beyond the JSON envelope
|
|
256
351
|
|
|
@@ -350,7 +445,7 @@ for await (const trade of paginate(client, "listWhaleTrades", {
|
|
|
350
445
|
}
|
|
351
446
|
```
|
|
352
447
|
|
|
353
|
-
The loop ends when a page says `has_more: false`, whatever its `next_cursor` says. A page that says `has_more: true` with no usable `next_cursor`, or one whose `next_cursor` repeats a cursor the walk already requested, is a broken response rather than the end of the collection: the walk throws `PaginationError` (`reason` `missing_cursor` or `repeated_cursor`) before yielding that page and before any duplicate request, with the received `page` on the error so its data is not lost. The last 1,024 cursors are remembered for the repeat check (`CURSOR_HISTORY_LIMIT`), which keeps a long walk's memory flat. A list response whose `has_more` is not a boolean or whose `next_cursor` is
|
|
448
|
+
The loop ends when a page says `has_more: false`, whatever its `next_cursor` says. A page that says `has_more: true` with no usable `next_cursor`, or one whose `next_cursor` repeats a cursor the walk already requested, is a broken response rather than the end of the collection: the walk throws `PaginationError` (`reason` `missing_cursor` or `repeated_cursor`) before yielding that page and before any duplicate request, with the received `page` on the error so its data is not lost. The last 1,024 cursors are remembered for the repeat check (`CURSOR_HISTORY_LIMIT`), which keeps a long walk's memory flat. A list response whose `has_more` is not a boolean or whose `next_cursor` is neither a string, null nor omitted throws `InvalidResponseError`. A null terminal cursor is preserved for Edge Hunter observations.
|
|
354
449
|
|
|
355
450
|
`maxPages` caps fetches and is checked before any request: a positive integer or `Infinity`; `0`, a negative, fractional or `NaN` value throws `RangeError`. Reaching it is your choice, not exhaustion. Pass a `progress` object to tell the two apart and keep the continuation:
|
|
356
451
|
|
package/dist/client.d.ts
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* - Extra typed convenience methods for list/candle/webhook-event/stream
|
|
20
20
|
* surfaces and a typed `Grade` enum.
|
|
21
21
|
*/
|
|
22
|
-
import type { OperationBody, OperationData, OperationPath, OperationQuery, OperationResponse, ResponseMeta } from "./schema.js";
|
|
22
|
+
import type { OperationBody, OperationData, OperationPath, OperationQuery, OperationResponse, ResponseMeta, EdgeHunterBoardResponse, EdgeHunterSignalsResponse, EdgeHunterObservationsResponse } from "./schema.js";
|
|
23
23
|
/**
|
|
24
24
|
* The envelope `meta` as THIS client hands it to a caller: everything the
|
|
25
25
|
* contract declares (`ResponseMeta`), plus `etag`.
|
|
@@ -852,8 +852,29 @@ export interface CategorySkillStatusCounts {
|
|
|
852
852
|
export type GamesListParams = OperationQuery["listGames"];
|
|
853
853
|
/** One game: both sides, its schedule, its provider status and its markets. */
|
|
854
854
|
export type { Game } from "./schema.js";
|
|
855
|
-
/**
|
|
856
|
-
export type
|
|
855
|
+
/** Optional selection axes shared by every Max-only Edge Hunter view. */
|
|
856
|
+
export type EdgeHunterSelectionParams = Pick<OperationQuery["getEdgeHunter"], "kind" | "sports" | "leagues" | "market_types" | "condition_ids" | "event_slugs" | "series_slugs" | "category">;
|
|
857
|
+
/** Quoted board selection, grade floor and cap; existing defaults remain compatible. */
|
|
858
|
+
export type EdgeHunterBoardParams = EdgeHunterSelectionParams & Pick<OperationQuery["getEdgeHunter"], "horizon_hours" | "min_grade" | "limit"> & {
|
|
859
|
+
view?: "board";
|
|
860
|
+
};
|
|
861
|
+
/** Full ranked records with category, grade and horizon projection before pagination. */
|
|
862
|
+
export type EdgeHunterSignalsParams = EdgeHunterSelectionParams & Pick<OperationQuery["getEdgeHunter"], "limit" | "cursor" | "horizon_hours" | "min_grade"> & {
|
|
863
|
+
view: "signals";
|
|
864
|
+
};
|
|
865
|
+
/** Full observation evidence; cohort is required, including for empty pages. */
|
|
866
|
+
export type EdgeHunterObservationsParams = EdgeHunterSelectionParams & Pick<OperationQuery["getEdgeHunter"], "limit" | "cursor"> & {
|
|
867
|
+
view: "observations";
|
|
868
|
+
cohort: NonNullable<OperationQuery["getEdgeHunter"]["cohort"]>;
|
|
869
|
+
};
|
|
870
|
+
export type EdgeHunterAdvancedParams = EdgeHunterSignalsParams | EdgeHunterObservationsParams;
|
|
871
|
+
export type EdgeHunterParams = EdgeHunterBoardParams | EdgeHunterAdvancedParams;
|
|
872
|
+
export type EdgeHunterBoardResult = ClientEnvelope<EdgeHunterBoardResponse> | ApiNotModifiedResponse;
|
|
873
|
+
export type EdgeHunterSignalsResult = ClientEnvelope<EdgeHunterSignalsResponse> | ApiNotModifiedResponse;
|
|
874
|
+
export type EdgeHunterObservationsResult = ClientEnvelope<EdgeHunterObservationsResponse> | ApiNotModifiedResponse;
|
|
875
|
+
export type EdgeHunterAdvancedResult = EdgeHunterSignalsResult | EdgeHunterObservationsResult;
|
|
876
|
+
/** Full advanced collection envelope for a literal view; excludes conditional 304 results. */
|
|
877
|
+
export type EdgeHunterCollection<P extends EdgeHunterAdvancedParams> = P extends EdgeHunterSignalsParams ? Exclude<EdgeHunterSignalsResult, ApiNotModifiedResponse> : Exclude<EdgeHunterObservationsResult, ApiNotModifiedResponse>;
|
|
857
878
|
/** Public wallet facts associated with a recorded pick. */
|
|
858
879
|
export interface PickQualifyingExpert {
|
|
859
880
|
address: string;
|
|
@@ -935,9 +956,13 @@ export type OperationMeta<K extends ApiOperationId> = OperationResponse[K] exten
|
|
|
935
956
|
* the replay, `ResponseMeta` elsewhere) plus this client's lifted `etag` and
|
|
936
957
|
* `sandbox`.
|
|
937
958
|
*/
|
|
938
|
-
|
|
939
|
-
meta:
|
|
940
|
-
}
|
|
959
|
+
type ClientEnvelope<T> = T extends {
|
|
960
|
+
meta: infer M;
|
|
961
|
+
} ? Omit<T, "meta"> & {
|
|
962
|
+
meta: ClientMeta<M>;
|
|
963
|
+
} : never;
|
|
964
|
+
/** Distribute over response variants so view-specific pagination and evidence stay typed. */
|
|
965
|
+
export type OperationEnvelope<K extends EnvelopeOperationId> = ClientEnvelope<OperationResponse[K]>;
|
|
941
966
|
/** A `call()` result: the envelope, or the typed 304 when `If-None-Match` matched. */
|
|
942
967
|
export type OperationResult<K extends EnvelopeOperationId> = OperationEnvelope<K> | ApiNotModifiedResponse;
|
|
943
968
|
/** One item of a list operation's `data`. */
|
|
@@ -989,6 +1014,8 @@ export type OperationOptionsArgs<K extends ApiOperationId, O> = OperationRequire
|
|
|
989
1014
|
* parameter before any request.
|
|
990
1015
|
*/
|
|
991
1016
|
export type RuntimeOperationId<I extends ApiOperationId> = I & (ApiOperationId extends I ? unknown : OptionalInputOperationId);
|
|
1017
|
+
/** A literal Edge Hunter list call must select an advanced view; runtime-chosen ids stay available. */
|
|
1018
|
+
export type RuntimeListOperationId<I extends ApiOperationId> = RuntimeOperationId<I> & ("getEdgeHunter" extends I ? ApiOperationId extends I ? unknown : never : unknown);
|
|
992
1019
|
/** The transport options a convenience method forwards: everything but the parts it fills itself. */
|
|
993
1020
|
export type ConvenienceOptions = Omit<ApiRequestOptions, "path" | "query" | "body">;
|
|
994
1021
|
/** The MCP methods `POST /api/v1/mcp` accepts, from the operation's request body. */
|
|
@@ -1135,14 +1162,31 @@ export declare class OxinsiderApiClient {
|
|
|
1135
1162
|
private readonly fetchImpl;
|
|
1136
1163
|
private readonly timeoutMs;
|
|
1137
1164
|
private readonly maxRetries;
|
|
1138
|
-
/**
|
|
1165
|
+
/** Max-only Edge Hunter board and full ranked/observation collection views. */
|
|
1139
1166
|
readonly edgeHunter: {
|
|
1140
|
-
get:
|
|
1167
|
+
get: {
|
|
1168
|
+
(params?: EdgeHunterBoardParams, options?: ConvenienceOptions): Promise<EdgeHunterBoardResult>;
|
|
1169
|
+
(params: EdgeHunterSignalsParams, options?: ConvenienceOptions): Promise<EdgeHunterSignalsResult>;
|
|
1170
|
+
(params: EdgeHunterObservationsParams, options?: ConvenienceOptions): Promise<EdgeHunterObservationsResult>;
|
|
1171
|
+
(params: EdgeHunterParams, options?: ConvenienceOptions): Promise<OperationResult<"getEdgeHunter">>;
|
|
1172
|
+
};
|
|
1173
|
+
/** Conditional reads are supported only by the advanced snapshot views. */
|
|
1174
|
+
getConditional: {
|
|
1175
|
+
(params: EdgeHunterSignalsParams, options?: ConvenienceOptions): Promise<EdgeHunterSignalsResult>;
|
|
1176
|
+
(params: EdgeHunterObservationsParams, options?: ConvenienceOptions): Promise<EdgeHunterObservationsResult>;
|
|
1177
|
+
(params: EdgeHunterAdvancedParams, options?: ConvenienceOptions): Promise<EdgeHunterAdvancedResult>;
|
|
1178
|
+
};
|
|
1179
|
+
signals: (params?: Omit<EdgeHunterSignalsParams, "view">, options?: ConvenienceOptions) => Promise<EdgeHunterSignalsResult>;
|
|
1180
|
+
observations: (params: Omit<EdgeHunterObservationsParams, "view">, options?: ConvenienceOptions) => Promise<EdgeHunterObservationsResult>;
|
|
1141
1181
|
};
|
|
1182
|
+
private getEdgeHunter;
|
|
1183
|
+
private getAdvancedEdgeHunter;
|
|
1142
1184
|
/** Polymarket combo fills, live count, and one combo's observed details. */
|
|
1143
1185
|
readonly combos: {
|
|
1144
1186
|
/** Recent pages use next_cursor; ranked pages use next_offset. */
|
|
1145
|
-
fills: (params?: ComboFillsParams, options?: ConvenienceOptions) => Promise<
|
|
1187
|
+
fills: (params?: ComboFillsParams, options?: ConvenienceOptions) => Promise<Omit<import("./schema.js").ComboFillsResponse, "meta"> & {
|
|
1188
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1189
|
+
}>;
|
|
1146
1190
|
summary: (options?: ConvenienceOptions) => Promise<OperationResult<"getCombosSummary">>;
|
|
1147
1191
|
get: (conditionId: OperationPath["getCombo"]["condition_id"], options?: ConvenienceOptions) => Promise<OperationResult<"getCombo">>;
|
|
1148
1192
|
};
|
|
@@ -1282,9 +1326,12 @@ export declare class OxinsiderApiClient {
|
|
|
1282
1326
|
* `facets` or `totals`). Use `paginate()` (in `pagination.ts`) to
|
|
1283
1327
|
* auto-follow `next_cursor`.
|
|
1284
1328
|
*/
|
|
1329
|
+
list<P extends EdgeHunterAdvancedParams>(operationId: "getEdgeHunter", options: ConvenienceOptions & {
|
|
1330
|
+
query: P;
|
|
1331
|
+
}): Promise<EdgeHunterCollection<P>>;
|
|
1285
1332
|
list<K extends ListOperationId>(operationId: K, ...options: OperationOptionsArgs<K, OperationRequestOptions<K>>): Promise<OperationEnvelope<K>>;
|
|
1286
1333
|
/** The untyped form; see the second `call` signature. */
|
|
1287
|
-
list<T = unknown, I extends ApiOperationId = ApiOperationId>(operationId:
|
|
1334
|
+
list<T = unknown, I extends ApiOperationId = ApiOperationId>(operationId: RuntimeListOperationId<I>, options?: ApiRequestOptions): Promise<ApiListEnvelope<T>>;
|
|
1288
1335
|
getTrader(address: OperationPath["getTrader"]["address"], options?: Omit<OperationRequestOptions<"getTrader">, "path">): Promise<OperationResult<"getTrader">>;
|
|
1289
1336
|
getTraderPnl(address: OperationPath["getTraderPnl"]["address"], options?: Omit<OperationRequestOptions<"getTraderPnl">, "path">): Promise<OperationResult<"getTraderPnl">>;
|
|
1290
1337
|
/**
|
|
@@ -1338,9 +1385,37 @@ export declare class OxinsiderApiClient {
|
|
|
1338
1385
|
* `object: "market_intel_batch"`.
|
|
1339
1386
|
*/
|
|
1340
1387
|
batchGetMarketIntel(body: OperationBody["batchGetMarketIntel"], options?: ConvenienceOptions): Promise<OperationResult<"batchGetMarketIntel">>;
|
|
1341
|
-
listLeaderboard(params?: LeaderboardListParams, options?: ConvenienceOptions): Promise<
|
|
1342
|
-
|
|
1343
|
-
|
|
1388
|
+
listLeaderboard(params?: LeaderboardListParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1389
|
+
object: "list";
|
|
1390
|
+
data: OperationData["listLeaderboard"];
|
|
1391
|
+
has_more: boolean;
|
|
1392
|
+
next_cursor?: string;
|
|
1393
|
+
total?: number;
|
|
1394
|
+
meta: ResponseMeta;
|
|
1395
|
+
}, "meta"> & {
|
|
1396
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1397
|
+
}>;
|
|
1398
|
+
listTrendingWallets(params?: TrendingWalletsParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1399
|
+
object: "list";
|
|
1400
|
+
data: OperationData["listTrendingWallets"];
|
|
1401
|
+
has_more: boolean;
|
|
1402
|
+
next_cursor?: string;
|
|
1403
|
+
total?: number;
|
|
1404
|
+
meta: ResponseMeta;
|
|
1405
|
+
}, "meta"> & {
|
|
1406
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1407
|
+
}>;
|
|
1408
|
+
listLargeTrades(params?: LargeTradeListParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1409
|
+
object: "list";
|
|
1410
|
+
data: OperationData["listLargeTrades"];
|
|
1411
|
+
data_quality: import("./schema.js").DataQuality;
|
|
1412
|
+
has_more: boolean;
|
|
1413
|
+
next_cursor?: string;
|
|
1414
|
+
total?: number;
|
|
1415
|
+
meta: ResponseMeta;
|
|
1416
|
+
}, "meta"> & {
|
|
1417
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1418
|
+
}>;
|
|
1344
1419
|
/**
|
|
1345
1420
|
* Typed conditional-read variant of {@link listLargeTrades}, for polling
|
|
1346
1421
|
* (#18507). Returns the list envelope on 200 or the typed `not_modified`
|
|
@@ -1349,24 +1424,96 @@ export declare class OxinsiderApiClient {
|
|
|
1349
1424
|
* with `If-None-Match`: a poll that finds no new trade is a 304 with no body.
|
|
1350
1425
|
*/
|
|
1351
1426
|
listLargeTradesConditional(params?: LargeTradeListParams, options?: ConvenienceOptions): Promise<OperationResult<"listLargeTrades">>;
|
|
1352
|
-
listLargeTradeHistory(params?: LargeTradeHistoryParams, options?: ConvenienceOptions): Promise<
|
|
1427
|
+
listLargeTradeHistory(params?: LargeTradeHistoryParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1428
|
+
object: "list";
|
|
1429
|
+
data: OperationData["listLargeTradeHistory"];
|
|
1430
|
+
data_quality: import("./schema.js").DataQuality;
|
|
1431
|
+
has_more: boolean;
|
|
1432
|
+
next_cursor?: string;
|
|
1433
|
+
total?: number;
|
|
1434
|
+
meta: import("./schema.js").LargeTradeHistoryMeta;
|
|
1435
|
+
}, "meta"> & {
|
|
1436
|
+
meta: ClientMeta<import("./schema.js").LargeTradeHistoryMeta>;
|
|
1437
|
+
}>;
|
|
1353
1438
|
/** @deprecated Use {@link listLargeTrades} (#16304); calls the deprecated `/api/v1/whale-trades`. */
|
|
1354
|
-
listWhaleTrades(params?: WhaleTradeListParams, options?: ConvenienceOptions): Promise<
|
|
1439
|
+
listWhaleTrades(params?: WhaleTradeListParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1440
|
+
object: "list";
|
|
1441
|
+
data: OperationData["listWhaleTrades"];
|
|
1442
|
+
data_quality: import("./schema.js").DataQuality;
|
|
1443
|
+
has_more: boolean;
|
|
1444
|
+
next_cursor?: string;
|
|
1445
|
+
total?: number;
|
|
1446
|
+
meta: ResponseMeta;
|
|
1447
|
+
}, "meta"> & {
|
|
1448
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1449
|
+
}>;
|
|
1355
1450
|
/** @deprecated Use {@link listLargeTradeHistory} (#16304); calls the deprecated `/api/v1/whale-trades/history`. */
|
|
1356
|
-
listWhaleTradeHistory(params?: WhaleTradeHistoryParams, options?: ConvenienceOptions): Promise<
|
|
1357
|
-
|
|
1358
|
-
|
|
1451
|
+
listWhaleTradeHistory(params?: WhaleTradeHistoryParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1452
|
+
object: "list";
|
|
1453
|
+
data: OperationData["listWhaleTradeHistory"];
|
|
1454
|
+
data_quality: import("./schema.js").DataQuality;
|
|
1455
|
+
has_more: boolean;
|
|
1456
|
+
next_cursor?: string;
|
|
1457
|
+
total?: number;
|
|
1458
|
+
meta: import("./schema.js").LargeTradeHistoryMeta;
|
|
1459
|
+
}, "meta"> & {
|
|
1460
|
+
meta: ClientMeta<import("./schema.js").LargeTradeHistoryMeta>;
|
|
1461
|
+
}>;
|
|
1462
|
+
listPositions(params?: PositionsListParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1463
|
+
object: "list";
|
|
1464
|
+
data: OperationData["listPositions"];
|
|
1465
|
+
data_quality: import("./schema.js").DataQuality;
|
|
1466
|
+
has_more: boolean;
|
|
1467
|
+
next_cursor?: string;
|
|
1468
|
+
total?: number;
|
|
1469
|
+
snapshot?: {
|
|
1470
|
+
as_of: string;
|
|
1471
|
+
expires_at: string;
|
|
1472
|
+
row_count: number;
|
|
1473
|
+
};
|
|
1474
|
+
meta: ResponseMeta;
|
|
1475
|
+
}, "meta"> & {
|
|
1476
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1477
|
+
}>;
|
|
1478
|
+
listLargePositions(params?: LargePositionsListParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1479
|
+
object: "list";
|
|
1480
|
+
data: OperationData["listLargePositions"];
|
|
1481
|
+
has_more: boolean;
|
|
1482
|
+
next_cursor?: string;
|
|
1483
|
+
total?: number;
|
|
1484
|
+
meta: ResponseMeta;
|
|
1485
|
+
}, "meta"> & {
|
|
1486
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1487
|
+
}>;
|
|
1359
1488
|
/**
|
|
1360
1489
|
* List ranked sharp-money flows. Canonical since #16308 ("sharp money" is
|
|
1361
1490
|
* the pinned product term); it calls `/api/v1/markets/sharp-money-flows`.
|
|
1362
1491
|
*/
|
|
1363
|
-
listSharpMoneyFlows(params?: SharpMoneyFlowsParams, options?: ConvenienceOptions): Promise<
|
|
1492
|
+
listSharpMoneyFlows(params?: SharpMoneyFlowsParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1493
|
+
object: "list";
|
|
1494
|
+
data: OperationData["listSharpMoneyFlows"];
|
|
1495
|
+
has_more: boolean;
|
|
1496
|
+
next_cursor?: string;
|
|
1497
|
+
total?: number;
|
|
1498
|
+
meta: ResponseMeta;
|
|
1499
|
+
}, "meta"> & {
|
|
1500
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1501
|
+
}>;
|
|
1364
1502
|
/**
|
|
1365
1503
|
* @deprecated Use {@link listSharpMoneyFlows} (#16308). Kept live; it calls
|
|
1366
1504
|
* the deprecated `/api/v1/markets/smart-money-flows`, whose responses carry
|
|
1367
1505
|
* `Deprecation` and a `Link rel="successor-version"`.
|
|
1368
1506
|
*/
|
|
1369
|
-
listSmartMoneyFlows(params?: OperationQuery["listSmartMoneyFlows"], options?: ConvenienceOptions): Promise<
|
|
1507
|
+
listSmartMoneyFlows(params?: OperationQuery["listSmartMoneyFlows"], options?: ConvenienceOptions): Promise<Omit<{
|
|
1508
|
+
object: "list";
|
|
1509
|
+
data: OperationData["listSmartMoneyFlows"];
|
|
1510
|
+
has_more: boolean;
|
|
1511
|
+
next_cursor?: string;
|
|
1512
|
+
total?: number;
|
|
1513
|
+
meta: ResponseMeta;
|
|
1514
|
+
}, "meta"> & {
|
|
1515
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1516
|
+
}>;
|
|
1370
1517
|
/**
|
|
1371
1518
|
* List covered games: both sides with their provider ids and live scores, the
|
|
1372
1519
|
* UTC kickoff, the provider's own status, and every linked Polymarket market
|
|
@@ -1375,7 +1522,17 @@ export declare class OxinsiderApiClient {
|
|
|
1375
1522
|
* returns an empty page rather than an error, and the response's `coverage`
|
|
1376
1523
|
* names what this deployment serves.
|
|
1377
1524
|
*/
|
|
1378
|
-
listGames(params?: GamesListParams, options?: ConvenienceOptions): Promise<
|
|
1525
|
+
listGames(params?: GamesListParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1526
|
+
object: "list";
|
|
1527
|
+
data: OperationData["listGames"];
|
|
1528
|
+
has_more: boolean;
|
|
1529
|
+
next_cursor?: string;
|
|
1530
|
+
as_of: string;
|
|
1531
|
+
coverage: import("./schema.js").GamesCoverage;
|
|
1532
|
+
meta: ResponseMeta;
|
|
1533
|
+
}, "meta"> & {
|
|
1534
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1535
|
+
}>;
|
|
1379
1536
|
/**
|
|
1380
1537
|
* Read one game by its `event_slug`, the identity the `live_sports_updated`
|
|
1381
1538
|
* webhook pulse carries. A slug outside the published coverage returns 404.
|
|
@@ -1383,11 +1540,41 @@ export declare class OxinsiderApiClient {
|
|
|
1383
1540
|
getGame(eventSlug: OperationPath["getGame"]["event_slug"], options?: ConvenienceOptions): Promise<OperationResult<"getGame">>;
|
|
1384
1541
|
searchMarkets(q: OperationQuery["searchMarkets"]["q"], options?: ConvenienceOptions & {
|
|
1385
1542
|
query?: Omit<OperationQuery["searchMarkets"], "q">;
|
|
1386
|
-
}): Promise<
|
|
1543
|
+
}): Promise<Omit<{
|
|
1544
|
+
object: "list";
|
|
1545
|
+
data: OperationData["searchMarkets"];
|
|
1546
|
+
has_more: boolean;
|
|
1547
|
+
next_cursor?: string;
|
|
1548
|
+
total?: number;
|
|
1549
|
+
meta: ResponseMeta;
|
|
1550
|
+
}, "meta"> & {
|
|
1551
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1552
|
+
}>;
|
|
1387
1553
|
searchContent(q: OperationQuery["searchContent"]["q"], options?: ConvenienceOptions & {
|
|
1388
1554
|
query?: Omit<OperationQuery["searchContent"], "q">;
|
|
1389
|
-
}): Promise<
|
|
1390
|
-
|
|
1555
|
+
}): Promise<Omit<{
|
|
1556
|
+
object: "list";
|
|
1557
|
+
data: OperationData["searchContent"];
|
|
1558
|
+
has_more: false;
|
|
1559
|
+
next_cursor?: string;
|
|
1560
|
+
total?: number;
|
|
1561
|
+
meta: ResponseMeta;
|
|
1562
|
+
}, "meta"> & {
|
|
1563
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1564
|
+
}>;
|
|
1565
|
+
exploreMarkets(params?: ExploreMarketsParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1566
|
+
object: "list";
|
|
1567
|
+
data: OperationData["exploreMarkets"];
|
|
1568
|
+
has_more: boolean;
|
|
1569
|
+
next_cursor?: string;
|
|
1570
|
+
total?: number;
|
|
1571
|
+
facets: import("./schema.js").ExploreFacets;
|
|
1572
|
+
meta: ResponseMeta;
|
|
1573
|
+
computed_at?: string;
|
|
1574
|
+
fresh_for_seconds?: number;
|
|
1575
|
+
}, "meta"> & {
|
|
1576
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1577
|
+
}>;
|
|
1391
1578
|
/** One market's flow and top positions (`GET /api/v1/market/{condition_id}/flow`). */
|
|
1392
1579
|
getMarketFlow(conditionId: OperationPath["getMarketFlow"]["condition_id"], options?: Omit<OperationRequestOptions<"getMarketFlow">, "path">): Promise<OperationResult<"getMarketFlow">>;
|
|
1393
1580
|
/**
|
|
@@ -1405,7 +1592,19 @@ export declare class OxinsiderApiClient {
|
|
|
1405
1592
|
* the `market`, `scan` and roster `totals` beside `data`; `total` is the
|
|
1406
1593
|
* count matching the filters across every page.
|
|
1407
1594
|
*/
|
|
1408
|
-
getMarketHolders(conditionId: OperationPath["getMarketHolders"]["condition_id"], params?: OperationQuery["getMarketHolders"], options?: ConvenienceOptions): Promise<
|
|
1595
|
+
getMarketHolders(conditionId: OperationPath["getMarketHolders"]["condition_id"], params?: OperationQuery["getMarketHolders"], options?: ConvenienceOptions): Promise<Omit<{
|
|
1596
|
+
object: "list";
|
|
1597
|
+
data: OperationData["getMarketHolders"];
|
|
1598
|
+
has_more: boolean;
|
|
1599
|
+
next_cursor?: string;
|
|
1600
|
+
total?: number;
|
|
1601
|
+
market: import("./schema.js").MarketHoldersMarket;
|
|
1602
|
+
scan: import("./schema.js").MarketHoldersScan;
|
|
1603
|
+
totals: import("./schema.js").MarketHoldersTotals;
|
|
1604
|
+
meta: ResponseMeta;
|
|
1605
|
+
}, "meta"> & {
|
|
1606
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1607
|
+
}>;
|
|
1409
1608
|
/**
|
|
1410
1609
|
* Fetch bucketed OHLC candles for a market's outcome tokens.
|
|
1411
1610
|
* Resolution defaults to the server default; pass `params.resolution` as
|
|
@@ -1420,7 +1619,16 @@ export declare class OxinsiderApiClient {
|
|
|
1420
1619
|
*/
|
|
1421
1620
|
getSuspiciousTrade(id: OperationPath["getSuspiciousTrade"]["id"], options?: ConvenienceOptions): Promise<OperationResult<"getSuspiciousTrade">>;
|
|
1422
1621
|
/** List stored trades whose recorded suspicion score meets the flag threshold. */
|
|
1423
|
-
listSuspiciousTrades(params?: SuspiciousTradesListParams, options?: ConvenienceOptions): Promise<
|
|
1622
|
+
listSuspiciousTrades(params?: SuspiciousTradesListParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1623
|
+
object: "list";
|
|
1624
|
+
data: OperationData["listSuspiciousTrades"];
|
|
1625
|
+
has_more: boolean;
|
|
1626
|
+
next_cursor?: string;
|
|
1627
|
+
total?: number;
|
|
1628
|
+
meta: ResponseMeta;
|
|
1629
|
+
}, "meta"> & {
|
|
1630
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1631
|
+
}>;
|
|
1424
1632
|
/**
|
|
1425
1633
|
* @deprecated Use `getSuspiciousTrade()`; renamed in #16301. This method
|
|
1426
1634
|
* keeps calling the deprecated `GET /api/v1/insider-radar/{id}`, which stays
|
|
@@ -1434,7 +1642,16 @@ export declare class OxinsiderApiClient {
|
|
|
1434
1642
|
* with no retirement date and answers with `Deprecation` plus a `Link
|
|
1435
1643
|
* rel="successor-version"` header.
|
|
1436
1644
|
*/
|
|
1437
|
-
listInsiderRadar(params?: InsiderRadarListParams, options?: ConvenienceOptions): Promise<
|
|
1645
|
+
listInsiderRadar(params?: InsiderRadarListParams, options?: ConvenienceOptions): Promise<Omit<{
|
|
1646
|
+
object: "list";
|
|
1647
|
+
data: OperationData["listInsiderRadar"];
|
|
1648
|
+
has_more: boolean;
|
|
1649
|
+
next_cursor?: string;
|
|
1650
|
+
total?: number;
|
|
1651
|
+
meta: ResponseMeta;
|
|
1652
|
+
}, "meta"> & {
|
|
1653
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1654
|
+
}>;
|
|
1438
1655
|
getLargeTrade(id: OperationPath["getLargeTrade"]["id"], options?: ConvenienceOptions): Promise<OperationResult<"getLargeTrade">>;
|
|
1439
1656
|
/** @deprecated Use {@link getLargeTrade} (#16304); calls the deprecated `/api/v1/whale-trades/{id}`. */
|
|
1440
1657
|
getWhaleTrade(id: OperationPath["getWhaleTrade"]["id"], options?: ConvenienceOptions): Promise<OperationResult<"getWhaleTrade">>;
|
|
@@ -1451,7 +1668,16 @@ export declare class OxinsiderApiClient {
|
|
|
1451
1668
|
* repeat, so it is retried on a transport or 5xx failure like a read.
|
|
1452
1669
|
*/
|
|
1453
1670
|
cancelTraderExport(address: OperationPath["cancelTraderExport"]["address"], jobId: OperationQuery["cancelTraderExport"]["job_id"], options?: ConvenienceOptions): Promise<OperationResult<"cancelTraderExport">>;
|
|
1454
|
-
listWebhooks(options?: ConvenienceOptions): Promise<
|
|
1671
|
+
listWebhooks(options?: ConvenienceOptions): Promise<Omit<{
|
|
1672
|
+
object: "list";
|
|
1673
|
+
data: OperationData["listWebhooks"];
|
|
1674
|
+
has_more: boolean;
|
|
1675
|
+
next_cursor?: string;
|
|
1676
|
+
total?: number;
|
|
1677
|
+
meta: ResponseMeta;
|
|
1678
|
+
}, "meta"> & {
|
|
1679
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1680
|
+
}>;
|
|
1455
1681
|
getWebhook(id: OperationPath["getWebhook"]["id"], options?: ConvenienceOptions): Promise<OperationResult<"getWebhook">>;
|
|
1456
1682
|
createWebhook(body: OperationBody["createWebhook"], options?: ConvenienceOptions): Promise<OperationResult<"createWebhook">>;
|
|
1457
1683
|
/** Admit durable consent; 202 acknowledges admission, not activation. */
|
|
@@ -1464,9 +1690,27 @@ export declare class OxinsiderApiClient {
|
|
|
1464
1690
|
* Fetch the self-describing webhook event catalog (each entry's `id`,
|
|
1465
1691
|
* description, payload shape, and active/dormant status).
|
|
1466
1692
|
*/
|
|
1467
|
-
listWebhookEvents(options?: ConvenienceOptions): Promise<
|
|
1693
|
+
listWebhookEvents(options?: ConvenienceOptions): Promise<Omit<{
|
|
1694
|
+
object: "list";
|
|
1695
|
+
data: OperationData["listWebhookEvents"];
|
|
1696
|
+
has_more: boolean;
|
|
1697
|
+
next_cursor?: string;
|
|
1698
|
+
total?: number;
|
|
1699
|
+
meta: ResponseMeta;
|
|
1700
|
+
}, "meta"> & {
|
|
1701
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1702
|
+
}>;
|
|
1468
1703
|
/** List delivery attempts for one webhook endpoint (Stripe-style list). */
|
|
1469
|
-
listWebhookDeliveries(webhookId: OperationPath["listWebhookDeliveries"]["id"], params?: OperationQuery["listWebhookDeliveries"], options?: ConvenienceOptions): Promise<
|
|
1704
|
+
listWebhookDeliveries(webhookId: OperationPath["listWebhookDeliveries"]["id"], params?: OperationQuery["listWebhookDeliveries"], options?: ConvenienceOptions): Promise<Omit<{
|
|
1705
|
+
object: "list";
|
|
1706
|
+
data: OperationData["listWebhookDeliveries"];
|
|
1707
|
+
has_more: boolean;
|
|
1708
|
+
next_cursor?: string;
|
|
1709
|
+
total?: number;
|
|
1710
|
+
meta: ResponseMeta;
|
|
1711
|
+
}, "meta"> & {
|
|
1712
|
+
meta: ClientMeta<ResponseMeta>;
|
|
1713
|
+
}>;
|
|
1470
1714
|
/**
|
|
1471
1715
|
* Requeue one `dead_letter` delivery with a fresh attempt budget and return
|
|
1472
1716
|
* the delivery row. Re-enabling a disabled endpoint resends nothing, so this
|