@structbuild/sdk 0.1.18 → 0.1.20

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 CHANGED
@@ -89,8 +89,7 @@ const history = await client.holders.getMarketHoldersHistory({ condition_id: "0x
89
89
 
90
90
  ```typescript
91
91
  const series = await client.series.getSeriesList();
92
- const detail = await client.series.getSeriesDetail({ identifier: "my-series" });
93
- const seriesEvents = await client.series.getSeriesEvents({ identifier: "my-series" });
92
+ const outcomes = await client.series.getSeriesOutcomes({ series_slug: "my-series" });
94
93
  ```
95
94
 
96
95
  ### Search, Tags, Bonds
@@ -103,6 +103,46 @@ export interface paths {
103
103
  patch?: never;
104
104
  trace?: never;
105
105
  };
106
+ "/polymarket/events/slug/{slug}": {
107
+ parameters: {
108
+ query?: never;
109
+ header?: never;
110
+ path?: never;
111
+ cookie?: never;
112
+ };
113
+ /**
114
+ * Get event by slug
115
+ * @description Retrieve a single event by its slug with optional nested tags, markets, and metrics
116
+ */
117
+ get: operations["get_event_by_slug"];
118
+ put?: never;
119
+ post?: never;
120
+ delete?: never;
121
+ options?: never;
122
+ head?: never;
123
+ patch?: never;
124
+ trace?: never;
125
+ };
126
+ "/polymarket/events/{identifier}": {
127
+ parameters: {
128
+ query?: never;
129
+ header?: never;
130
+ path?: never;
131
+ cookie?: never;
132
+ };
133
+ /**
134
+ * Get event by ID or slug
135
+ * @description Retrieve a single event by its numeric ID or slug with optional nested tags, markets, and metrics
136
+ */
137
+ get: operations["get_event"];
138
+ put?: never;
139
+ post?: never;
140
+ delete?: never;
141
+ options?: never;
142
+ head?: never;
143
+ patch?: never;
144
+ trace?: never;
145
+ };
106
146
  "/polymarket/holders/markets": {
107
147
  parameters: {
108
148
  query?: never;
@@ -363,7 +403,7 @@ export interface paths {
363
403
  patch?: never;
364
404
  trace?: never;
365
405
  };
366
- "/polymarket/market/trades": {
406
+ "/polymarket/market/slug/{slug}": {
367
407
  parameters: {
368
408
  query?: never;
369
409
  header?: never;
@@ -371,10 +411,10 @@ export interface paths {
371
411
  cookie?: never;
372
412
  };
373
413
  /**
374
- * Get market trades
375
- * @description Retrieve trades for one or more markets, with filtering by trader, side, price, amount, and time range
414
+ * Get market by slug
415
+ * @description Retrieve a single market by its slug with optional nested tags, event, and metrics
376
416
  */
377
- get: operations["get_market_trades"];
417
+ get: operations["get_market_by_slug"];
378
418
  put?: never;
379
419
  post?: never;
380
420
  delete?: never;
@@ -383,7 +423,7 @@ export interface paths {
383
423
  patch?: never;
384
424
  trace?: never;
385
425
  };
386
- "/polymarket/market/volume-chart": {
426
+ "/polymarket/market/trades": {
387
427
  parameters: {
388
428
  query?: never;
389
429
  header?: never;
@@ -391,10 +431,10 @@ export interface paths {
391
431
  cookie?: never;
392
432
  };
393
433
  /**
394
- * Get market volume chart
395
- * @description Retrieve volume breakdown by YES/NO outcome over time for a prediction market
434
+ * Get market trades
435
+ * @description Retrieve trades for one or more markets, with filtering by trader, side, price, amount, and time range
396
436
  */
397
- get: operations["get_market_volume_chart"];
437
+ get: operations["get_market_trades"];
398
438
  put?: never;
399
439
  post?: never;
400
440
  delete?: never;
@@ -403,7 +443,7 @@ export interface paths {
403
443
  patch?: never;
404
444
  trace?: never;
405
445
  };
406
- "/polymarket/search": {
446
+ "/polymarket/market/volume-chart": {
407
447
  parameters: {
408
448
  query?: never;
409
449
  header?: never;
@@ -411,10 +451,10 @@ export interface paths {
411
451
  cookie?: never;
412
452
  };
413
453
  /**
414
- * Search events or traders
415
- * @description Search across events and traders by keyword
454
+ * Get market volume chart
455
+ * @description Retrieve volume breakdown by YES/NO outcome over time for a prediction market
416
456
  */
417
- get: operations["search"];
457
+ get: operations["get_market_volume_chart"];
418
458
  put?: never;
419
459
  post?: never;
420
460
  delete?: never;
@@ -423,7 +463,7 @@ export interface paths {
423
463
  patch?: never;
424
464
  trace?: never;
425
465
  };
426
- "/polymarket/series": {
466
+ "/polymarket/market/{condition_id}": {
427
467
  parameters: {
428
468
  query?: never;
429
469
  header?: never;
@@ -431,10 +471,10 @@ export interface paths {
431
471
  cookie?: never;
432
472
  };
433
473
  /**
434
- * Get series
435
- * @description Retrieve a paginated list of event series
474
+ * Get market by condition ID
475
+ * @description Retrieve a single market by its condition ID with optional nested tags, event, and metrics
436
476
  */
437
- get: operations["get_series_list"];
477
+ get: operations["get_market"];
438
478
  put?: never;
439
479
  post?: never;
440
480
  delete?: never;
@@ -443,7 +483,7 @@ export interface paths {
443
483
  patch?: never;
444
484
  trace?: never;
445
485
  };
446
- "/polymarket/series/outcomes": {
486
+ "/polymarket/search": {
447
487
  parameters: {
448
488
  query?: never;
449
489
  header?: never;
@@ -451,10 +491,10 @@ export interface paths {
451
491
  cookie?: never;
452
492
  };
453
493
  /**
454
- * Get series market outcomes
455
- * @description Returns the winning outcome name for each resolved market across all events in a series, keyed by market slug. Useful for checking historical results across recurring series (e.g., btc-updown-5m).
494
+ * Search events or traders
495
+ * @description Search across events and traders by keyword
456
496
  */
457
- get: operations["get_series_outcomes"];
497
+ get: operations["search"];
458
498
  put?: never;
459
499
  post?: never;
460
500
  delete?: never;
@@ -463,7 +503,7 @@ export interface paths {
463
503
  patch?: never;
464
504
  trace?: never;
465
505
  };
466
- "/polymarket/series/{identifier}": {
506
+ "/polymarket/series": {
467
507
  parameters: {
468
508
  query?: never;
469
509
  header?: never;
@@ -471,10 +511,10 @@ export interface paths {
471
511
  cookie?: never;
472
512
  };
473
513
  /**
474
- * Get series by ID
475
- * @description Retrieve a single series by its ID or slug
514
+ * List or get series
515
+ * @description Retrieve series. Use `id` or `series_slug` for single lookup, `series_ids` or `series_slugs` (comma-separated, max 250, mutually exclusive) for multi-lookup, or paginate with `active_only`.
476
516
  */
477
- get: operations["get_series_by_id"];
517
+ get: operations["get_series_list"];
478
518
  put?: never;
479
519
  post?: never;
480
520
  delete?: never;
@@ -483,7 +523,7 @@ export interface paths {
483
523
  patch?: never;
484
524
  trace?: never;
485
525
  };
486
- "/polymarket/series/{identifier}/events": {
526
+ "/polymarket/series/outcomes": {
487
527
  parameters: {
488
528
  query?: never;
489
529
  header?: never;
@@ -491,10 +531,10 @@ export interface paths {
491
531
  cookie?: never;
492
532
  };
493
533
  /**
494
- * Get events from series
495
- * @description Retrieve all events belonging to a specific series
534
+ * Get series market outcomes
535
+ * @description Returns the winning outcome name for each resolved market across all events in a series, keyed by market slug. Useful for checking historical results across recurring series (e.g., btc-updown-5m).
496
536
  */
497
- get: operations["get_series_events"];
537
+ get: operations["get_series_outcomes"];
498
538
  put?: never;
499
539
  post?: never;
500
540
  delete?: never;
@@ -1653,25 +1693,6 @@ export interface components {
1653
1693
  events: unknown;
1654
1694
  traders: components["schemas"]["Trader"][];
1655
1695
  };
1656
- SeriesFullResponse: {
1657
- id: string;
1658
- slug?: string | null;
1659
- ticker?: string | null;
1660
- title?: string | null;
1661
- description?: string | null;
1662
- series_type?: string | null;
1663
- recurrence?: string | null;
1664
- image_url?: string | null;
1665
- active: boolean;
1666
- closed: boolean;
1667
- archived: boolean;
1668
- featured: boolean;
1669
- restricted: boolean;
1670
- pyth_token_id?: string | null;
1671
- cg_asset_name?: string | null;
1672
- tags: components["schemas"]["PolymarketTag"][];
1673
- events: components["schemas"]["PolymarketEvent"][];
1674
- };
1675
1696
  SimpleTimeframeMetrics: {
1676
1697
  /**
1677
1698
  * Format: double
@@ -1956,6 +1977,8 @@ export interface operations {
1956
1977
  limit?: number;
1957
1978
  /** @description Cursor-based pagination key */
1958
1979
  pagination_key?: string;
1980
+ /** @description Return truncated response optimized for AI consumers (default: false) */
1981
+ ai?: boolean;
1959
1982
  };
1960
1983
  header?: never;
1961
1984
  path?: never;
@@ -2081,6 +2104,84 @@ export interface operations {
2081
2104
  };
2082
2105
  };
2083
2106
  };
2107
+ get_event_by_slug: {
2108
+ parameters: {
2109
+ query?: {
2110
+ /** @description Include tags array (default: true) */
2111
+ include_tags?: boolean;
2112
+ /** @description Include markets array with outcomes (default: true) */
2113
+ include_markets?: boolean;
2114
+ /** @description Include metrics object with all timeframes (default: true) */
2115
+ include_metrics?: boolean;
2116
+ /** @description Return truncated response optimized for AI consumers (default: false) */
2117
+ ai?: boolean;
2118
+ };
2119
+ header?: never;
2120
+ path: {
2121
+ /** @description Event slug */
2122
+ slug: string;
2123
+ };
2124
+ cookie?: never;
2125
+ };
2126
+ requestBody?: never;
2127
+ responses: {
2128
+ /** @description Event with nested tags, markets, and series */
2129
+ 200: {
2130
+ headers: {
2131
+ [name: string]: unknown;
2132
+ };
2133
+ content: {
2134
+ "application/json": components["schemas"]["PolymarketEvent"];
2135
+ };
2136
+ };
2137
+ /** @description Event not found */
2138
+ 404: {
2139
+ headers: {
2140
+ [name: string]: unknown;
2141
+ };
2142
+ content?: never;
2143
+ };
2144
+ };
2145
+ };
2146
+ get_event: {
2147
+ parameters: {
2148
+ query?: {
2149
+ /** @description Include tags array (default: true) */
2150
+ include_tags?: boolean;
2151
+ /** @description Include markets array with outcomes (default: true) */
2152
+ include_markets?: boolean;
2153
+ /** @description Include metrics object with all timeframes (default: true) */
2154
+ include_metrics?: boolean;
2155
+ /** @description Return truncated response optimized for AI consumers (default: false) */
2156
+ ai?: boolean;
2157
+ };
2158
+ header?: never;
2159
+ path: {
2160
+ /** @description Event ID or slug */
2161
+ identifier: string;
2162
+ };
2163
+ cookie?: never;
2164
+ };
2165
+ requestBody?: never;
2166
+ responses: {
2167
+ /** @description Event with nested tags, markets, and series */
2168
+ 200: {
2169
+ headers: {
2170
+ [name: string]: unknown;
2171
+ };
2172
+ content: {
2173
+ "application/json": components["schemas"]["PolymarketEvent"];
2174
+ };
2175
+ };
2176
+ /** @description Event not found */
2177
+ 404: {
2178
+ headers: {
2179
+ [name: string]: unknown;
2180
+ };
2181
+ content?: never;
2182
+ };
2183
+ };
2184
+ };
2084
2185
  get_market_holders: {
2085
2186
  parameters: {
2086
2187
  query?: {
@@ -2094,6 +2195,8 @@ export interface operations {
2094
2195
  min_shares?: string;
2095
2196
  /** @description Maximum shares held (decimal string) */
2096
2197
  max_shares?: string;
2198
+ /** @description Return truncated response optimized for AI consumers (default: false) */
2199
+ ai?: boolean;
2097
2200
  };
2098
2201
  header?: never;
2099
2202
  path?: never;
@@ -2164,6 +2267,8 @@ export interface operations {
2164
2267
  min_shares?: string;
2165
2268
  /** @description Maximum shares held (decimal string) */
2166
2269
  max_shares?: string;
2270
+ /** @description Return truncated response optimized for AI consumers (default: false) */
2271
+ ai?: boolean;
2167
2272
  };
2168
2273
  header?: never;
2169
2274
  path: {
@@ -2292,6 +2397,8 @@ export interface operations {
2292
2397
  limit?: number;
2293
2398
  /** @description Cursor-based pagination key */
2294
2399
  pagination_key?: string;
2400
+ /** @description Return truncated response optimized for AI consumers (default: false) */
2401
+ ai?: boolean;
2295
2402
  };
2296
2403
  header?: never;
2297
2404
  path?: never;
@@ -2577,6 +2684,43 @@ export interface operations {
2577
2684
  };
2578
2685
  };
2579
2686
  };
2687
+ get_market_by_slug: {
2688
+ parameters: {
2689
+ query?: {
2690
+ /** @description Include tags array (default: true) */
2691
+ include_tags?: boolean;
2692
+ /** @description Include event object (default: true) */
2693
+ include_event?: boolean;
2694
+ /** @description Include all timeframe metrics (default: true) */
2695
+ include_metrics?: boolean;
2696
+ /** @description Return truncated response optimized for AI consumers (default: false) */
2697
+ ai?: boolean;
2698
+ };
2699
+ header?: never;
2700
+ path: {
2701
+ /** @description Market slug (e.g. `will-trump-win`) */
2702
+ slug: string;
2703
+ };
2704
+ cookie?: never;
2705
+ };
2706
+ requestBody?: never;
2707
+ responses: {
2708
+ /** @description Market with metadata, outcomes, tags, event, and metrics */
2709
+ 200: {
2710
+ headers: {
2711
+ [name: string]: unknown;
2712
+ };
2713
+ content?: never;
2714
+ };
2715
+ /** @description Market not found */
2716
+ 404: {
2717
+ headers: {
2718
+ [name: string]: unknown;
2719
+ };
2720
+ content?: never;
2721
+ };
2722
+ };
2723
+ };
2580
2724
  get_market_trades: {
2581
2725
  parameters: {
2582
2726
  query?: {
@@ -2620,6 +2764,8 @@ export interface operations {
2620
2764
  pagination_key?: number;
2621
2765
  /** @description Sort newest first (default: true) */
2622
2766
  sort_desc?: boolean;
2767
+ /** @description Return truncated response optimized for AI consumers (default: false) */
2768
+ ai?: boolean;
2623
2769
  };
2624
2770
  header?: never;
2625
2771
  path?: never;
@@ -2671,6 +2817,43 @@ export interface operations {
2671
2817
  };
2672
2818
  };
2673
2819
  };
2820
+ get_market: {
2821
+ parameters: {
2822
+ query?: {
2823
+ /** @description Include tags array (default: true) */
2824
+ include_tags?: boolean;
2825
+ /** @description Include event object (default: true) */
2826
+ include_event?: boolean;
2827
+ /** @description Include all timeframe metrics (default: true) */
2828
+ include_metrics?: boolean;
2829
+ /** @description Return truncated response optimized for AI consumers (default: false) */
2830
+ ai?: boolean;
2831
+ };
2832
+ header?: never;
2833
+ path: {
2834
+ /** @description Market condition ID (0x-prefixed hex) */
2835
+ condition_id: string;
2836
+ };
2837
+ cookie?: never;
2838
+ };
2839
+ requestBody?: never;
2840
+ responses: {
2841
+ /** @description Market with metadata, outcomes, tags, event, and metrics */
2842
+ 200: {
2843
+ headers: {
2844
+ [name: string]: unknown;
2845
+ };
2846
+ content?: never;
2847
+ };
2848
+ /** @description Market not found */
2849
+ 404: {
2850
+ headers: {
2851
+ [name: string]: unknown;
2852
+ };
2853
+ content?: never;
2854
+ };
2855
+ };
2856
+ };
2674
2857
  search: {
2675
2858
  parameters: {
2676
2859
  query: {
@@ -2701,9 +2884,15 @@ export interface operations {
2701
2884
  get_series_list: {
2702
2885
  parameters: {
2703
2886
  query?: {
2704
- /** @description Only active series (default: true) */
2887
+ /** @description Single series ID for direct lookup */
2888
+ id?: string;
2889
+ /** @description Comma-separated series IDs (max 250). Mutually exclusive with series_slugs. */
2890
+ series_ids?: string;
2891
+ /** @description Comma-separated series slugs (max 250). Mutually exclusive with series_ids. */
2892
+ series_slugs?: string;
2893
+ /** @description Only active series (default: true). Ignored when series_ids or series_slugs are provided. */
2705
2894
  active_only?: boolean;
2706
- /** @description Results limit (default: 10) */
2895
+ /** @description Results limit (default: 10, max: 250) */
2707
2896
  limit?: number;
2708
2897
  /** @description Cursor for pagination: id of the last series from the previous page */
2709
2898
  pagination_key?: string;
@@ -2714,7 +2903,7 @@ export interface operations {
2714
2903
  };
2715
2904
  requestBody?: never;
2716
2905
  responses: {
2717
- /** @description List of prediction market series */
2906
+ /** @description Series or list of series */
2718
2907
  200: {
2719
2908
  headers: {
2720
2909
  [name: string]: unknown;
@@ -2723,6 +2912,13 @@ export interface operations {
2723
2912
  "application/json": components["schemas"]["PolymarketSeries"][];
2724
2913
  };
2725
2914
  };
2915
+ /** @description series_ids and series_slugs cannot both be provided */
2916
+ 400: {
2917
+ headers: {
2918
+ [name: string]: unknown;
2919
+ };
2920
+ content?: never;
2921
+ };
2726
2922
  };
2727
2923
  };
2728
2924
  get_series_outcomes: {
@@ -2757,79 +2953,6 @@ export interface operations {
2757
2953
  };
2758
2954
  };
2759
2955
  };
2760
- get_series_by_id: {
2761
- parameters: {
2762
- query?: {
2763
- /** @description Return minimal data without events (default: false) */
2764
- slim?: boolean;
2765
- /** @description Events to include (default: 20, max: 100) */
2766
- event_limit?: number;
2767
- /** @description Event pagination offset */
2768
- event_offset?: number;
2769
- };
2770
- header?: never;
2771
- path: {
2772
- /** @description Series slug or ID */
2773
- identifier: string;
2774
- };
2775
- cookie?: never;
2776
- };
2777
- requestBody?: never;
2778
- responses: {
2779
- /** @description Series details with events and tags */
2780
- 200: {
2781
- headers: {
2782
- [name: string]: unknown;
2783
- };
2784
- content: {
2785
- "application/json": components["schemas"]["SeriesFullResponse"];
2786
- };
2787
- };
2788
- /** @description Series not found */
2789
- 404: {
2790
- headers: {
2791
- [name: string]: unknown;
2792
- };
2793
- content?: never;
2794
- };
2795
- };
2796
- };
2797
- get_series_events: {
2798
- parameters: {
2799
- query?: {
2800
- /** @description Only active events (default: false) */
2801
- active_only?: boolean;
2802
- /** @description Include tags array (default: true) */
2803
- include_tags?: boolean;
2804
- /** @description Include markets array with outcomes (default: true) */
2805
- include_markets?: boolean;
2806
- /** @description Include metrics object with all timeframes (default: true) */
2807
- include_metrics?: boolean;
2808
- /** @description Results limit (default: 10) */
2809
- limit?: number;
2810
- /** @description Offset-based pagination key (integer offset into result set) */
2811
- pagination_key?: string;
2812
- };
2813
- header?: never;
2814
- path: {
2815
- /** @description Series slug or ID */
2816
- identifier: string;
2817
- };
2818
- cookie?: never;
2819
- };
2820
- requestBody?: never;
2821
- responses: {
2822
- /** @description Events belonging to this series with nested tags and markets */
2823
- 200: {
2824
- headers: {
2825
- [name: string]: unknown;
2826
- };
2827
- content: {
2828
- "application/json": components["schemas"]["PolymarketEvent"][];
2829
- };
2830
- };
2831
- };
2832
- };
2833
2956
  get_tags: {
2834
2957
  parameters: {
2835
2958
  query?: {
@@ -3198,6 +3321,8 @@ export interface operations {
3198
3321
  pagination_key?: number;
3199
3322
  /** @description Sort newest first (default: true) */
3200
3323
  sort_desc?: boolean;
3324
+ /** @description Return truncated response optimized for AI consumers (default: false) */
3325
+ ai?: boolean;
3201
3326
  };
3202
3327
  header?: never;
3203
3328
  path: {