@structbuild/sdk 0.5.2 → 0.5.4

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.
@@ -684,111 +684,192 @@ export interface components {
684
684
  slug?: string | null;
685
685
  event_slug?: string | null;
686
686
  };
687
- /** @description Payload delivered on every raw Chainlink price tick for a tracked crypto asset */
687
+ /** @description Subscription filters for the `asset_price_tick` event. All fields are optional. */
688
+ AssetPriceTickFilters: {
689
+ /** @description Restrict to these crypto assets. Empty = all assets. */
690
+ asset_symbols?: components["schemas"]["WebhookAssetSymbol"][] | null;
691
+ };
692
+ /** @description Webhook payload for an asset price tick. */
688
693
  AssetPriceTickPayload: {
694
+ /** @description Asset symbol */
695
+ symbol: components["schemas"]["WebhookAssetSymbol"];
689
696
  /**
690
- * @description Asset symbol
691
- * @enum {string}
697
+ * Format: double
698
+ * @description Current price from the Chainlink feed
692
699
  */
693
- symbol: "BTC" | "ETH" | "SOL" | "XRP" | "DOGE" | "BNB" | "HYPE";
694
- /** @description Current asset price in USD from the Chainlink feed */
695
700
  price: number;
696
701
  /**
697
702
  * Format: int64
698
- * @description Tick timestamp (milliseconds since Unix epoch)
703
+ * @description Tick timestamp as reported by the WebSocket feed (milliseconds since epoch)
699
704
  */
700
705
  timestamp_ms: number;
701
706
  };
702
- /** @description Payload delivered twice per candle — once on open and once on close. `close_price` is 0.0 on the "open" update. */
707
+ /** @description Subscription filters for the `asset_price_window_update` event. All fields are optional. */
708
+ AssetPriceWindowUpdateFilters: {
709
+ /** @description Restrict to these crypto assets. Empty = all assets. */
710
+ asset_symbols?: components["schemas"]["WebhookAssetSymbol"][] | null;
711
+ /** @description Restrict to these candle sizes. Empty = all sizes. */
712
+ timeframes?: components["schemas"]["AssetWindowFilterTimeframe"][] | null;
713
+ };
714
+ /** @description Webhook payload for an asset price window open or close. */
703
715
  AssetPriceWindowUpdatePayload: {
704
- /**
705
- * @description Asset symbol
706
- * @enum {string}
707
- */
708
- symbol: "BTC" | "ETH" | "SOL" | "XRP" | "DOGE" | "BNB" | "HYPE";
709
- /**
710
- * @description Candle / window size
711
- * @enum {string}
712
- */
713
- variant: "5m" | "15m" | "1h" | "4h" | "1d" | "24h";
716
+ /** @description Asset symbol */
717
+ symbol: components["schemas"]["WebhookAssetSymbol"];
718
+ /** @description Time-window variant */
719
+ variant: components["schemas"]["AssetPriceWindowVariant"];
714
720
  /**
715
721
  * Format: int64
716
- * @description Window start timestamp (milliseconds since Unix epoch)
722
+ * @description Window start timestamp (milliseconds since epoch)
717
723
  */
718
724
  start_time: number;
719
725
  /**
720
726
  * Format: int64
721
- * @description Window end timestamp (milliseconds since Unix epoch)
727
+ * @description Window end timestamp (milliseconds since epoch)
722
728
  */
723
729
  end_time: number;
724
- /** @description Opening price at start_time (USD) */
730
+ /**
731
+ * Format: double
732
+ * @description Opening price at start_time
733
+ */
725
734
  open_price: number;
726
- /** @description Closing price at end_time (USD). 0.0 when update_type is "open" (not yet available). */
735
+ /**
736
+ * Format: double
737
+ * @description Closing price at end_time (0.0 on an "open" update — not yet available)
738
+ */
727
739
  close_price: number;
740
+ /** @description "open" when the window starts, "close" when the window is complete */
741
+ update_type: components["schemas"]["AssetPriceWindowUpdateType"];
742
+ };
743
+ /**
744
+ * @description Whether this update is the open or the close of a candle.
745
+ * @enum {string}
746
+ */
747
+ AssetPriceWindowUpdateType: "open" | "close";
748
+ /**
749
+ * @description Time-window variant emitted by the asset price window stream.
750
+ * @enum {string}
751
+ */
752
+ AssetPriceWindowVariant: "5m" | "15m" | "1h" | "4h" | "1d" | "24h";
753
+ /**
754
+ * @description Candle sizes accepted by `asset_price_window_update.timeframes`.
755
+ * @enum {string}
756
+ */
757
+ AssetWindowFilterTimeframe: "5m" | "15m" | "1h" | "4h" | "1d" | "24h";
758
+ /**
759
+ * @description Subscription filters for the `close_to_bond` event. At least one of
760
+ * `min_probability` or `max_probability` is required (enforced at runtime).
761
+ */
762
+ CloseToBondFilters: {
728
763
  /**
729
- * @description "open" when the candle opens, "close" when it closes with a confirmed price
730
- * @enum {string}
764
+ * Format: double
765
+ * @description Trigger when the YES outcome price is ≥ this value (e.g. 0.95 for 95% certainty). At least one of `min_probability` or `max_probability` must be set.
766
+ */
767
+ min_probability?: number | null;
768
+ /**
769
+ * Format: double
770
+ * @description Trigger when the YES outcome price is ≤ this value (e.g. 0.05 for near-certain NO).
731
771
  */
732
- update_type: "open" | "close";
772
+ max_probability?: number | null;
773
+ /** @description Restrict to these markets. */
774
+ condition_ids?: string[] | null;
775
+ /** @description Restrict to these outcome token IDs. */
776
+ position_ids?: string[] | null;
777
+ /** @description Restrict to markets in these events. */
778
+ event_slugs?: string[] | null;
779
+ /** @description Restrict to these outcome names (e.g. \["Yes", "No"\]). */
780
+ outcomes?: string[] | null;
781
+ /** @description Restrict by outcome index. 0 = Yes/Up, 1 = No. Position 0 usually represents the Up/Yes side in binary markets. */
782
+ position_outcome_indices?: number[] | null;
783
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
784
+ exclude_shortterm_markets?: boolean | null;
733
785
  };
734
- /** @description Payload delivered when a trade occurs at a near-certain-outcome price */
786
+ /** @description Close-to-bond webhook payload */
735
787
  CloseToBondPayload: {
736
- /** @description Limit-order maker wallet address (lowercase) */
788
+ /** @description Trader address (the limit-order maker) */
737
789
  trader: string;
738
- /** @description Order filler wallet address (lowercase) */
790
+ /** @description Taker address (the order filler often the exchange contract) */
739
791
  taker: string;
740
- /** @description ERC-1155 outcome token ID */
792
+ /** @description Position ID (ERC1155 token ID) */
741
793
  position_id: string;
742
- /** @description Parent market condition ID */
794
+ /** @description Condition ID (parent market) */
743
795
  condition_id?: string | null;
744
796
  /** @description Outcome name (e.g. "Yes", "No") */
745
797
  outcome?: string | null;
746
- /** @description 0 = Yes/Up, 1 = No */
798
+ /**
799
+ * Format: int32
800
+ * @description Outcome index (0 = Yes/Up, 1 = No). Position 0 usually represents Yes/Up.
801
+ */
747
802
  outcome_index?: number | null;
803
+ /** @description Market question */
748
804
  question?: string | null;
805
+ /** @description Market slug */
749
806
  market_slug?: string | null;
807
+ /** @description Event slug */
750
808
  event_slug?: string | null;
809
+ /** @description Trade ID */
751
810
  trade_id: string;
752
811
  /** @description Transaction hash */
753
812
  hash: string;
754
- /** Format: int64 */
813
+ /**
814
+ * Format: int64
815
+ * @description Block number
816
+ */
755
817
  block: number;
756
818
  /**
757
819
  * Format: int64
758
- * @description Unix seconds
820
+ * @description Confirmed timestamp (Unix seconds)
759
821
  */
760
822
  confirmed_at: number;
761
- /** @description USD size of the trade */
823
+ /**
824
+ * Format: double
825
+ * @description USD size of the trade
826
+ */
762
827
  amount_usd: number;
828
+ /**
829
+ * Format: double
830
+ * @description Outcome shares traded
831
+ */
763
832
  shares_amount: number;
764
- /** @description Fee paid in USD */
833
+ /**
834
+ * Format: double
835
+ * @description Fee paid (USD)
836
+ */
765
837
  fee: number;
766
- /** @enum {string} */
767
- side: "Buy" | "Sell";
768
- /** @description Price that triggered the notification (0.0–1.0) */
838
+ /** @description Trade side ("Buy" or "Sell") */
839
+ side: string;
840
+ /**
841
+ * Format: double
842
+ * @description Price per share (0.0–1.0) — the value that triggered the notification
843
+ */
769
844
  price: number;
770
- /** @description Implied probability (0.0–1.0) */
845
+ /**
846
+ * Format: double
847
+ * @description Implied probability of the outcome (0.0–1.0)
848
+ */
771
849
  probability?: number | null;
850
+ /** @description Which bond zone was entered: `"high"` (YES near-certain) or `"low"` (NO near-certain) */
851
+ bond_side: string;
772
852
  /**
773
- * @description "high" when near YES (price ≥ threshold), "low" when near NO (price ≤ threshold)
774
- * @enum {string}
853
+ * Format: double
854
+ * @description The probability threshold from the subscriber's filter that was breached
775
855
  */
776
- bond_side: "high" | "low";
777
- /** @description The probability threshold from the subscription filter that was breached */
778
856
  threshold: number;
779
857
  };
780
858
  /** @description Payload delivered when a market's volume or transaction metrics cross a configured threshold */
781
859
  ConditionMetricsPayload: {
782
860
  /** @description Market condition ID */
783
861
  condition_id?: string | null;
862
+ /** @description Aggregation window */
863
+ timeframe?: null | ("1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "6h" | "1d" | "24h" | "7d" | "30d");
784
864
  /**
785
- * @description Aggregation window
786
- * @enum {string|null}
865
+ * Format: double
866
+ * @description Total trading volume in USD for this timeframe
787
867
  */
788
- timeframe?: "1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d" | null;
789
- /** @description Total trading volume in USD for this timeframe */
790
868
  volume_usd?: number | null;
791
- /** @description Total fees collected in USD */
869
+ /**
870
+ * Format: double
871
+ * @description Total fees collected in USD
872
+ */
792
873
  fees?: number | null;
793
874
  /**
794
875
  * Format: int64
@@ -870,18 +951,43 @@ export interface components {
870
951
  slug?: string | null;
871
952
  event_slug?: string | null;
872
953
  };
954
+ /** @description Subscription filters for the `event_metrics` event. All fields are optional. */
955
+ EventMetricsFilters: {
956
+ /** @description Restrict to these events. Empty = all events. */
957
+ event_slugs?: string[] | null;
958
+ /** @description Restrict to these aggregation windows. */
959
+ timeframes?: components["schemas"]["MetricFilterTimeframe"][] | null;
960
+ /**
961
+ * Format: double
962
+ * @description Only fire when aggregated event volume ≥ this value (USD).
963
+ */
964
+ min_volume_usd?: number | null;
965
+ /** Format: double */
966
+ max_volume_usd?: number | null;
967
+ /** Format: int64 */
968
+ min_txns?: number | null;
969
+ /** Format: int64 */
970
+ min_unique_traders?: number | null;
971
+ /** Format: double */
972
+ min_fees?: number | null;
973
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
974
+ exclude_shortterm_markets?: boolean | null;
975
+ };
873
976
  /** @description Payload delivered when an event's aggregated volume or transaction metrics cross a configured threshold */
874
977
  EventMetricsPayload: {
875
978
  /** @description Event slug */
876
979
  event_slug?: string | null;
980
+ /** @description Aggregation window */
981
+ timeframe?: null | ("1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "6h" | "1d" | "24h" | "7d" | "30d");
877
982
  /**
878
- * @description Aggregation window
879
- * @enum {string|null}
983
+ * Format: double
984
+ * @description Total aggregated volume across all markets in the event (USD)
880
985
  */
881
- timeframe?: "1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d" | null;
882
- /** @description Total aggregated volume across all markets in the event (USD) */
883
986
  volume_usd?: number | null;
884
- /** @description Total fees collected in USD */
987
+ /**
988
+ * Format: double
989
+ * @description Total fees collected in USD
990
+ */
885
991
  fees?: number | null;
886
992
  /**
887
993
  * Format: int64
@@ -894,21 +1000,13 @@ export interface components {
894
1000
  */
895
1001
  unique_traders?: number | null;
896
1002
  };
897
- /** @description Payload delivered when a trader's per-event PnL crosses a configured threshold */
1003
+ /** @description Event PnL webhook payload (Arc-optimized) */
898
1004
  EventPnlPayload: {
899
- /** @description Trader wallet address (lowercase) */
900
1005
  trader?: string | null;
901
- /** @description Event slug */
902
1006
  event_slug?: string | null;
903
- /**
904
- * @description PnL aggregation window
905
- * @enum {string}
906
- */
907
- timeframe: "1d" | "7d" | "30d" | "lifetime";
908
- /**
909
- * Format: int64
910
- * @description Number of distinct markets traded in this event
911
- */
1007
+ /** @description Aggregation timeframe: "1d", "7d", "30d", or "lifetime" */
1008
+ timeframe: string;
1009
+ /** Format: int64 */
912
1010
  markets_traded?: number | null;
913
1011
  /** Format: int64 */
914
1012
  outcomes_traded?: number | null;
@@ -920,44 +1018,58 @@ export interface components {
920
1018
  total_redemptions?: number | null;
921
1019
  /** Format: int64 */
922
1020
  total_merges?: number | null;
923
- /** @description Total volume in USD */
1021
+ /** Format: double */
924
1022
  total_volume_usd?: number | null;
1023
+ /** Format: double */
925
1024
  buy_usd?: number | null;
1025
+ /** Format: double */
926
1026
  sell_usd?: number | null;
1027
+ /** Format: double */
927
1028
  redemption_usd?: number | null;
1029
+ /** Format: double */
928
1030
  merge_usd?: number | null;
929
- /** @description Realized PnL in USD for this event */
1031
+ /** Format: double */
930
1032
  realized_pnl_usd?: number | null;
931
1033
  /** Format: int64 */
932
1034
  winning_markets?: number | null;
933
1035
  /** Format: int64 */
934
1036
  losing_markets?: number | null;
1037
+ /** Format: double */
935
1038
  total_fees?: number | null;
936
- /**
937
- * Format: int64
938
- * @description Unix seconds
939
- */
1039
+ /** Format: int64 */
940
1040
  first_trade_at?: number | null;
941
- /**
942
- * Format: int64
943
- * @description Unix seconds
944
- */
1041
+ /** Format: int64 */
945
1042
  last_trade_at?: number | null;
946
1043
  };
947
- /** @description Payload delivered when an event's aggregated trading volume crosses a USD milestone */
1044
+ /** @description Subscription filters for the `event_volume_milestone` event. */
1045
+ EventVolumeMilestoneFilters: {
1046
+ /** @description **Required.** Aggregation windows to monitor. */
1047
+ timeframes: components["schemas"]["MetricFilterTimeframe"][];
1048
+ /** @description Restrict to these events. */
1049
+ event_slugs?: string[] | null;
1050
+ /** @description Specific USD milestones to trigger on. */
1051
+ milestone_amounts?: number[] | null;
1052
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
1053
+ exclude_shortterm_markets?: boolean | null;
1054
+ };
1055
+ /** @description Event volume milestone webhook payload */
948
1056
  EventVolumeMilestonePayload: {
949
- /** @description Event slug */
950
1057
  event_slug: string;
1058
+ timeframe: string;
951
1059
  /**
952
- * @description Aggregation window
953
- * @enum {string}
1060
+ * Format: double
1061
+ * @description Milestone amount reached (USD)
954
1062
  */
955
- timeframe: "1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d";
956
- /** @description The USD milestone amount that was crossed */
957
1063
  milestone_usd: number;
958
- /** @description Current aggregated event volume at time of trigger (USD) */
1064
+ /**
1065
+ * Format: double
1066
+ * @description Current volume (USD) that triggered the milestone
1067
+ */
959
1068
  current_volume_usd: number;
960
- /** @description Total fees in USD for this timeframe */
1069
+ /**
1070
+ * Format: double
1071
+ * @description Total fees collected in this timeframe
1072
+ */
961
1073
  fees: number;
962
1074
  /**
963
1075
  * Format: int64
@@ -965,25 +1077,60 @@ export interface components {
965
1077
  */
966
1078
  txns: number;
967
1079
  };
968
- /** @description Payload delivered when an event's aggregated volume has spiked since the last snapshot */
1080
+ /** @description Subscription filters for the `event_volume_spike` event. `spike_ratio` is required. */
1081
+ EventVolumeSpikeFilters: {
1082
+ /**
1083
+ * Format: double
1084
+ * @description **Required.** Multiplier threshold (must be > 1.0). Fires when current volume >= snapshot × ratio.
1085
+ */
1086
+ spike_ratio: number;
1087
+ /**
1088
+ * Format: int64
1089
+ * @description Force snapshot reset after this many seconds (max 600 / 10 minutes).
1090
+ */
1091
+ window_secs?: number | null;
1092
+ /** @description Restrict to these events. */
1093
+ event_slugs?: string[] | null;
1094
+ /** @description Restrict to these aggregation windows. */
1095
+ timeframes?: components["schemas"]["VolumeSpikeFilterTimeframe"][] | null;
1096
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
1097
+ exclude_shortterm_markets?: boolean | null;
1098
+ };
1099
+ /** @description Event volume spike webhook payload */
969
1100
  EventVolumeSpikePayload: {
970
- /** @description Event slug */
971
1101
  event_slug: string;
1102
+ event_title?: string | null;
1103
+ image_url?: string | null;
1104
+ timeframe: string;
972
1105
  /**
973
- * @description Aggregation window
974
- * @enum {string}
1106
+ * Format: double
1107
+ * @description Current aggregated event volume at the time of the spike (USD)
975
1108
  */
976
- timeframe: "1m" | "5m" | "30m" | "1h" | "6h" | "1d" | "24h" | "7d" | "30d";
977
- /** @description Current aggregated event volume at time of the spike (USD) */
978
1109
  current_volume_usd: number;
979
- /** @description Volume at the snapshot baseline (USD) */
1110
+ /**
1111
+ * Format: double
1112
+ * @description Volume at the snapshot baseline (USD)
1113
+ */
980
1114
  snapshot_volume_usd: number;
981
- /** @description New volume since the snapshot that triggered this notification (USD) */
1115
+ /**
1116
+ * Format: double
1117
+ * @description New volume since the snapshot that triggered this notification (USD)
1118
+ */
982
1119
  delta_volume_usd: number;
983
- /** @description Volume growth as a percentage of the snapshot (e.g. 200.0 means volume tripled) */
1120
+ /**
1121
+ * Format: double
1122
+ * @description Volume growth as a percentage of the snapshot (e.g. 200.0 means volume tripled)
1123
+ */
984
1124
  spike_pct: number;
985
- /** Format: int64 */
1125
+ /**
1126
+ * Format: int64
1127
+ * @description Total transactions in this timeframe
1128
+ */
986
1129
  txns: number;
1130
+ /**
1131
+ * Format: double
1132
+ * @description Total fees in this timeframe
1133
+ */
987
1134
  fees: number;
988
1135
  };
989
1136
  /** @description Payload delivered when a tracked trader executes their first-ever trade on Polymarket */
@@ -998,7 +1145,10 @@ export interface components {
998
1145
  condition_id?: string | null;
999
1146
  /** @description Outcome name (e.g. "Yes", "No") */
1000
1147
  outcome?: string | null;
1001
- /** @description Outcome index: 0 = Yes/Up, 1 = No */
1148
+ /**
1149
+ * Format: int32
1150
+ * @description Outcome index: 0 = Yes/Up, 1 = No
1151
+ */
1002
1152
  outcome_index?: number | null;
1003
1153
  /** @description Market question text */
1004
1154
  question?: string | null;
@@ -1020,148 +1170,128 @@ export interface components {
1020
1170
  * @description Block confirmation timestamp (Unix seconds)
1021
1171
  */
1022
1172
  confirmed_at: number;
1023
- /** @description USD size of the trade (6 decimal places) */
1173
+ /**
1174
+ * Format: double
1175
+ * @description USD size of the trade (6 decimal places)
1176
+ */
1024
1177
  amount_usd: number;
1025
- /** @description Outcome shares traded (6 decimal places) */
1026
- shares_amount: number;
1027
- /** @description Fee paid in USD (6 decimal places) */
1028
- fee: number;
1029
1178
  /**
1030
- * @description Trade direction
1031
- * @enum {string}
1179
+ * Format: double
1180
+ * @description Outcome shares traded (6 decimal places)
1032
1181
  */
1033
- side: "Buy" | "Sell";
1034
- /** @description Outcome token price (0.0–1.0) */
1035
- price: number;
1182
+ shares_amount: number;
1036
1183
  /**
1037
- * @description Exchange contract that processed the trade
1038
- * @enum {string}
1184
+ * Format: double
1185
+ * @description Fee paid in USD (6 decimal places)
1039
1186
  */
1040
- exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "Unknown";
1187
+ fee: number;
1188
+ /** @description Trade direction */
1189
+ side: "Buy" | "Sell";
1041
1190
  /**
1042
- * @description Trade type (webhook events only fire on order fills)
1043
- * @enum {string}
1191
+ * Format: double
1192
+ * @description Outcome token price (0.0–1.0)
1044
1193
  */
1194
+ price: number;
1195
+ /** @description Exchange contract that processed the trade */
1196
+ exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "CTFExchangeV2" | "NegRiskExchangeV2" | "Unknown";
1197
+ /** @description Trade type (webhook events only fire on order fills) */
1045
1198
  trade_type: "OrderFilled" | "OrdersMatched";
1046
1199
  };
1047
- /** @description Payload delivered when a trader's global PnL (across all markets) crosses a configured threshold */
1200
+ /** @description Global PnL webhook payload (Arc-optimized) */
1048
1201
  GlobalPnlPayload: {
1049
- /** @description Trader wallet address (lowercase) */
1050
1202
  trader?: string | null;
1051
- /**
1052
- * @description PnL aggregation window
1053
- * @enum {string}
1054
- */
1055
- timeframe: "1d" | "7d" | "30d" | "lifetime";
1056
- /** @description Realized PnL in USD (positive = profit, negative = loss) */
1203
+ /** @description Aggregation timeframe: "1d", "7d", "30d", or "lifetime" */
1204
+ timeframe: string;
1205
+ /** Format: double */
1057
1206
  realized_pnl_usd?: number | null;
1058
- /**
1059
- * Format: int64
1060
- * @description Number of distinct events traded
1061
- */
1207
+ /** Format: int64 */
1062
1208
  events_traded?: number | null;
1063
- /**
1064
- * Format: int64
1065
- * @description Number of distinct markets traded
1066
- */
1209
+ /** Format: int64 */
1067
1210
  markets_traded?: number | null;
1068
- /**
1069
- * Format: int64
1070
- * @description Total buy transactions
1071
- */
1211
+ /** Format: int64 */
1072
1212
  total_buys?: number | null;
1073
- /**
1074
- * Format: int64
1075
- * @description Total sell transactions
1076
- */
1213
+ /** Format: int64 */
1077
1214
  total_sells?: number | null;
1078
- /**
1079
- * Format: int64
1080
- * @description Total redemption transactions
1081
- */
1215
+ /** Format: int64 */
1082
1216
  total_redemptions?: number | null;
1083
- /**
1084
- * Format: int64
1085
- * @description Total merge transactions
1086
- */
1217
+ /** Format: int64 */
1087
1218
  total_merges?: number | null;
1088
- /** @description Total USD volume (buys + sells + redemptions + merges) */
1219
+ /** Format: double */
1089
1220
  total_volume_usd?: number | null;
1090
- /** @description Total buy volume in USD */
1221
+ /** Format: double */
1091
1222
  buy_volume_usd?: number | null;
1092
- /** @description Total sell volume in USD */
1223
+ /** Format: double */
1093
1224
  sell_volume_usd?: number | null;
1094
- /** @description Total redemption volume in USD */
1225
+ /** Format: double */
1095
1226
  redemption_volume_usd?: number | null;
1096
- /** @description Total merge volume in USD */
1227
+ /** Format: double */
1097
1228
  merge_volume_usd?: number | null;
1098
- /**
1099
- * Format: int64
1100
- * @description Number of markets where trader realised a profit
1101
- */
1229
+ /** Format: int64 */
1102
1230
  markets_won?: number | null;
1103
- /**
1104
- * Format: int64
1105
- * @description Number of markets where trader realised a loss
1106
- */
1231
+ /** Format: int64 */
1107
1232
  markets_lost?: number | null;
1108
- /** @description Market win rate as a percentage (0.0–100.0) */
1233
+ /** Format: double */
1109
1234
  market_win_rate_pct?: number | null;
1110
- /** @description Average PnL per market in USD */
1235
+ /** Format: double */
1111
1236
  avg_pnl_per_market?: number | null;
1112
- /** @description Average PnL per trade in USD */
1237
+ /** Format: double */
1113
1238
  avg_pnl_per_trade?: number | null;
1114
- /** @description Average hold time across all positions (seconds) */
1239
+ /** Format: double */
1115
1240
  avg_hold_time_seconds?: number | null;
1116
- /** @description Total fees paid in USD */
1241
+ /** Format: double */
1117
1242
  total_fees?: number | null;
1118
- /** @description Best single-trade PnL in USD */
1243
+ /** Format: double */
1119
1244
  best_trade_pnl_usd?: number | null;
1120
- /** @description Condition ID of the best trade */
1121
1245
  best_trade_condition_id?: string | null;
1122
- /**
1123
- * Format: int64
1124
- * @description Timestamp of the first trade (Unix seconds)
1125
- */
1246
+ /** Format: int64 */
1126
1247
  first_trade_at?: number | null;
1127
- /**
1128
- * Format: int64
1129
- * @description Timestamp of the most recent trade (Unix seconds)
1130
- */
1248
+ /** Format: int64 */
1131
1249
  last_trade_at?: number | null;
1132
1250
  };
1133
1251
  /** @description Response for GET /v1/webhook/events */
1134
1252
  ListEventsResponse: {
1135
1253
  events: components["schemas"]["WebhookEventInfo"][];
1136
1254
  };
1137
- /** @description An outcome entry within a newly created market */
1255
+ /** @description Subscription filters for the `market_created` event. All fields are optional. */
1256
+ MarketCreatedFilters: {
1257
+ /** @description Restrict to markets with these tags or category names (case-insensitive match). */
1258
+ tags?: string[] | null;
1259
+ /** @description Restrict to markets belonging to these events. */
1260
+ event_slugs?: string[] | null;
1261
+ /** @description When `true`, suppress webhooks for short-term "updown" markets (event slugs containing `updown`). Default: `false`. */
1262
+ exclude_shortterm_markets?: boolean | null;
1263
+ };
1264
+ /** @description Outcome entry in the market created payload — mirrors `NewMarketOutcome` */
1138
1265
  MarketCreatedOutcome: {
1139
- /** @description Outcome index (0 = Yes, 1 = No) */
1266
+ /**
1267
+ * Format: int32
1268
+ * @description Outcome index (0 = Yes, 1 = No)
1269
+ */
1140
1270
  index: number;
1141
1271
  /** @description Outcome name (e.g. "Yes", "No") */
1142
1272
  name: string;
1143
- /** @description ERC-1155 position token ID for this outcome */
1273
+ /** @description ERC1155 position token ID */
1144
1274
  position_id: string;
1145
1275
  };
1146
- /** @description Payload delivered when a new prediction market is detected on-chain and enriched with Gamma API metadata */
1276
+ /** @description Market created webhook payload mirrors `NewMarketPayload` field-for-field */
1147
1277
  MarketCreatedPayload: {
1148
1278
  /** @description Condition ID (0x-prefixed hex, lowercase) */
1149
1279
  condition_id: string;
1150
1280
  /** @description Market slug */
1151
1281
  market_slug: string;
1152
- /** @description Parent event slug */
1282
+ /** @description Event slug (parent event) */
1153
1283
  event_slug?: string | null;
1154
- /** @description Parent event ID */
1284
+ /** @description Event ID */
1155
1285
  event_id?: string | null;
1156
- /** @description Parent event title */
1286
+ /** @description Event title */
1157
1287
  event_title?: string | null;
1158
- /** @description Series slug (for recurring markets) */
1288
+ /** @description Series slug */
1159
1289
  series_slug?: string | null;
1160
- /** @description List of market outcomes with their position IDs */
1290
+ /** @description Outcomes with their position IDs, index, and name */
1161
1291
  outcomes: components["schemas"]["MarketCreatedOutcome"][];
1162
- /** @description Full market question text */
1292
+ /** @description Market question */
1163
1293
  question: string;
1164
- /** @description Short display title */
1294
+ /** @description Market title (short display name) */
1165
1295
  title?: string | null;
1166
1296
  /** @description Market description */
1167
1297
  description: string;
@@ -1174,23 +1304,46 @@ export interface components {
1174
1304
  /** @description Whether this is a neg-risk market */
1175
1305
  neg_risk: boolean;
1176
1306
  };
1177
- /** @description Payload delivered when a trader's per-market PnL crosses a configured threshold */
1178
- MarketPnlPayload: {
1179
- /** @description Trader wallet address (lowercase) */
1180
- trader?: string | null;
1181
- /** @description Market condition ID */
1182
- condition_id?: string | null;
1183
- /** @description Parent event slug */
1184
- event_slug?: string | null;
1307
+ /** @description Subscription filters for the `condition_metrics` event. All fields are optional. */
1308
+ MarketMetricsFilters: {
1309
+ /** @description Restrict to these markets. Empty = all markets. */
1310
+ condition_ids?: string[] | null;
1311
+ /** @description Restrict to these aggregation windows. Empty = all windows. */
1312
+ timeframes?: components["schemas"]["MetricFilterTimeframe"][] | null;
1185
1313
  /**
1186
- * @description PnL aggregation window
1187
- * @enum {string}
1314
+ * Format: double
1315
+ * @description Only fire when volume ≥ this value (USD).
1316
+ */
1317
+ min_volume_usd?: number | null;
1318
+ /**
1319
+ * Format: double
1320
+ * @description Only fire when volume ≤ this value (USD).
1188
1321
  */
1189
- timeframe: "1d" | "7d" | "30d" | "lifetime";
1322
+ max_volume_usd?: number | null;
1190
1323
  /**
1191
1324
  * Format: int64
1192
- * @description Number of distinct outcomes traded in this market
1325
+ * @description Only fire when transaction count this value.
1193
1326
  */
1327
+ min_txns?: number | null;
1328
+ /**
1329
+ * Format: int64
1330
+ * @description Only fire when unique trader count ≥ this value.
1331
+ */
1332
+ min_unique_traders?: number | null;
1333
+ /**
1334
+ * Format: double
1335
+ * @description Only fire when total fees ≥ this value (USD).
1336
+ */
1337
+ min_fees?: number | null;
1338
+ };
1339
+ /** @description Market PnL webhook payload (Arc-optimized) */
1340
+ MarketPnlPayload: {
1341
+ trader?: string | null;
1342
+ condition_id?: string | null;
1343
+ event_slug?: string | null;
1344
+ /** @description Aggregation timeframe: "1d", "7d", "30d", or "lifetime" */
1345
+ timeframe: string;
1346
+ /** Format: int64 */
1194
1347
  outcomes_traded?: number | null;
1195
1348
  /** Format: int64 */
1196
1349
  total_buys?: number | null;
@@ -1200,59 +1353,95 @@ export interface components {
1200
1353
  total_redemptions?: number | null;
1201
1354
  /** Format: int64 */
1202
1355
  total_merges?: number | null;
1203
- /** @description Total buy volume in USD */
1356
+ /** Format: double */
1204
1357
  buy_usd?: number | null;
1205
- /** @description Total sell volume in USD */
1358
+ /** Format: double */
1206
1359
  sell_usd?: number | null;
1207
- /** @description Total redemption volume in USD */
1360
+ /** Format: double */
1208
1361
  redemption_usd?: number | null;
1209
- /** @description Total merge volume in USD */
1362
+ /** Format: double */
1210
1363
  merge_usd?: number | null;
1211
- /** @description Realized PnL in USD for this market */
1364
+ /** Format: double */
1212
1365
  realized_pnl_usd?: number | null;
1213
- /**
1214
- * Format: int64
1215
- * @description Number of outcomes with positive PnL
1216
- */
1366
+ /** Format: int64 */
1217
1367
  winning_outcomes?: number | null;
1218
- /** @description Total fees paid in USD for this market */
1368
+ /** Format: double */
1219
1369
  total_fees?: number | null;
1370
+ /** Format: int64 */
1371
+ first_trade_at?: number | null;
1372
+ /** Format: int64 */
1373
+ last_trade_at?: number | null;
1374
+ };
1375
+ /** @description Subscription filters for the `market_volume_milestone` event. */
1376
+ MarketVolumeMilestoneFilters: {
1377
+ /** @description **Required.** Aggregation windows to monitor (e.g. \["1h", "24h"\]). */
1378
+ timeframes: components["schemas"]["MetricFilterTimeframe"][];
1379
+ /** @description Restrict to these markets. Empty = all markets. */
1380
+ condition_ids?: string[] | null;
1381
+ /** @description Specific USD milestones to trigger on (e.g. \[10000, 100000, 1000000\]). Empty = all milestones. */
1382
+ milestone_amounts?: number[] | null;
1383
+ };
1384
+ /** @description Subscription filters for the `market_volume_spike` event. `spike_ratio` is required. */
1385
+ MarketVolumeSpikeFilters: {
1220
1386
  /**
1221
- * Format: int64
1222
- * @description Timestamp of first trade in market (Unix seconds)
1387
+ * Format: double
1388
+ * @description **Required.** Multiplier threshold (must be > 1.0). Fires when current volume >= snapshot × ratio. The snapshot is set automatically on first data and resets after each fire.
1223
1389
  */
1224
- first_trade_at?: number | null;
1390
+ spike_ratio: number;
1225
1391
  /**
1226
1392
  * Format: int64
1227
- * @description Timestamp of most recent trade in market (Unix seconds)
1393
+ * @description Force snapshot reset after this many seconds (max 600 / 10 minutes).
1228
1394
  */
1229
- last_trade_at?: number | null;
1395
+ window_secs?: number | null;
1396
+ /** @description Restrict to these markets. Empty = all markets. */
1397
+ condition_ids?: string[] | null;
1398
+ /** @description Restrict to these aggregation windows. Empty = all windows. */
1399
+ timeframes?: components["schemas"]["VolumeSpikeFilterTimeframe"][] | null;
1230
1400
  };
1231
- /** @description Payload delivered when a market's volume has spiked since the last snapshot */
1401
+ /** @description Market volume spike webhook payload */
1232
1402
  MarketVolumeSpikePayload: {
1233
- /** @description Market condition ID */
1234
1403
  condition_id: string;
1404
+ question?: string | null;
1405
+ market_slug?: string | null;
1406
+ event_slug?: string | null;
1407
+ image_url?: string | null;
1408
+ timeframe: string;
1235
1409
  /**
1236
- * @description Aggregation window
1237
- * @enum {string}
1410
+ * Format: double
1411
+ * @description Current window volume at the time of the spike (USD)
1238
1412
  */
1239
- timeframe: "1m" | "5m" | "30m" | "1h" | "6h" | "1d" | "24h" | "7d" | "30d";
1240
- /** @description Current volume at the time of the spike (USD) */
1241
1413
  current_volume_usd: number;
1242
- /** @description Volume at the snapshot baseline (USD) */
1414
+ /**
1415
+ * Format: double
1416
+ * @description Volume at the snapshot baseline (USD)
1417
+ */
1243
1418
  snapshot_volume_usd: number;
1244
- /** @description New volume since the snapshot that triggered this notification (USD) */
1419
+ /**
1420
+ * Format: double
1421
+ * @description New volume since the snapshot that triggered this notification (USD)
1422
+ */
1245
1423
  delta_volume_usd: number;
1246
- /** @description Volume growth as a percentage of the snapshot (e.g. 200.0 means volume tripled) */
1424
+ /**
1425
+ * Format: double
1426
+ * @description Volume growth as a percentage of the snapshot (e.g. 200.0 means volume tripled)
1427
+ */
1247
1428
  spike_pct: number;
1248
1429
  /**
1249
1430
  * Format: int64
1250
1431
  * @description Total transactions in this timeframe
1251
1432
  */
1252
1433
  txns: number;
1253
- /** @description Total fees in USD for this timeframe */
1434
+ /**
1435
+ * Format: double
1436
+ * @description Total fees in this timeframe
1437
+ */
1254
1438
  fees: number;
1255
1439
  };
1440
+ /**
1441
+ * @description Aggregation windows emitted by the metrics / milestone streams.
1442
+ * @enum {string}
1443
+ */
1444
+ MetricFilterTimeframe: "1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d";
1256
1445
  /** @description NegRisk Adapter: outcome reported for a neg-risk market question. */
1257
1446
  NegRiskOutcomeReportedEvent: {
1258
1447
  id: string;
@@ -1287,7 +1476,10 @@ export interface components {
1287
1476
  condition_id?: string | null;
1288
1477
  /** @description Outcome name (e.g. "Yes", "No") */
1289
1478
  outcome?: string | null;
1290
- /** @description Outcome index: 0 = Yes/Up, 1 = No */
1479
+ /**
1480
+ * Format: int32
1481
+ * @description Outcome index: 0 = Yes/Up, 1 = No
1482
+ */
1291
1483
  outcome_index?: number | null;
1292
1484
  /** @description Market question text */
1293
1485
  question?: string | null;
@@ -1309,32 +1501,44 @@ export interface components {
1309
1501
  * @description Block confirmation timestamp (Unix seconds)
1310
1502
  */
1311
1503
  confirmed_at: number;
1312
- /** @description USD size of the trade (6 decimal places) */
1504
+ /**
1505
+ * Format: double
1506
+ * @description USD size of the trade (6 decimal places)
1507
+ */
1313
1508
  amount_usd: number;
1314
- /** @description Outcome shares traded (6 decimal places) */
1509
+ /**
1510
+ * Format: double
1511
+ * @description Outcome shares traded (6 decimal places)
1512
+ */
1315
1513
  shares_amount: number;
1316
- /** @description Fee paid in USD (6 decimal places) */
1317
- fee: number;
1318
1514
  /**
1319
- * @description Trade direction
1320
- * @enum {string}
1515
+ * Format: double
1516
+ * @description Fee paid in USD (6 decimal places)
1321
1517
  */
1518
+ fee: number;
1519
+ /** @description Trade direction */
1322
1520
  side: "Buy" | "Sell";
1323
- /** @description Outcome token price (0.0–1.0) */
1324
- price: number;
1325
- /** @description Implied probability (0.0–1.0); null when outcome is unknown */
1326
- probability?: number | null;
1327
1521
  /**
1328
- * @description Exchange contract that processed the trade
1329
- * @enum {string}
1522
+ * Format: double
1523
+ * @description Outcome token price (0.0–1.0)
1330
1524
  */
1331
- exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "Unknown";
1525
+ price: number;
1332
1526
  /**
1333
- * @description Trade type (webhook events only fire on order fills)
1334
- * @enum {string}
1527
+ * Format: double
1528
+ * @description Implied probability (0.0–1.0); null when outcome is unknown
1335
1529
  */
1530
+ probability?: number | null;
1531
+ /** @description Exchange contract that processed the trade */
1532
+ exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "CTFExchangeV2" | "NegRiskExchangeV2" | "Unknown";
1533
+ /** @description Trade type (webhook events only fire on order fills) */
1336
1534
  trade_type: "OrderFilled" | "OrdersMatched";
1337
1535
  };
1536
+ /**
1537
+ * @description Trade types accepted by `trader_new_trade.trade_types`. Webhook fires on
1538
+ * fill-style trades only.
1539
+ * @enum {string}
1540
+ */
1541
+ NewTradeFilterType: "OrderFilled" | "OrdersMatched";
1338
1542
  /** @description Payload delivered on every order-filled trade */
1339
1543
  NewTradePayload: {
1340
1544
  /** @description Limit-order maker wallet address (lowercase) */
@@ -1347,7 +1551,10 @@ export interface components {
1347
1551
  condition_id?: string | null;
1348
1552
  /** @description Outcome name (e.g. "Yes", "No") */
1349
1553
  outcome?: string | null;
1350
- /** @description Outcome index: 0 = Yes/Up, 1 = No */
1554
+ /**
1555
+ * Format: int32
1556
+ * @description Outcome index: 0 = Yes/Up, 1 = No
1557
+ */
1351
1558
  outcome_index?: number | null;
1352
1559
  /** @description Market question text */
1353
1560
  question?: string | null;
@@ -1369,32 +1576,43 @@ export interface components {
1369
1576
  * @description Block confirmation timestamp (Unix seconds)
1370
1577
  */
1371
1578
  confirmed_at: number;
1372
- /** @description USD size of the trade (6 decimal places) */
1579
+ /**
1580
+ * Format: double
1581
+ * @description USD size of the trade (6 decimal places)
1582
+ */
1373
1583
  amount_usd: number;
1374
- /** @description Outcome shares traded (6 decimal places) */
1584
+ /**
1585
+ * Format: double
1586
+ * @description Outcome shares traded (6 decimal places)
1587
+ */
1375
1588
  shares_amount: number;
1376
- /** @description Fee paid in USD (6 decimal places) */
1377
- fee: number;
1378
1589
  /**
1379
- * @description Trade direction
1380
- * @enum {string}
1590
+ * Format: double
1591
+ * @description Fee paid in USD (6 decimal places)
1381
1592
  */
1593
+ fee: number;
1594
+ /** @description Trade direction */
1382
1595
  side: "Buy" | "Sell";
1383
- /** @description Outcome token price (0.0–1.0) */
1384
- price: number;
1385
- /** @description Implied probability (0.0–1.0); null when outcome is unknown */
1386
- probability?: number | null;
1387
1596
  /**
1388
- * @description Exchange contract that processed the trade
1389
- * @enum {string}
1597
+ * Format: double
1598
+ * @description Outcome token price (0.0–1.0)
1390
1599
  */
1391
- exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "Unknown";
1600
+ price: number;
1392
1601
  /**
1393
- * @description Trade type (webhook events only fire on order fills)
1394
- * @enum {string}
1602
+ * Format: double
1603
+ * @description Implied probability (0.0–1.0); null when outcome is unknown
1395
1604
  */
1605
+ probability?: number | null;
1606
+ /** @description Exchange contract that processed the trade */
1607
+ exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "CTFExchangeV2" | "NegRiskExchangeV2" | "Unknown";
1608
+ /** @description Trade type (webhook events only fire on order fills) */
1396
1609
  trade_type: "OrderFilled" | "OrdersMatched";
1397
1610
  };
1611
+ /**
1612
+ * @description Oracle event variants accepted by `oracle_events.oracle_event_types`.
1613
+ * @enum {string}
1614
+ */
1615
+ OracleEventFilterType: "AssertionMade" | "AssertionDisputed" | "AssertionSettled" | "RequestPrice" | "ProposePrice" | "DisputePrice" | "Settle" | "QuestionResolved" | "QuestionEmergencyResolved" | "QuestionReset" | "QuestionInitialized" | "QuestionPaused" | "QuestionUnpaused" | "QuestionFlagged" | "QuestionUnflagged" | "ConditionResolution" | "NegRiskOutcomeReported";
1398
1616
  /**
1399
1617
  * @description Tagged enum for all oracle event types — serializes with `"event_type": "..."` discriminator
1400
1618
  * and only includes fields relevant to each type.
@@ -1451,6 +1669,18 @@ export interface components {
1451
1669
  /** @enum {string} */
1452
1670
  event_type: "NegRiskOutcomeReported";
1453
1671
  });
1672
+ /** @description Subscription filters for the `oracle_events` event. All fields are optional. */
1673
+ OracleEventsFilters: {
1674
+ /** @description Restrict to these event types (case-insensitive). Empty = all. */
1675
+ oracle_event_types?: components["schemas"]["OracleEventFilterType"][] | null;
1676
+ /** @description Restrict to events for these condition IDs. */
1677
+ condition_ids?: string[] | null;
1678
+ };
1679
+ /**
1680
+ * @description PnL aggregation windows accepted by `*_pnl.timeframes`.
1681
+ * @enum {string}
1682
+ */
1683
+ PnlFilterTimeframe: "1d" | "7d" | "30d" | "lifetime";
1454
1684
  /**
1455
1685
  * @description PnL timeframe enum for webhook filtering
1456
1686
  * @enum {string}
@@ -1477,7 +1707,7 @@ export interface components {
1477
1707
  * - volume_milestone: condition_ids, timeframes, milestone_amounts
1478
1708
  * - close_to_bond: min_probability (high zone threshold), max_probability (low zone threshold), condition_ids, position_ids, outcomes, position_outcome_indices, event_slugs, exclude_shortterm_markets
1479
1709
  * - market_created: event_slugs, tags, exclude_shortterm_markets
1480
- * - probability_spike: condition_ids, event_slugs, outcomes, min_probability_change_pct, spike_direction, window_secs, exclude_shortterm_markets
1710
+ * - probability_spike: condition_ids, event_slugs, outcomes, min_probability, max_probability, min_probability_change_pct, spike_direction, window_secs, exclude_shortterm_markets
1481
1711
  * - price_spike: condition_ids, event_slugs, outcomes, min_price_change_pct, spike_direction, window_secs, exclude_shortterm_markets
1482
1712
  * - trader_new_trade: wallet_addresses, min_usd_value, min_probability, max_probability, condition_ids, event_slugs, trade_types, exclude_shortterm_markets
1483
1713
  * - trader_trade_event: wallet_addresses, min_usd_value, min_probability, max_probability, condition_ids, event_slugs, trade_types, exclude_shortterm_markets
@@ -1648,6 +1878,44 @@ export interface components {
1648
1878
  */
1649
1879
  oracle_event_types?: string[];
1650
1880
  };
1881
+ /** @description Subscription filters for the `position_metrics` event. All fields are optional. */
1882
+ PositionMetricsFilters: {
1883
+ /** @description Restrict to these outcome token IDs. */
1884
+ position_ids?: string[] | null;
1885
+ /** @description Restrict to positions within these markets. */
1886
+ condition_ids?: string[] | null;
1887
+ /** @description Restrict to positions with these outcome names (e.g. \["Yes", "No"\]). */
1888
+ outcomes?: string[] | null;
1889
+ /** @description Restrict to these aggregation windows. */
1890
+ timeframes?: components["schemas"]["MetricFilterTimeframe"][] | null;
1891
+ /**
1892
+ * Format: double
1893
+ * @description Only fire when position volume ≥ this value (USD).
1894
+ */
1895
+ min_volume_usd?: number | null;
1896
+ /** Format: double */
1897
+ max_volume_usd?: number | null;
1898
+ /** Format: double */
1899
+ min_buy_usd?: number | null;
1900
+ /** Format: double */
1901
+ min_sell_volume_usd?: number | null;
1902
+ /** Format: int64 */
1903
+ min_txns?: number | null;
1904
+ /** Format: int64 */
1905
+ min_unique_traders?: number | null;
1906
+ /**
1907
+ * Format: double
1908
+ * @description Only fire when price change % ≥ this value.
1909
+ */
1910
+ min_price_change_pct?: number | null;
1911
+ /**
1912
+ * Format: double
1913
+ * @description Only fire when probability change % ≥ this value.
1914
+ */
1915
+ min_probability_change_pct?: number | null;
1916
+ /** Format: double */
1917
+ min_fees?: number | null;
1918
+ };
1651
1919
  /** @description Payload delivered when a position's volume or transaction metrics cross a configured threshold */
1652
1920
  PositionMetricsPayload: {
1653
1921
  /** @description ERC-1155 outcome token ID */
@@ -1655,22 +1923,31 @@ export interface components {
1655
1923
  /** @description Outcome name (e.g. "Yes", "No") */
1656
1924
  outcome?: string | null;
1657
1925
  /**
1658
- * Format: int16
1926
+ * Format: int32
1659
1927
  * @description Outcome index
1660
1928
  */
1661
1929
  outcome_index?: number | null;
1930
+ /** @description Aggregation window */
1931
+ timeframe?: null | ("1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "6h" | "1d" | "24h" | "7d" | "30d");
1662
1932
  /**
1663
- * @description Aggregation window
1664
- * @enum {string|null}
1933
+ * Format: double
1934
+ * @description Total trading volume in USD
1665
1935
  */
1666
- timeframe?: "1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d" | null;
1667
- /** @description Total trading volume in USD */
1668
1936
  volume_usd?: number | null;
1669
- /** @description Buy volume in USD */
1937
+ /**
1938
+ * Format: double
1939
+ * @description Buy volume in USD
1940
+ */
1670
1941
  buy_volume_usd?: number | null;
1671
- /** @description Sell volume in USD */
1942
+ /**
1943
+ * Format: double
1944
+ * @description Sell volume in USD
1945
+ */
1672
1946
  sell_volume_usd?: number | null;
1673
- /** @description Total fees in USD */
1947
+ /**
1948
+ * Format: double
1949
+ * @description Total fees in USD
1950
+ */
1674
1951
  fees?: number | null;
1675
1952
  /** Format: int64 */
1676
1953
  txns?: number | null;
@@ -1680,127 +1957,293 @@ export interface components {
1680
1957
  sells?: number | null;
1681
1958
  /** Format: int64 */
1682
1959
  unique_traders?: number | null;
1960
+ /** Format: double */
1683
1961
  price_open?: number | null;
1962
+ /** Format: double */
1684
1963
  price_close?: number | null;
1964
+ /** Format: double */
1685
1965
  price_high?: number | null;
1966
+ /** Format: double */
1686
1967
  price_low?: number | null;
1968
+ /** Format: double */
1687
1969
  probability_open?: number | null;
1970
+ /** Format: double */
1688
1971
  probability_close?: number | null;
1972
+ /** Format: double */
1689
1973
  probability_high?: number | null;
1974
+ /** Format: double */
1690
1975
  probability_low?: number | null;
1691
1976
  };
1692
- /** @description Payload delivered when a position's trading volume crosses a USD milestone */
1977
+ /** @description Subscription filters for the `position_volume_milestone` event. */
1978
+ PositionVolumeMilestoneFilters: {
1979
+ /** @description **Required.** Aggregation windows to monitor. */
1980
+ timeframes: components["schemas"]["MetricFilterTimeframe"][];
1981
+ /** @description Restrict to these outcome token IDs. */
1982
+ position_ids?: string[] | null;
1983
+ /** @description Restrict to positions within these markets. */
1984
+ condition_ids?: string[] | null;
1985
+ /** @description Restrict to these outcome names (e.g. \["Yes", "No"\]). */
1986
+ outcomes?: string[] | null;
1987
+ /** @description Specific USD milestones to trigger on. */
1988
+ milestone_amounts?: number[] | null;
1989
+ };
1990
+ /** @description Position volume milestone webhook payload */
1693
1991
  PositionVolumeMilestonePayload: {
1694
- /** @description Parent market condition ID */
1695
1992
  condition_id?: string | null;
1696
- /** @description ERC-1155 outcome token ID */
1697
1993
  position_id: string;
1698
- /** @description Outcome name (e.g. "Yes", "No") */
1699
1994
  outcome?: string | null;
1700
- /**
1701
- * Format: int16
1702
- * @description Outcome index
1703
- */
1995
+ /** Format: int32 */
1704
1996
  outcome_index?: number | null;
1997
+ timeframe: string;
1705
1998
  /**
1706
- * @description Aggregation window
1707
- * @enum {string}
1999
+ * Format: double
2000
+ * @description Milestone amount reached (USD)
1708
2001
  */
1709
- timeframe: "1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d";
1710
- /** @description The USD milestone amount that was crossed */
1711
2002
  milestone_usd: number;
1712
- /** @description Current position volume at time of trigger (USD) */
2003
+ /**
2004
+ * Format: double
2005
+ * @description Current volume (USD) that triggered the milestone
2006
+ */
1713
2007
  current_volume_usd: number;
1714
- /** @description Buy volume in USD for this timeframe */
2008
+ /**
2009
+ * Format: double
2010
+ * @description Buy volume (USD)
2011
+ */
1715
2012
  buy_volume_usd: number;
1716
- /** @description Sell volume in USD for this timeframe */
2013
+ /**
2014
+ * Format: double
2015
+ * @description Sell volume (USD)
2016
+ */
1717
2017
  sell_volume_usd: number;
1718
- /** @description Total fees in USD */
2018
+ /**
2019
+ * Format: double
2020
+ * @description Total fees collected in this timeframe
2021
+ */
1719
2022
  fees: number;
1720
- /** Format: int64 */
2023
+ /**
2024
+ * Format: int64
2025
+ * @description Total transactions in this timeframe
2026
+ */
1721
2027
  txns: number;
1722
- /** Format: int64 */
2028
+ /**
2029
+ * Format: int64
2030
+ * @description Buy transactions
2031
+ */
1723
2032
  buys: number;
1724
- /** Format: int64 */
2033
+ /**
2034
+ * Format: int64
2035
+ * @description Sell transactions
2036
+ */
1725
2037
  sells: number;
1726
2038
  };
1727
- /** @description Payload delivered when a position's volume has spiked since the last snapshot */
2039
+ /** @description Subscription filters for the `position_volume_spike` event. `spike_ratio` is required. */
2040
+ PositionVolumeSpikeFilters: {
2041
+ /**
2042
+ * Format: double
2043
+ * @description **Required.** Multiplier threshold (must be > 1.0). Fires when current volume >= snapshot × ratio.
2044
+ */
2045
+ spike_ratio: number;
2046
+ /**
2047
+ * Format: int64
2048
+ * @description Force snapshot reset after this many seconds (max 600 / 10 minutes).
2049
+ */
2050
+ window_secs?: number | null;
2051
+ /** @description Restrict to these outcome token IDs. */
2052
+ position_ids?: string[] | null;
2053
+ /** @description Restrict to positions within these markets. */
2054
+ condition_ids?: string[] | null;
2055
+ /** @description Restrict to these outcome names. */
2056
+ outcomes?: string[] | null;
2057
+ /** @description Restrict to these aggregation windows. */
2058
+ timeframes?: components["schemas"]["VolumeSpikeFilterTimeframe"][] | null;
2059
+ };
2060
+ /** @description Position volume spike webhook payload */
1728
2061
  PositionVolumeSpikePayload: {
1729
- /** @description ERC-1155 outcome token ID */
1730
2062
  position_id: string;
1731
- /** @description Parent market condition ID */
1732
2063
  condition_id: string;
1733
- /** @description Outcome name (e.g. "Yes", "No") */
2064
+ question?: string | null;
2065
+ market_slug?: string | null;
2066
+ event_slug?: string | null;
2067
+ image_url?: string | null;
1734
2068
  outcome?: string | null;
1735
- /** Format: int16 */
2069
+ /** Format: int32 */
1736
2070
  outcome_index?: number | null;
2071
+ timeframe: string;
1737
2072
  /**
1738
- * @description Aggregation window
1739
- * @enum {string}
2073
+ * Format: double
2074
+ * @description Current position volume at the time of the spike (USD)
1740
2075
  */
1741
- timeframe: "1m" | "5m" | "30m" | "1h" | "6h" | "1d" | "24h" | "7d" | "30d";
1742
- /** @description Current position volume at the time of the spike (USD) */
1743
2076
  current_volume_usd: number;
1744
- /** @description Volume at the snapshot baseline (USD) */
2077
+ /**
2078
+ * Format: double
2079
+ * @description Volume at the snapshot baseline (USD)
2080
+ */
1745
2081
  snapshot_volume_usd: number;
1746
- /** @description New volume since the snapshot that triggered this notification (USD) */
2082
+ /**
2083
+ * Format: double
2084
+ * @description New volume since the snapshot that triggered this notification (USD)
2085
+ */
1747
2086
  delta_volume_usd: number;
1748
- /** @description Volume growth as a percentage of the snapshot (e.g. 200.0 means volume tripled) */
2087
+ /**
2088
+ * Format: double
2089
+ * @description Volume growth as a percentage of the snapshot (e.g. 200.0 means volume tripled)
2090
+ */
1749
2091
  spike_pct: number;
1750
- /** Format: int64 */
2092
+ /**
2093
+ * Format: int64
2094
+ * @description Total transactions in this timeframe
2095
+ */
1751
2096
  txns: number;
2097
+ /**
2098
+ * Format: double
2099
+ * @description Total fees in this timeframe
2100
+ */
1752
2101
  fees: number;
1753
2102
  };
2103
+ /** @description Subscription filters for the `price_spike` event. */
2104
+ PriceSpikeFilters: {
2105
+ /** @description Restrict to specific outcome token IDs. Empty = all positions. */
2106
+ position_ids?: string[] | null;
2107
+ /** @description Restrict to specific market condition IDs. Empty = all markets. */
2108
+ condition_ids?: string[] | null;
2109
+ /** @description Restrict to specific events. Empty = all events. */
2110
+ event_slugs?: string[] | null;
2111
+ /** @description Restrict to these outcome names (e.g. \["Yes", "No"\]). */
2112
+ outcomes?: string[] | null;
2113
+ /**
2114
+ * Format: double
2115
+ * @description Minimum price percentage move to trigger (e.g. `10` for a 10% move).
2116
+ */
2117
+ min_price_change_pct?: number | null;
2118
+ /**
2119
+ * Format: double
2120
+ * @description Minimum YES probability (0-1).
2121
+ */
2122
+ min_probability?: number | null;
2123
+ /**
2124
+ * Format: double
2125
+ * @description Maximum YES probability (0-1).
2126
+ */
2127
+ max_probability?: number | null;
2128
+ /**
2129
+ * Format: int64
2130
+ * @description Minimum trades accumulated in the observation window before firing.
2131
+ */
2132
+ min_txns?: number | null;
2133
+ /**
2134
+ * Format: double
2135
+ * @description Minimum USD volume accumulated in the observation window before firing.
2136
+ */
2137
+ min_volume_usd?: number | null;
2138
+ spike_direction?: null | components["schemas"]["SpikeDirection"];
2139
+ /**
2140
+ * Format: int64
2141
+ * @description Observation window in seconds. The first trade in each window sets the reference price; subsequent trades are compared to it. E.g. `60` detects moves that occur within 60 seconds.
2142
+ */
2143
+ window_secs?: number | null;
2144
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2145
+ exclude_shortterm_markets?: boolean | null;
2146
+ };
2147
+ /** @description Position price spike webhook payload */
1754
2148
  PriceSpikePayload: {
1755
- /** @description Outcome token ID */
1756
2149
  position_id: string;
1757
- /** @description Market condition ID */
1758
2150
  condition_id?: string | null;
1759
- /** @description Event slug */
2151
+ question?: string | null;
2152
+ market_slug?: string | null;
1760
2153
  event_slug?: string | null;
1761
- /** @description Outcome name (e.g. "Yes", "No") */
2154
+ image_url?: string | null;
1762
2155
  outcome?: string | null;
2156
+ /** Format: int32 */
2157
+ outcome_index?: number | null;
1763
2158
  /**
1764
- * Format: int16
1765
- * @description Outcome index
2159
+ * Format: double
2160
+ * @description Price at the start of the observation window (the baseline snapshot)
1766
2161
  */
1767
- outcome_index?: number | null;
1768
- /** @description Price at the start of the observation window (baseline snapshot, 0.0–1.0) */
1769
2162
  previous_price: number;
1770
- /** @description Current price that triggered the spike (0.0–1.0) */
2163
+ /**
2164
+ * Format: double
2165
+ * @description Current price that triggered the spike
2166
+ */
1771
2167
  current_price: number;
2168
+ /** @description Direction of the spike: `"up"` (price rising) or `"down"` (price falling) */
2169
+ spike_direction: string;
1772
2170
  /**
1773
- * @description `"up"` = price rising, `"down"` = price falling
1774
- * @enum {string}
2171
+ * Format: double
2172
+ * @description Detected spike percentage from the snapshot baseline. Positive = rising, negative = falling.
1775
2173
  */
1776
- spike_direction: "up" | "down";
1777
- /** @description Percentage move that triggered this notification. Positive = up, negative = down. */
1778
2174
  spike_pct: number;
1779
2175
  };
2176
+ /** @description Subscription filters for the `probability_spike` event. */
2177
+ ProbabilitySpikeFilters: {
2178
+ /** @description Restrict to specific outcome token IDs. Empty = all positions. */
2179
+ position_ids?: string[] | null;
2180
+ /** @description Restrict to specific market condition IDs. Empty = all markets. */
2181
+ condition_ids?: string[] | null;
2182
+ /** @description Restrict to specific events. Empty = all events. */
2183
+ event_slugs?: string[] | null;
2184
+ /** @description Restrict to these outcome names (e.g. \["Yes", "No"\]). */
2185
+ outcomes?: string[] | null;
2186
+ /**
2187
+ * Format: double
2188
+ * @description Minimum YES probability (0-1). At least one of `min_probability`/`max_probability` is enforced at runtime if you want a probability gate.
2189
+ */
2190
+ min_probability?: number | null;
2191
+ /**
2192
+ * Format: double
2193
+ * @description Maximum YES probability (0-1).
2194
+ */
2195
+ max_probability?: number | null;
2196
+ /**
2197
+ * Format: double
2198
+ * @description Minimum probability percentage move to trigger (e.g. `10` for a 10% move).
2199
+ */
2200
+ min_probability_change_pct?: number | null;
2201
+ /**
2202
+ * Format: int64
2203
+ * @description Minimum trades accumulated in the observation window before firing.
2204
+ */
2205
+ min_txns?: number | null;
2206
+ /**
2207
+ * Format: double
2208
+ * @description Minimum USD volume accumulated in the observation window before firing.
2209
+ */
2210
+ min_volume_usd?: number | null;
2211
+ spike_direction?: null | components["schemas"]["SpikeDirection"];
2212
+ /**
2213
+ * Format: int64
2214
+ * @description Observation window in seconds. The first trade in each window sets the reference price; subsequent trades are compared to it. E.g. `60` detects moves that occur within 60 seconds.
2215
+ */
2216
+ window_secs?: number | null;
2217
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2218
+ exclude_shortterm_markets?: boolean | null;
2219
+ };
2220
+ /** @description Position probability spike webhook payload */
1780
2221
  ProbabilitySpikePayload: {
1781
- /** @description Outcome token ID */
1782
2222
  position_id: string;
1783
- /** @description Market condition ID */
1784
2223
  condition_id?: string | null;
1785
- /** @description Event slug */
2224
+ question?: string | null;
2225
+ market_slug?: string | null;
1786
2226
  event_slug?: string | null;
1787
- /** @description Outcome name (e.g. "Yes", "No") */
2227
+ image_url?: string | null;
1788
2228
  outcome?: string | null;
2229
+ /** Format: int32 */
2230
+ outcome_index?: number | null;
1789
2231
  /**
1790
- * Format: int16
1791
- * @description Outcome index
2232
+ * Format: double
2233
+ * @description Probability at the start of the observation window (the baseline snapshot)
1792
2234
  */
1793
- outcome_index?: number | null;
1794
- /** @description Probability at the start of the observation window (baseline snapshot, 0.0–1.0) */
1795
2235
  previous_probability: number;
1796
- /** @description Current probability that triggered the spike (0.0–1.0) */
2236
+ /**
2237
+ * Format: double
2238
+ * @description Current probability that triggered the spike
2239
+ */
1797
2240
  current_probability: number;
2241
+ /** @description Direction of the spike: `"up"` (probability rising) or `"down"` (probability falling) */
2242
+ spike_direction: string;
1798
2243
  /**
1799
- * @description `"up"` = probability rising, `"down"` = probability falling
1800
- * @enum {string}
2244
+ * Format: double
2245
+ * @description Detected spike percentage from the snapshot baseline. Positive = rising, negative = falling.
1801
2246
  */
1802
- spike_direction: "up" | "down";
1803
- /** @description Percentage move that triggered this notification. Positive = up, negative = down. */
1804
2247
  spike_pct: number;
1805
2248
  };
1806
2249
  /** @description V2 UMA OOv2: a price was proposed (resolution proposal). */
@@ -2092,6 +2535,290 @@ export interface components {
2092
2535
  * @enum {string}
2093
2536
  */
2094
2537
  SpikeDirection: "up" | "down" | "both";
2538
+ /**
2539
+ * @description Trade-event types accepted by `trader_trade_event.trade_types`. Covers the
2540
+ * full set of typed prediction-trade variants.
2541
+ * @enum {string}
2542
+ */
2543
+ TradeEventFilterType: "OrderFilled" | "Redemption" | "Merge" | "Split" | "Cancelled" | "PositionsConverted" | "OrdersMatched" | "Initialization" | "Proposal" | "Dispute" | "Settled" | "Resolution" | "ConditionResolution" | "Reset" | "Flag" | "Unflag" | "Pause" | "Unpause" | "ManualResolution" | "NegRiskOutcomeReported" | "RegisterToken" | "Approval";
2544
+ /** @description Subscription filters for the `trader_event_pnl` event. All fields are optional. */
2545
+ TraderEventPnlFilters: {
2546
+ /** @description Track only these trader wallet addresses. */
2547
+ traders?: string[] | null;
2548
+ /** @description Restrict to these events. */
2549
+ event_slugs?: string[] | null;
2550
+ /**
2551
+ * Format: double
2552
+ * @description Only fire when per-event realized PnL ≥ this value (USD).
2553
+ */
2554
+ min_realized_pnl_usd?: number | null;
2555
+ /**
2556
+ * Format: double
2557
+ * @description Only fire when per-event realized PnL ≤ this value (USD).
2558
+ */
2559
+ max_realized_pnl_usd?: number | null;
2560
+ /**
2561
+ * Format: double
2562
+ * @description Only fire when total event volume ≥ this value (USD).
2563
+ */
2564
+ min_volume_usd?: number | null;
2565
+ /**
2566
+ * Format: double
2567
+ * @description Only fire when total event volume ≤ this value (USD).
2568
+ */
2569
+ max_volume_usd?: number | null;
2570
+ /**
2571
+ * Format: double
2572
+ * @description Only fire when buy volume within the event ≥ this value (USD).
2573
+ */
2574
+ min_buy_usd?: number | null;
2575
+ /**
2576
+ * Format: double
2577
+ * @description Only fire when sell volume within the event ≥ this value (USD).
2578
+ */
2579
+ min_sell_volume_usd?: number | null;
2580
+ /**
2581
+ * Format: int64
2582
+ * @description Only fire when the trader has traded in ≥ this many markets within the event.
2583
+ */
2584
+ min_markets_traded?: number | null;
2585
+ /** @description Restrict to these PnL windows. */
2586
+ timeframes?: components["schemas"]["PnlFilterTimeframe"][] | null;
2587
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2588
+ exclude_shortterm_markets?: boolean | null;
2589
+ };
2590
+ /** @description Subscription filters for the `trader_first_trade` event. All fields are optional. */
2591
+ TraderFirstTradeFilters: {
2592
+ /** @description Only fire for trades by these wallet addresses (lowercase). Empty = all traders. */
2593
+ wallet_addresses?: string[] | null;
2594
+ /** @description Restrict to trades in these markets. Empty = all markets. */
2595
+ condition_ids?: string[] | null;
2596
+ /** @description Restrict to trades in markets belonging to these events. */
2597
+ event_slugs?: string[] | null;
2598
+ /**
2599
+ * Format: double
2600
+ * @description Minimum trade size in USD. Omit to match all sizes.
2601
+ */
2602
+ min_usd_value?: number | null;
2603
+ /**
2604
+ * Format: double
2605
+ * @description Only fire when the outcome probability is ≥ this value.
2606
+ */
2607
+ min_probability?: number | null;
2608
+ /**
2609
+ * Format: double
2610
+ * @description Only fire when the outcome probability is ≤ this value.
2611
+ */
2612
+ max_probability?: number | null;
2613
+ /** @description When `true`, suppress webhooks for short-term "updown" markets (event slugs containing `updown`). Default: `false`. */
2614
+ exclude_shortterm_markets?: boolean | null;
2615
+ };
2616
+ /** @description Subscription filters for the `trader_global_pnl` event. All fields are optional. */
2617
+ TraderGlobalPnlFilters: {
2618
+ /** @description Track only these trader wallet addresses. Empty = all traders. */
2619
+ traders?: string[] | null;
2620
+ /**
2621
+ * Format: double
2622
+ * @description Only fire when realized PnL ≥ this value (USD). Use negative values for loss thresholds.
2623
+ */
2624
+ min_realized_pnl_usd?: number | null;
2625
+ /**
2626
+ * Format: double
2627
+ * @description Only fire when realized PnL ≤ this value (USD).
2628
+ */
2629
+ max_realized_pnl_usd?: number | null;
2630
+ /**
2631
+ * Format: double
2632
+ * @description Only fire when total trading volume ≥ this value (USD).
2633
+ */
2634
+ min_volume_usd?: number | null;
2635
+ /**
2636
+ * Format: double
2637
+ * @description Only fire when total trading volume ≤ this value (USD).
2638
+ */
2639
+ max_volume_usd?: number | null;
2640
+ /**
2641
+ * Format: double
2642
+ * @description Only fire when buy volume ≥ this value (USD).
2643
+ */
2644
+ min_buy_usd?: number | null;
2645
+ /**
2646
+ * Format: double
2647
+ * @description Only fire when sell volume ≥ this value (USD).
2648
+ */
2649
+ min_sell_volume_usd?: number | null;
2650
+ /**
2651
+ * Format: double
2652
+ * @description Only fire when market win rate ≥ this percentage (0.0–100.0).
2653
+ */
2654
+ min_win_rate?: number | null;
2655
+ /**
2656
+ * Format: int64
2657
+ * @description Only fire when the trader has traded in ≥ this many markets.
2658
+ */
2659
+ min_markets_traded?: number | null;
2660
+ /** @description Restrict to these PnL windows. Empty = all windows. */
2661
+ timeframes?: components["schemas"]["PnlFilterTimeframe"][] | null;
2662
+ };
2663
+ /** @description Subscription filters for the `trader_market_pnl` event. All fields are optional. */
2664
+ TraderMarketPnlFilters: {
2665
+ /** @description Track only these trader wallet addresses. */
2666
+ traders?: string[] | null;
2667
+ /** @description Restrict to these markets. */
2668
+ condition_ids?: string[] | null;
2669
+ /** @description Restrict to markets in these events. */
2670
+ event_slugs?: string[] | null;
2671
+ /**
2672
+ * Format: double
2673
+ * @description Only fire when per-market realized PnL ≥ this value (USD).
2674
+ */
2675
+ min_realized_pnl_usd?: number | null;
2676
+ /**
2677
+ * Format: double
2678
+ * @description Only fire when per-market realized PnL ≤ this value (USD).
2679
+ */
2680
+ max_realized_pnl_usd?: number | null;
2681
+ /**
2682
+ * Format: double
2683
+ * @description Only fire when total volume (buy + sell + redemption + merge) ≥ this value (USD).
2684
+ */
2685
+ min_volume_usd?: number | null;
2686
+ /**
2687
+ * Format: double
2688
+ * @description Only fire when total volume ≤ this value (USD).
2689
+ */
2690
+ max_volume_usd?: number | null;
2691
+ /**
2692
+ * Format: double
2693
+ * @description Only fire when buy volume in the market ≥ this value (USD).
2694
+ */
2695
+ min_buy_usd?: number | null;
2696
+ /**
2697
+ * Format: double
2698
+ * @description Only fire when sell volume in the market ≥ this value (USD).
2699
+ */
2700
+ min_sell_volume_usd?: number | null;
2701
+ /** @description Restrict to these PnL windows. */
2702
+ timeframes?: components["schemas"]["PnlFilterTimeframe"][] | null;
2703
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2704
+ exclude_shortterm_markets?: boolean | null;
2705
+ };
2706
+ /** @description Subscription filters for the `trader_new_market` event. All fields are optional. */
2707
+ TraderNewMarketFilters: {
2708
+ /** @description Only fire for these wallet addresses (lowercase). Empty = all traders. */
2709
+ wallet_addresses?: string[] | null;
2710
+ /** @description Restrict to these markets. */
2711
+ condition_ids?: string[] | null;
2712
+ /** @description Restrict to markets belonging to these events. */
2713
+ event_slugs?: string[] | null;
2714
+ /**
2715
+ * Format: double
2716
+ * @description Minimum trade size in USD. Omit to match all sizes.
2717
+ */
2718
+ min_usd_value?: number | null;
2719
+ /**
2720
+ * Format: double
2721
+ * @description Only fire when the outcome probability is ≥ this value.
2722
+ */
2723
+ min_probability?: number | null;
2724
+ /**
2725
+ * Format: double
2726
+ * @description Only fire when the outcome probability is ≤ this value.
2727
+ */
2728
+ max_probability?: number | null;
2729
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2730
+ exclude_shortterm_markets?: boolean | null;
2731
+ };
2732
+ /** @description Subscription filters for the `trader_new_trade` event. All fields are optional. */
2733
+ TraderNewTradeFilters: {
2734
+ /** @description Only fire for trades by these wallet addresses. Empty = all traders. */
2735
+ wallet_addresses?: string[] | null;
2736
+ /** @description Restrict to these markets. */
2737
+ condition_ids?: string[] | null;
2738
+ /** @description Restrict to markets belonging to these events. */
2739
+ event_slugs?: string[] | null;
2740
+ /**
2741
+ * Format: double
2742
+ * @description Minimum trade size in USD. Defaults to 0 (matches all trades).
2743
+ * @default 0
2744
+ */
2745
+ min_usd_value: number | null;
2746
+ /**
2747
+ * Format: double
2748
+ * @description Only fire when outcome probability is ≥ this value.
2749
+ */
2750
+ min_probability?: number | null;
2751
+ /**
2752
+ * Format: double
2753
+ * @description Only fire when outcome probability is ≤ this value.
2754
+ */
2755
+ max_probability?: number | null;
2756
+ /** @description Only fire for these fill-style trade types. Empty = OrderFilled and OrdersMatched only (default). */
2757
+ trade_types?: ("OrderFilled" | "OrdersMatched")[] | null;
2758
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2759
+ exclude_shortterm_markets?: boolean | null;
2760
+ };
2761
+ /**
2762
+ * @description Subscription filters for the `trader_trade_event` event. All fields are optional.
2763
+ * `event_slugs` and `exclude_shortterm_markets` require explicit `trade_types` that
2764
+ * exclude `PositionsConverted`, because conversion events do not currently carry
2765
+ * `event_slug` in the typed webhook payload.
2766
+ */
2767
+ TraderTradeEventFilters: {
2768
+ /** @description Only fire for events associated with these wallet addresses. Empty = all traders. */
2769
+ wallet_addresses?: string[] | null;
2770
+ /** @description Restrict to these markets. For `PositionsConverted`, this also matches the NegRisk `market_id`. */
2771
+ condition_ids?: string[] | null;
2772
+ /** @description Restrict to markets belonging to these events. Requires explicit `trade_types` that exclude `PositionsConverted`. */
2773
+ event_slugs?: string[] | null;
2774
+ /**
2775
+ * Format: double
2776
+ * @description Minimum USD amount for the underlying event. Defaults to 0 (matches all events).
2777
+ * @default 0
2778
+ */
2779
+ min_usd_value: number | null;
2780
+ /**
2781
+ * Format: double
2782
+ * @description Only fire when event probability is ≥ this value. Events without probability data do not match.
2783
+ */
2784
+ min_probability?: number | null;
2785
+ /**
2786
+ * Format: double
2787
+ * @description Only fire when event probability is ≤ this value. Events without probability data do not match.
2788
+ */
2789
+ max_probability?: number | null;
2790
+ /** @description Only fire for these trade types. Empty = all supported trade-event variants. */
2791
+ trade_types?: ("OrderFilled" | "Redemption" | "Merge" | "Split" | "Cancelled" | "PositionsConverted" | "OrdersMatched" | "Initialization" | "Proposal" | "Dispute" | "Settled" | "Resolution" | "ConditionResolution" | "Reset" | "Flag" | "Unflag" | "Pause" | "Unpause" | "ManualResolution" | "NegRiskOutcomeReported" | "RegisterToken" | "Approval")[] | null;
2792
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Requires explicit `trade_types` that exclude `PositionsConverted`. Default: `false`. */
2793
+ exclude_shortterm_markets?: boolean | null;
2794
+ };
2795
+ /** @description Subscription filters for the `trader_whale_trade` event. All fields are optional. */
2796
+ TraderWhaleTradeFilters: {
2797
+ /** @description Only fire for trades by these wallet addresses. Empty = all traders. */
2798
+ wallet_addresses?: string[] | null;
2799
+ /** @description Restrict to these markets. */
2800
+ condition_ids?: string[] | null;
2801
+ /** @description Restrict to markets belonging to these events. */
2802
+ event_slugs?: string[] | null;
2803
+ /**
2804
+ * Format: double
2805
+ * @description Minimum trade size in USD. Defaults to 0 (matches all trades).
2806
+ * @default 0
2807
+ */
2808
+ min_usd_value: number | null;
2809
+ /**
2810
+ * Format: double
2811
+ * @description Only fire when outcome probability is ≥ this value.
2812
+ */
2813
+ min_probability?: number | null;
2814
+ /**
2815
+ * Format: double
2816
+ * @description Only fire when outcome probability is ≤ this value.
2817
+ */
2818
+ max_probability?: number | null;
2819
+ /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2820
+ exclude_shortterm_markets?: boolean | null;
2821
+ };
2095
2822
  /** @description Request body for updating a webhook */
2096
2823
  UpdateWebhookRequestBody: {
2097
2824
  /** @description Destination URL for webhook deliveries (must be HTTPS) */
@@ -2104,20 +2831,24 @@ export interface components {
2104
2831
  /** @description Description/name */
2105
2832
  description?: string | null;
2106
2833
  };
2107
- /** @description Payload delivered when a market's trading volume crosses a USD milestone in the specified timeframe */
2834
+ /** @description Volume milestone webhook payload */
2108
2835
  VolumeMilestonePayload: {
2109
- /** @description Market condition ID */
2110
2836
  condition_id: string;
2837
+ timeframe: string;
2111
2838
  /**
2112
- * @description Aggregation window that crossed the milestone
2113
- * @enum {string}
2839
+ * Format: double
2840
+ * @description Milestone amount reached (USD)
2114
2841
  */
2115
- timeframe: "1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d";
2116
- /** @description The USD milestone amount that was crossed */
2117
2842
  milestone_usd: number;
2118
- /** @description Current volume at time of trigger (USD) */
2843
+ /**
2844
+ * Format: double
2845
+ * @description Current volume (USD) that triggered the milestone
2846
+ */
2119
2847
  current_volume_usd: number;
2120
- /** @description Total fees in USD for this timeframe */
2848
+ /**
2849
+ * Format: double
2850
+ * @description Total fees collected in this timeframe
2851
+ */
2121
2852
  fees: number;
2122
2853
  /**
2123
2854
  * Format: int64
@@ -2125,6 +2856,12 @@ export interface components {
2125
2856
  */
2126
2857
  txns: number;
2127
2858
  };
2859
+ /**
2860
+ * @description Aggregation windows accepted by `*_volume_spike.timeframes`. Includes `1d`
2861
+ * in addition to the metric set.
2862
+ * @enum {string}
2863
+ */
2864
+ VolumeSpikeFilterTimeframe: "1m" | "5m" | "30m" | "1h" | "6h" | "1d" | "24h" | "7d" | "30d";
2128
2865
  /**
2129
2866
  * @description Crypto asset symbols accepted by `asset_price_tick` and `asset_price_window_update` filters.
2130
2867
  * @enum {string}
@@ -2367,7 +3104,10 @@ export interface components {
2367
3104
  condition_id?: string | null;
2368
3105
  /** @description Outcome name (e.g. "Yes", "No") */
2369
3106
  outcome?: string | null;
2370
- /** @description Outcome index: 0 = Yes/Up, 1 = No */
3107
+ /**
3108
+ * Format: int32
3109
+ * @description Outcome index: 0 = Yes/Up, 1 = No
3110
+ */
2371
3111
  outcome_index?: number | null;
2372
3112
  /** @description Market question text */
2373
3113
  question?: string | null;
@@ -2389,30 +3129,36 @@ export interface components {
2389
3129
  * @description Block confirmation timestamp (Unix seconds)
2390
3130
  */
2391
3131
  confirmed_at: number;
2392
- /** @description USD size of the trade (6 decimal places) */
3132
+ /**
3133
+ * Format: double
3134
+ * @description USD size of the trade (6 decimal places)
3135
+ */
2393
3136
  amount_usd: number;
2394
- /** @description Outcome shares traded (6 decimal places) */
3137
+ /**
3138
+ * Format: double
3139
+ * @description Outcome shares traded (6 decimal places)
3140
+ */
2395
3141
  shares_amount: number;
2396
- /** @description Fee paid in USD (6 decimal places) */
2397
- fee: number;
2398
3142
  /**
2399
- * @description Trade direction
2400
- * @enum {string}
3143
+ * Format: double
3144
+ * @description Fee paid in USD (6 decimal places)
2401
3145
  */
3146
+ fee: number;
3147
+ /** @description Trade direction */
2402
3148
  side: "Buy" | "Sell";
2403
- /** @description Outcome token price (0.0–1.0) */
2404
- price: number;
2405
- /** @description Implied probability (0.0–1.0); null when outcome is unknown */
2406
- probability?: number | null;
2407
3149
  /**
2408
- * @description Exchange contract that processed the trade
2409
- * @enum {string}
3150
+ * Format: double
3151
+ * @description Outcome token price (0.0–1.0)
2410
3152
  */
2411
- exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "Unknown";
3153
+ price: number;
2412
3154
  /**
2413
- * @description Trade type (webhook events only fire on order fills)
2414
- * @enum {string}
3155
+ * Format: double
3156
+ * @description Implied probability (0.0–1.0); null when outcome is unknown
2415
3157
  */
3158
+ probability?: number | null;
3159
+ /** @description Exchange contract that processed the trade */
3160
+ exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "CTFExchangeV2" | "NegRiskExchangeV2" | "Unknown";
3161
+ /** @description Trade type (webhook events only fire on order fills) */
2416
3162
  trade_type: "OrderFilled" | "OrdersMatched";
2417
3163
  };
2418
3164
  /** @description Outer envelope for every webhook HTTP POST delivery. The `data` field contains the event-specific payload. Delivery headers sent with every POST: `X-Webhook-ID` (subscription UUID), `X-Delivery-ID` (this attempt's UUID), `X-Event-Type` (event name string, e.g. `trader_first_trade`), `X-Attempt` (attempt number, 1-indexed). When the webhook has a secret configured, `X-Webhook-Signature: sha256=<hmac-hex>` is also included — compute HMAC-SHA256 over the raw request body using your secret to verify. */
@@ -2915,409 +3661,6 @@ export interface components {
2915
3661
  /** @enum {string} */
2916
3662
  trade_type: "Approval";
2917
3663
  };
2918
- /** @description Subscription filters for the `trader_first_trade` event. All fields are optional. */
2919
- TraderFirstTradeFilters: {
2920
- /** @description Only fire for trades by these wallet addresses (lowercase). Empty = all traders. */
2921
- wallet_addresses?: string[];
2922
- /** @description Restrict to trades in these markets. Empty = all markets. */
2923
- condition_ids?: string[];
2924
- /** @description Restrict to trades in markets belonging to these events. */
2925
- event_slugs?: string[];
2926
- /** @description Minimum trade size in USD. Omit to match all sizes. */
2927
- min_usd_value?: number;
2928
- /** @description Only fire when the outcome probability is ≥ this value. */
2929
- min_probability?: number;
2930
- /** @description Only fire when the outcome probability is ≤ this value. */
2931
- max_probability?: number;
2932
- /** @description When `true`, suppress webhooks for short-term "updown" markets (event slugs containing `updown`). Default: `false`. */
2933
- exclude_shortterm_markets?: boolean;
2934
- };
2935
- /** @description Subscription filters for the `trader_new_market` event. All fields are optional. */
2936
- TraderNewMarketFilters: {
2937
- /** @description Only fire for these wallet addresses (lowercase). Empty = all traders. */
2938
- wallet_addresses?: string[];
2939
- /** @description Restrict to these markets. */
2940
- condition_ids?: string[];
2941
- /** @description Restrict to markets belonging to these events. */
2942
- event_slugs?: string[];
2943
- /** @description Minimum trade size in USD. Omit to match all sizes. */
2944
- min_usd_value?: number;
2945
- /** @description Only fire when the outcome probability is ≥ this value. */
2946
- min_probability?: number;
2947
- /** @description Only fire when the outcome probability is ≤ this value. */
2948
- max_probability?: number;
2949
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2950
- exclude_shortterm_markets?: boolean;
2951
- };
2952
- /** @description Subscription filters for the `trader_whale_trade` event. All fields are optional. */
2953
- TraderWhaleTradeFilters: {
2954
- /** @description Only fire for trades by these wallet addresses. Empty = all traders. */
2955
- wallet_addresses?: string[];
2956
- /** @description Restrict to these markets. */
2957
- condition_ids?: string[];
2958
- /** @description Restrict to markets belonging to these events. */
2959
- event_slugs?: string[];
2960
- /**
2961
- * @description Minimum trade size in USD. Defaults to 0 (matches all trades).
2962
- * @default 0
2963
- */
2964
- min_usd_value: number;
2965
- /** @description Only fire when outcome probability is ≥ this value. */
2966
- min_probability?: number;
2967
- /** @description Only fire when outcome probability is ≤ this value. */
2968
- max_probability?: number;
2969
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2970
- exclude_shortterm_markets?: boolean;
2971
- };
2972
- /** @description Subscription filters for the `trader_new_trade` event. All fields are optional. */
2973
- TraderNewTradeFilters: {
2974
- /** @description Only fire for trades by these wallet addresses. Empty = all traders. */
2975
- wallet_addresses?: string[];
2976
- /** @description Restrict to these markets. */
2977
- condition_ids?: string[];
2978
- /** @description Restrict to markets belonging to these events. */
2979
- event_slugs?: string[];
2980
- /**
2981
- * @description Minimum trade size in USD. Defaults to 0 (matches all trades).
2982
- * @default 0
2983
- */
2984
- min_usd_value: number;
2985
- /** @description Only fire when outcome probability is ≥ this value. */
2986
- min_probability?: number;
2987
- /** @description Only fire when outcome probability is ≤ this value. */
2988
- max_probability?: number;
2989
- /** @description Only fire for these fill-style trade types. Empty = OrderFilled and OrdersMatched only (default). */
2990
- trade_types?: ("OrderFilled" | "OrdersMatched")[];
2991
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2992
- exclude_shortterm_markets?: boolean;
2993
- };
2994
- /** @description Subscription filters for the `trader_trade_event` event. All fields are optional. `event_slugs` and `exclude_shortterm_markets` require explicit `trade_types` that exclude `PositionsConverted`, because conversion events do not currently carry `event_slug` in the typed webhook payload. */
2995
- TraderTradeEventFilters: {
2996
- /** @description Only fire for events associated with these wallet addresses. Empty = all traders. */
2997
- wallet_addresses?: string[];
2998
- /** @description Restrict to these markets. For `PositionsConverted`, this also matches the NegRisk `market_id`. */
2999
- condition_ids?: string[];
3000
- /** @description Restrict to markets belonging to these events. Requires explicit `trade_types` that exclude `PositionsConverted`. */
3001
- event_slugs?: string[];
3002
- /**
3003
- * @description Minimum USD amount for the underlying event. Defaults to 0 (matches all events).
3004
- * @default 0
3005
- */
3006
- min_usd_value: number;
3007
- /** @description Only fire when event probability is ≥ this value. Events without probability data do not match. */
3008
- min_probability?: number;
3009
- /** @description Only fire when event probability is ≤ this value. Events without probability data do not match. */
3010
- max_probability?: number;
3011
- /** @description Only fire for these trade types. Empty = all supported trade-event variants. */
3012
- trade_types?: ("OrderFilled" | "Redemption" | "Merge" | "Split" | "Cancelled" | "PositionsConverted" | "OrdersMatched" | "Initialization" | "Proposal" | "Dispute" | "Settled" | "Resolution" | "ConditionResolution" | "Reset" | "Flag" | "Unflag" | "Pause" | "Unpause" | "ManualResolution" | "NegRiskOutcomeReported" | "RegisterToken" | "Approval")[];
3013
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Requires explicit `trade_types` that exclude `PositionsConverted`. Default: `false`. */
3014
- exclude_shortterm_markets?: boolean;
3015
- };
3016
- /** @description Subscription filters for the `trader_global_pnl` event. All fields are optional. */
3017
- TraderGlobalPnlFilters: {
3018
- /** @description Track only these trader wallet addresses. Empty = all traders. */
3019
- traders?: string[];
3020
- /** @description Only fire when realized PnL ≥ this value (USD). Use negative values for loss thresholds. */
3021
- min_realized_pnl_usd?: number;
3022
- /** @description Only fire when realized PnL ≤ this value (USD). */
3023
- max_realized_pnl_usd?: number;
3024
- /** @description Only fire when total trading volume ≥ this value (USD). */
3025
- min_volume_usd?: number;
3026
- /** @description Only fire when total trading volume ≤ this value (USD). */
3027
- max_volume_usd?: number;
3028
- /** @description Only fire when buy volume ≥ this value (USD). */
3029
- min_buy_usd?: number;
3030
- /** @description Only fire when sell volume ≥ this value (USD). */
3031
- min_sell_volume_usd?: number;
3032
- /** @description Only fire when market win rate ≥ this percentage (0.0–100.0). */
3033
- min_win_rate?: number;
3034
- /**
3035
- * Format: int64
3036
- * @description Only fire when the trader has traded in ≥ this many markets.
3037
- */
3038
- min_markets_traded?: number;
3039
- /** @description Restrict to these PnL windows. Empty = all windows. */
3040
- timeframes?: ("1d" | "7d" | "30d" | "lifetime")[];
3041
- };
3042
- /** @description Subscription filters for the `trader_market_pnl` event. All fields are optional. */
3043
- TraderMarketPnlFilters: {
3044
- /** @description Track only these trader wallet addresses. */
3045
- traders?: string[];
3046
- /** @description Restrict to these markets. */
3047
- condition_ids?: string[];
3048
- /** @description Restrict to markets in these events. */
3049
- event_slugs?: string[];
3050
- /** @description Only fire when per-market realized PnL ≥ this value (USD). */
3051
- min_realized_pnl_usd?: number;
3052
- /** @description Only fire when per-market realized PnL ≤ this value (USD). */
3053
- max_realized_pnl_usd?: number;
3054
- /** @description Only fire when total volume (buy + sell + redemption + merge) ≥ this value (USD). */
3055
- min_volume_usd?: number;
3056
- /** @description Only fire when total volume ≤ this value (USD). */
3057
- max_volume_usd?: number;
3058
- /** @description Only fire when buy volume in the market ≥ this value (USD). */
3059
- min_buy_usd?: number;
3060
- /** @description Only fire when sell volume in the market ≥ this value (USD). */
3061
- min_sell_volume_usd?: number;
3062
- /** @description Restrict to these PnL windows. */
3063
- timeframes?: ("1d" | "7d" | "30d" | "lifetime")[];
3064
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
3065
- exclude_shortterm_markets?: boolean;
3066
- };
3067
- /** @description Subscription filters for the `trader_event_pnl` event. All fields are optional. */
3068
- TraderEventPnlFilters: {
3069
- /** @description Track only these trader wallet addresses. */
3070
- traders?: string[];
3071
- /** @description Restrict to these events. */
3072
- event_slugs?: string[];
3073
- /** @description Only fire when per-event realized PnL ≥ this value (USD). */
3074
- min_realized_pnl_usd?: number;
3075
- /** @description Only fire when per-event realized PnL ≤ this value (USD). */
3076
- max_realized_pnl_usd?: number;
3077
- /** @description Only fire when total event volume ≥ this value (USD). */
3078
- min_volume_usd?: number;
3079
- /** @description Only fire when total event volume ≤ this value (USD). */
3080
- max_volume_usd?: number;
3081
- /** @description Only fire when buy volume within the event ≥ this value (USD). */
3082
- min_buy_usd?: number;
3083
- /** @description Only fire when sell volume within the event ≥ this value (USD). */
3084
- min_sell_volume_usd?: number;
3085
- /**
3086
- * Format: int64
3087
- * @description Only fire when the trader has traded in ≥ this many markets within the event.
3088
- */
3089
- min_markets_traded?: number;
3090
- /** @description Restrict to these PnL windows. */
3091
- timeframes?: ("1d" | "7d" | "30d" | "lifetime")[];
3092
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
3093
- exclude_shortterm_markets?: boolean;
3094
- };
3095
- /** @description Subscription filters for the `condition_metrics` event. All fields are optional. */
3096
- MarketMetricsFilters: {
3097
- /** @description Restrict to these markets. Empty = all markets. */
3098
- condition_ids?: string[];
3099
- /** @description Restrict to these aggregation windows. Empty = all windows. */
3100
- timeframes?: ("1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d")[];
3101
- /** @description Only fire when volume ≥ this value (USD). */
3102
- min_volume_usd?: number;
3103
- /** @description Only fire when volume ≤ this value (USD). */
3104
- max_volume_usd?: number;
3105
- /**
3106
- * Format: int64
3107
- * @description Only fire when transaction count ≥ this value.
3108
- */
3109
- min_txns?: number;
3110
- /**
3111
- * Format: int64
3112
- * @description Only fire when unique trader count ≥ this value.
3113
- */
3114
- min_unique_traders?: number;
3115
- /** @description Only fire when total fees ≥ this value (USD). */
3116
- min_fees?: number;
3117
- };
3118
- /** @description Subscription filters for the `event_metrics` event. All fields are optional. */
3119
- EventMetricsFilters: {
3120
- /** @description Restrict to these events. Empty = all events. */
3121
- event_slugs?: string[];
3122
- /** @description Restrict to these aggregation windows. */
3123
- timeframes?: ("1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d")[];
3124
- /** @description Only fire when aggregated event volume ≥ this value (USD). */
3125
- min_volume_usd?: number;
3126
- max_volume_usd?: number;
3127
- /** Format: int64 */
3128
- min_txns?: number;
3129
- /** Format: int64 */
3130
- min_unique_traders?: number;
3131
- min_fees?: number;
3132
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
3133
- exclude_shortterm_markets?: boolean;
3134
- };
3135
- /** @description Subscription filters for the `position_metrics` event. All fields are optional. */
3136
- PositionMetricsFilters: {
3137
- /** @description Restrict to these outcome token IDs. */
3138
- position_ids?: string[];
3139
- /** @description Restrict to positions within these markets. */
3140
- condition_ids?: string[];
3141
- /** @description Restrict to positions with these outcome names (e.g. ["Yes", "No"]). */
3142
- outcomes?: string[];
3143
- /** @description Restrict to these aggregation windows. */
3144
- timeframes?: ("1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d")[];
3145
- /** @description Only fire when position volume ≥ this value (USD). */
3146
- min_volume_usd?: number;
3147
- max_volume_usd?: number;
3148
- min_buy_usd?: number;
3149
- min_sell_volume_usd?: number;
3150
- /** Format: int64 */
3151
- min_txns?: number;
3152
- /** Format: int64 */
3153
- min_unique_traders?: number;
3154
- /** @description Only fire when price change % ≥ this value. */
3155
- min_price_change_pct?: number;
3156
- /** @description Only fire when probability change % ≥ this value. */
3157
- min_probability_change_pct?: number;
3158
- min_fees?: number;
3159
- };
3160
- /** @description Subscription filters for the `market_volume_milestone` event. */
3161
- MarketVolumeMilestoneFilters: {
3162
- /** @description **Required.** Aggregation windows to monitor (e.g. ["1h", "24h"]). */
3163
- timeframes: ("1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d")[];
3164
- /** @description Restrict to these markets. Empty = all markets. */
3165
- condition_ids?: string[];
3166
- /** @description Specific USD milestones to trigger on (e.g. [10000, 100000, 1000000]). Empty = all milestones. */
3167
- milestone_amounts?: number[];
3168
- };
3169
- /** @description Subscription filters for the `event_volume_milestone` event. */
3170
- EventVolumeMilestoneFilters: {
3171
- /** @description **Required.** Aggregation windows to monitor. */
3172
- timeframes: ("1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d")[];
3173
- /** @description Restrict to these events. */
3174
- event_slugs?: string[];
3175
- /** @description Specific USD milestones to trigger on. */
3176
- milestone_amounts?: number[];
3177
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
3178
- exclude_shortterm_markets?: boolean;
3179
- };
3180
- /** @description Subscription filters for the `position_volume_milestone` event. */
3181
- PositionVolumeMilestoneFilters: {
3182
- /** @description **Required.** Aggregation windows to monitor. */
3183
- timeframes: ("1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d")[];
3184
- /** @description Restrict to these outcome token IDs. */
3185
- position_ids?: string[];
3186
- /** @description Restrict to positions within these markets. */
3187
- condition_ids?: string[];
3188
- /** @description Specific USD milestones to trigger on. */
3189
- milestone_amounts?: number[];
3190
- };
3191
- /** @description Subscription filters for the `probability_spike` event. */
3192
- ProbabilitySpikeFilters: {
3193
- /** @description Restrict to specific outcome token IDs. Empty = all positions. */
3194
- position_ids?: string[];
3195
- /** @description Restrict to specific market condition IDs. Empty = all markets. */
3196
- condition_ids?: string[];
3197
- /** @description Restrict to specific events. Empty = all events. */
3198
- event_slugs?: string[];
3199
- /** @description Restrict to these outcome names (e.g. ["Yes", "No"]). */
3200
- outcomes?: string[];
3201
- /** @description Minimum probability percentage move to trigger (e.g. `10` for a 10% move). */
3202
- min_probability_change_pct?: number;
3203
- /**
3204
- * @description `"up"` = probability rising only (default when omitted), `"down"` = falling only, `"both"` = either direction.
3205
- * @enum {string}
3206
- */
3207
- spike_direction?: "up" | "down" | "both";
3208
- /** @description Observation window in seconds. The first trade in each window sets the reference price; subsequent trades are compared to it. E.g. `60` detects moves that occur within 60 seconds. */
3209
- window_secs?: number;
3210
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
3211
- exclude_shortterm_markets?: boolean;
3212
- };
3213
- /** @description Subscription filters for the `price_spike` event. */
3214
- PriceSpikeFilters: {
3215
- /** @description Restrict to specific outcome token IDs. Empty = all positions. */
3216
- position_ids?: string[];
3217
- /** @description Restrict to specific market condition IDs. Empty = all markets. */
3218
- condition_ids?: string[];
3219
- /** @description Restrict to specific events. Empty = all events. */
3220
- event_slugs?: string[];
3221
- /** @description Restrict to these outcome names (e.g. ["Yes", "No"]). */
3222
- outcomes?: string[];
3223
- /** @description Minimum price percentage move to trigger (e.g. `10` for a 10% move). */
3224
- min_price_change_pct?: number;
3225
- /**
3226
- * @description `"up"` = price rising only (default when omitted), `"down"` = falling only, `"both"` = either direction.
3227
- * @enum {string}
3228
- */
3229
- spike_direction?: "up" | "down" | "both";
3230
- /** @description Observation window in seconds. The first trade in each window sets the reference price; subsequent trades are compared to it. E.g. `60` detects moves that occur within 60 seconds. */
3231
- window_secs?: number;
3232
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
3233
- exclude_shortterm_markets?: boolean;
3234
- };
3235
- /** @description Subscription filters for the `market_volume_spike` event. `spike_ratio` is required. */
3236
- MarketVolumeSpikeFilters: {
3237
- /** @description **Required.** Multiplier threshold (must be > 1.0). Fires when current volume >= snapshot × ratio. The snapshot is set automatically on first data and resets after each fire. */
3238
- spike_ratio: number;
3239
- /** @description Force snapshot reset after this many seconds (max 600 / 10 minutes). */
3240
- window_secs?: number;
3241
- /** @description Restrict to these markets. Empty = all markets. */
3242
- condition_ids?: string[];
3243
- /** @description Restrict to these aggregation windows. Empty = all windows. */
3244
- timeframes?: ("1m" | "5m" | "30m" | "1h" | "6h" | "1d" | "24h" | "7d" | "30d")[];
3245
- };
3246
- /** @description Subscription filters for the `event_volume_spike` event. `spike_ratio` is required. */
3247
- EventVolumeSpikeFilters: {
3248
- /** @description **Required.** Multiplier threshold (must be > 1.0). Fires when current volume >= snapshot × ratio. */
3249
- spike_ratio: number;
3250
- /** @description Force snapshot reset after this many seconds (max 600 / 10 minutes). */
3251
- window_secs?: number;
3252
- /** @description Restrict to these events. */
3253
- event_slugs?: string[];
3254
- /** @description Restrict to these aggregation windows. */
3255
- timeframes?: ("1m" | "5m" | "30m" | "1h" | "6h" | "1d" | "24h" | "7d" | "30d")[];
3256
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
3257
- exclude_shortterm_markets?: boolean;
3258
- };
3259
- /** @description Subscription filters for the `position_volume_spike` event. `spike_ratio` is required. */
3260
- PositionVolumeSpikeFilters: {
3261
- /** @description **Required.** Multiplier threshold (must be > 1.0). Fires when current volume >= snapshot × ratio. */
3262
- spike_ratio: number;
3263
- /** @description Force snapshot reset after this many seconds (max 600 / 10 minutes). */
3264
- window_secs?: number;
3265
- /** @description Restrict to these outcome token IDs. */
3266
- position_ids?: string[];
3267
- /** @description Restrict to positions within these markets. */
3268
- condition_ids?: string[];
3269
- /** @description Restrict to these outcome names. */
3270
- outcomes?: string[];
3271
- /** @description Restrict to these aggregation windows. */
3272
- timeframes?: ("1m" | "5m" | "30m" | "1h" | "6h" | "1d" | "24h" | "7d" | "30d")[];
3273
- };
3274
- /** @description Subscription filters for the `close_to_bond` event. At least one of `min_probability` or `max_probability` is required. */
3275
- CloseToBondFilters: {
3276
- /** @description Trigger when the YES outcome price is ≥ this value (e.g. 0.95 for 95% certainty). At least one of `min_probability` or `max_probability` must be set. */
3277
- min_probability?: number;
3278
- /** @description Trigger when the YES outcome price is ≤ this value (e.g. 0.05 for near-certain NO). */
3279
- max_probability?: number;
3280
- /** @description Restrict to these markets. */
3281
- condition_ids?: string[];
3282
- /** @description Restrict to these outcome token IDs. */
3283
- position_ids?: string[];
3284
- /** @description Restrict to markets in these events. */
3285
- event_slugs?: string[];
3286
- /** @description Restrict to these outcome names (e.g. ["Yes", "No"]). */
3287
- outcomes?: string[];
3288
- /** @description Restrict by outcome index. 0 = Yes/Up, 1 = No. Position 0 usually represents the Up/Yes side in binary markets. */
3289
- position_outcome_indices?: number[];
3290
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
3291
- exclude_shortterm_markets?: boolean;
3292
- } | unknown | unknown;
3293
- /** @description Subscription filters for the `market_created` event. All fields are optional. */
3294
- MarketCreatedFilters: {
3295
- /** @description Restrict to markets with these tags or category names (case-insensitive match). */
3296
- tags?: string[];
3297
- /** @description Restrict to markets belonging to these events. */
3298
- event_slugs?: string[];
3299
- /** @description When `true`, suppress webhooks for short-term "updown" markets (event slugs containing `updown`). Default: `false`. */
3300
- exclude_shortterm_markets?: boolean;
3301
- };
3302
- /** @description Subscription filters for the `oracle_events` event. All fields are optional. */
3303
- OracleEventsFilters: {
3304
- /** @description Restrict to these event types (case-insensitive). Empty = all. */
3305
- oracle_event_types?: ("AssertionMade" | "AssertionDisputed" | "AssertionSettled" | "RequestPrice" | "ProposePrice" | "DisputePrice" | "Settle" | "QuestionResolved" | "QuestionEmergencyResolved" | "QuestionReset" | "QuestionInitialized" | "QuestionPaused" | "QuestionUnpaused" | "QuestionFlagged" | "QuestionUnflagged" | "ConditionResolution" | "NegRiskOutcomeReported")[];
3306
- /** @description Restrict to events for these condition IDs. */
3307
- condition_ids?: string[];
3308
- };
3309
- /** @description Subscription filters for the `asset_price_tick` event. All fields are optional. */
3310
- AssetPriceTickFilters: {
3311
- /** @description Restrict to these crypto assets. Empty = all assets. */
3312
- asset_symbols?: ("BTC" | "ETH" | "SOL" | "XRP" | "DOGE" | "BNB" | "HYPE")[];
3313
- };
3314
- /** @description Subscription filters for the `asset_price_window_update` event. All fields are optional. */
3315
- AssetPriceWindowUpdateFilters: {
3316
- /** @description Restrict to these crypto assets. Empty = all assets. */
3317
- asset_symbols?: ("BTC" | "ETH" | "SOL" | "XRP" | "DOGE" | "BNB" | "HYPE")[];
3318
- /** @description Restrict to these candle sizes. Empty = all sizes. */
3319
- timeframes?: ("5m" | "15m" | "1h" | "4h" | "1d" | "24h")[];
3320
- };
3321
3664
  };
3322
3665
  responses: never;
3323
3666
  parameters: never;