context.dev 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/models/ai_extract_product_params.rb +9 -1
  5. data/lib/context_dev/models/ai_extract_products_params.rb +18 -2
  6. data/lib/context_dev/models/brand_retrieve_params.rb +109 -22
  7. data/lib/context_dev/models/brand_retrieve_response.rb +4 -6
  8. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +32 -3
  9. data/lib/context_dev/models/industry_retrieve_naics_params.rb +11 -1
  10. data/lib/context_dev/models/industry_retrieve_sic_params.rb +11 -1
  11. data/lib/context_dev/models/monitor_create_params.rb +6 -5
  12. data/lib/context_dev/models/monitor_create_response.rb +6 -5
  13. data/lib/context_dev/models/monitor_get_credit_usage_params.rb +30 -0
  14. data/lib/context_dev/models/monitor_get_credit_usage_response.rb +59 -0
  15. data/lib/context_dev/models/monitor_get_limits_params.rb +14 -0
  16. data/lib/context_dev/models/monitor_get_limits_response.rb +52 -0
  17. data/lib/context_dev/models/monitor_list_account_changes_params.rb +16 -7
  18. data/lib/context_dev/models/monitor_list_account_changes_response.rb +2 -1
  19. data/lib/context_dev/models/monitor_list_account_runs_params.rb +7 -10
  20. data/lib/context_dev/models/monitor_list_changes_params.rb +8 -4
  21. data/lib/context_dev/models/monitor_list_changes_response.rb +2 -1
  22. data/lib/context_dev/models/monitor_list_params.rb +18 -19
  23. data/lib/context_dev/models/monitor_list_response.rb +6 -5
  24. data/lib/context_dev/models/monitor_list_runs_params.rb +7 -10
  25. data/lib/context_dev/models/monitor_retrieve_change_response.rb +2 -1
  26. data/lib/context_dev/models/monitor_retrieve_response.rb +6 -5
  27. data/lib/context_dev/models/monitor_update_params.rb +6 -5
  28. data/lib/context_dev/models/monitor_update_response.rb +6 -5
  29. data/lib/context_dev/models/parse_handle_params.rb +199 -33
  30. data/lib/context_dev/models/utility_prefetch_params.rb +9 -1
  31. data/lib/context_dev/models/web_extract_competitors_params.rb +11 -1
  32. data/lib/context_dev/models/web_extract_fonts_params.rb +14 -4
  33. data/lib/context_dev/models/web_extract_params.rb +19 -1
  34. data/lib/context_dev/models/web_extract_styleguide_params.rb +14 -4
  35. data/lib/context_dev/models/web_screenshot_params.rb +69 -18
  36. data/lib/context_dev/models/web_screenshot_response.rb +3 -2
  37. data/lib/context_dev/models/web_search_params.rb +9 -1
  38. data/lib/context_dev/models/web_web_crawl_md_params.rb +34 -1
  39. data/lib/context_dev/models/web_web_scrape_html_params.rb +268 -29
  40. data/lib/context_dev/models/web_web_scrape_images_params.rb +208 -19
  41. data/lib/context_dev/models/web_web_scrape_md_params.rb +352 -38
  42. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +45 -1
  43. data/lib/context_dev/models.rb +4 -0
  44. data/lib/context_dev/resources/ai.rb +3 -1
  45. data/lib/context_dev/resources/brand.rb +6 -2
  46. data/lib/context_dev/resources/industry.rb +6 -2
  47. data/lib/context_dev/resources/monitors.rb +70 -32
  48. data/lib/context_dev/resources/parse.rb +15 -11
  49. data/lib/context_dev/resources/utility.rb +3 -1
  50. data/lib/context_dev/resources/web.rb +104 -55
  51. data/lib/context_dev/version.rb +1 -1
  52. data/lib/context_dev.rb +4 -0
  53. data/rbi/context_dev/models/ai_extract_product_params.rbi +11 -0
  54. data/rbi/context_dev/models/ai_extract_products_params.rbi +22 -0
  55. data/rbi/context_dev/models/brand_retrieve_params.rbi +175 -64
  56. data/rbi/context_dev/models/brand_retrieve_response.rbi +8 -11
  57. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +68 -5
  58. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +15 -0
  59. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +15 -0
  60. data/rbi/context_dev/models/monitor_create_params.rbi +6 -4
  61. data/rbi/context_dev/models/monitor_create_response.rbi +6 -4
  62. data/rbi/context_dev/models/monitor_get_credit_usage_params.rbi +60 -0
  63. data/rbi/context_dev/models/monitor_get_credit_usage_response.rbi +111 -0
  64. data/rbi/context_dev/models/monitor_get_limits_params.rbi +30 -0
  65. data/rbi/context_dev/models/monitor_get_limits_response.rbi +105 -0
  66. data/rbi/context_dev/models/monitor_list_account_changes_params.rbi +16 -0
  67. data/rbi/context_dev/models/monitor_list_account_changes_response.rbi +2 -0
  68. data/rbi/context_dev/models/monitor_list_account_runs_params.rbi +7 -6
  69. data/rbi/context_dev/models/monitor_list_changes_params.rbi +8 -0
  70. data/rbi/context_dev/models/monitor_list_changes_response.rbi +2 -0
  71. data/rbi/context_dev/models/monitor_list_params.rbi +23 -31
  72. data/rbi/context_dev/models/monitor_list_response.rbi +6 -4
  73. data/rbi/context_dev/models/monitor_list_runs_params.rbi +7 -6
  74. data/rbi/context_dev/models/monitor_retrieve_change_response.rbi +2 -0
  75. data/rbi/context_dev/models/monitor_retrieve_response.rbi +6 -4
  76. data/rbi/context_dev/models/monitor_update_params.rbi +6 -4
  77. data/rbi/context_dev/models/monitor_update_response.rbi +6 -4
  78. data/rbi/context_dev/models/parse_handle_params.rbi +400 -46
  79. data/rbi/context_dev/models/utility_prefetch_params.rbi +11 -0
  80. data/rbi/context_dev/models/web_extract_competitors_params.rbi +15 -0
  81. data/rbi/context_dev/models/web_extract_fonts_params.rbi +19 -7
  82. data/rbi/context_dev/models/web_extract_params.rbi +26 -0
  83. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +19 -7
  84. data/rbi/context_dev/models/web_screenshot_params.rbi +108 -37
  85. data/rbi/context_dev/models/web_screenshot_response.rbi +4 -2
  86. data/rbi/context_dev/models/web_search_params.rbi +11 -0
  87. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +53 -0
  88. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +554 -49
  89. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +426 -30
  90. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +742 -61
  91. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +82 -0
  92. data/rbi/context_dev/models.rbi +4 -0
  93. data/rbi/context_dev/resources/ai.rbi +3 -0
  94. data/rbi/context_dev/resources/brand.rbi +9 -1
  95. data/rbi/context_dev/resources/industry.rbi +10 -0
  96. data/rbi/context_dev/resources/monitors.rbi +55 -11
  97. data/rbi/context_dev/resources/parse.rbi +46 -19
  98. data/rbi/context_dev/resources/utility.rbi +3 -0
  99. data/rbi/context_dev/resources/web.rbi +224 -48
  100. data/sig/context_dev/models/ai_extract_product_params.rbs +12 -1
  101. data/sig/context_dev/models/ai_extract_products_params.rbs +14 -0
  102. data/sig/context_dev/models/brand_retrieve_params.rbs +97 -51
  103. data/sig/context_dev/models/brand_retrieve_response.rbs +2 -2
  104. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +34 -5
  105. data/sig/context_dev/models/industry_retrieve_naics_params.rbs +7 -0
  106. data/sig/context_dev/models/industry_retrieve_sic_params.rbs +7 -0
  107. data/sig/context_dev/models/monitor_get_credit_usage_params.rbs +32 -0
  108. data/sig/context_dev/models/monitor_get_credit_usage_response.rbs +52 -0
  109. data/sig/context_dev/models/monitor_get_limits_params.rbs +15 -0
  110. data/sig/context_dev/models/monitor_get_limits_response.rbs +43 -0
  111. data/sig/context_dev/models/monitor_list_params.rbs +8 -14
  112. data/sig/context_dev/models/parse_handle_params.rbs +124 -25
  113. data/sig/context_dev/models/utility_prefetch_params.rbs +7 -0
  114. data/sig/context_dev/models/web_extract_competitors_params.rbs +12 -1
  115. data/sig/context_dev/models/web_extract_fonts_params.rbs +10 -5
  116. data/sig/context_dev/models/web_extract_params.rbs +14 -0
  117. data/sig/context_dev/models/web_extract_styleguide_params.rbs +10 -5
  118. data/sig/context_dev/models/web_screenshot_params.rbs +41 -20
  119. data/sig/context_dev/models/web_search_params.rbs +7 -0
  120. data/sig/context_dev/models/web_web_crawl_md_params.rbs +28 -1
  121. data/sig/context_dev/models/web_web_scrape_html_params.rbs +175 -47
  122. data/sig/context_dev/models/web_web_scrape_images_params.rbs +128 -38
  123. data/sig/context_dev/models/web_web_scrape_md_params.rbs +229 -62
  124. data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +35 -1
  125. data/sig/context_dev/models.rbs +4 -0
  126. data/sig/context_dev/resources/ai.rbs +1 -0
  127. data/sig/context_dev/resources/brand.rbs +3 -1
  128. data/sig/context_dev/resources/industry.rbs +2 -0
  129. data/sig/context_dev/resources/monitors.rbs +12 -2
  130. data/sig/context_dev/resources/parse.rbs +8 -5
  131. data/sig/context_dev/resources/utility.rbs +1 -0
  132. data/sig/context_dev/resources/web.rbs +47 -26
  133. metadata +14 -2
@@ -85,6 +85,15 @@ module ContextDev
85
85
  sig { params(pdf: ContextDev::WebExtractParams::Pdf::OrHash).void }
86
86
  attr_writer :pdf
87
87
 
88
+ # When true, waits briefly for CSS and transition animations to settle before
89
+ # extracting each crawled page. Defaults to false. This adds a bit of latency in
90
+ # exchange for more stable output on animated pages.
91
+ sig { returns(T.nilable(T::Boolean)) }
92
+ attr_reader :settle_animations
93
+
94
+ sig { params(settle_animations: T::Boolean).void }
95
+ attr_writer :settle_animations
96
+
88
97
  # Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000
89
98
  # (110s). Default: 80000 (80s).
90
99
  sig { returns(T.nilable(Integer)) }
@@ -93,6 +102,13 @@ module ContextDev
93
102
  sig { params(stop_after_ms: Integer).void }
94
103
  attr_writer :stop_after_ms
95
104
 
105
+ # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
106
+ sig { returns(T.nilable(T::Array[String])) }
107
+ attr_reader :tags
108
+
109
+ sig { params(tags: T::Array[String]).void }
110
+ attr_writer :tags
111
+
96
112
  # Optional timeout in milliseconds for the request. If the request takes longer
97
113
  # than this value, it will be aborted with a 408 status code. Maximum allowed
98
114
  # value is 300000ms (5 minutes).
@@ -122,7 +138,9 @@ module ContextDev
122
138
  max_depth: Integer,
123
139
  max_pages: Integer,
124
140
  pdf: ContextDev::WebExtractParams::Pdf::OrHash,
141
+ settle_animations: T::Boolean,
125
142
  stop_after_ms: Integer,
143
+ tags: T::Array[String],
126
144
  timeout_ms: Integer,
127
145
  wait_for_ms: Integer,
128
146
  request_options: ContextDev::RequestOptions::OrHash
@@ -159,9 +177,15 @@ module ContextDev
159
177
  # Maximum number of pages to analyze for extraction. Hard cap: 50. Defaults to 5.
160
178
  max_pages: nil,
161
179
  pdf: nil,
180
+ # When true, waits briefly for CSS and transition animations to settle before
181
+ # extracting each crawled page. Defaults to false. This adds a bit of latency in
182
+ # exchange for more stable output on animated pages.
183
+ settle_animations: nil,
162
184
  # Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000
163
185
  # (110s). Default: 80000 (80s).
164
186
  stop_after_ms: nil,
187
+ # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
188
+ tags: nil,
165
189
  # Optional timeout in milliseconds for the request. If the request takes longer
166
190
  # than this value, it will be aborted with a 408 status code. Maximum allowed
167
191
  # value is 300000ms (5 minutes).
@@ -186,7 +210,9 @@ module ContextDev
186
210
  max_depth: Integer,
187
211
  max_pages: Integer,
188
212
  pdf: ContextDev::WebExtractParams::Pdf,
213
+ settle_animations: T::Boolean,
189
214
  stop_after_ms: Integer,
215
+ tags: T::Array[String],
190
216
  timeout_ms: Integer,
191
217
  wait_for_ms: Integer,
192
218
  request_options: ContextDev::RequestOptions
@@ -52,15 +52,21 @@ module ContextDev
52
52
  sig { params(domain: String).void }
53
53
  attr_writer :domain
54
54
 
55
- # Maximum age in milliseconds for cached data before the API performs a hard
55
+ # Maximum age in milliseconds for cached brand data before the API performs a hard
56
56
  # refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms)
57
57
  # are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1
58
58
  # year.
59
59
  sig { returns(T.nilable(Integer)) }
60
- attr_reader :max_age_ms
60
+ attr_accessor :max_age_ms
61
61
 
62
- sig { params(max_age_ms: Integer).void }
63
- attr_writer :max_age_ms
62
+ # Optional comma-separated caller-defined tags for tracking this request. Tags are
63
+ # recorded on the request's usage log and can be used to filter usage on the
64
+ # dashboard usage page. Up to 20 tags, each 1-50 characters.
65
+ sig { returns(T.nilable(T::Array[String])) }
66
+ attr_reader :tags
67
+
68
+ sig { params(tags: T::Array[String]).void }
69
+ attr_writer :tags
64
70
 
65
71
  # Optional timeout in milliseconds for the request. If the request takes longer
66
72
  # than this value, it will be aborted with a 408 status code. Maximum allowed
@@ -77,7 +83,8 @@ module ContextDev
77
83
  ContextDev::WebExtractStyleguideParams::ColorScheme::OrSymbol,
78
84
  direct_url: String,
79
85
  domain: String,
80
- max_age_ms: Integer,
86
+ max_age_ms: T.nilable(Integer),
87
+ tags: T::Array[String],
81
88
  timeout_ms: Integer,
82
89
  request_options: ContextDev::RequestOptions::OrHash
83
90
  ).returns(T.attached_class)
@@ -95,11 +102,15 @@ module ContextDev
95
102
  # domain will be automatically normalized and validated. You must provide either
96
103
  # 'domain' or 'directUrl', but not both.
97
104
  domain: nil,
98
- # Maximum age in milliseconds for cached data before the API performs a hard
105
+ # Maximum age in milliseconds for cached brand data before the API performs a hard
99
106
  # refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms)
100
107
  # are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1
101
108
  # year.
102
109
  max_age_ms: nil,
110
+ # Optional comma-separated caller-defined tags for tracking this request. Tags are
111
+ # recorded on the request's usage log and can be used to filter usage on the
112
+ # dashboard usage page. Up to 20 tags, each 1-50 characters.
113
+ tags: nil,
103
114
  # Optional timeout in milliseconds for the request. If the request takes longer
104
115
  # than this value, it will be aborted with a 408 status code. Maximum allowed
105
116
  # value is 300000ms (5 minutes).
@@ -115,7 +126,8 @@ module ContextDev
115
126
  ContextDev::WebExtractStyleguideParams::ColorScheme::OrSymbol,
116
127
  direct_url: String,
117
128
  domain: String,
118
- max_age_ms: Integer,
129
+ max_age_ms: T.nilable(Integer),
130
+ tags: T::Array[String],
119
131
  timeout_ms: Integer,
120
132
  request_options: ContextDev::RequestOptions
121
133
  }
@@ -27,8 +27,9 @@ module ContextDev
27
27
  end
28
28
  attr_writer :color_scheme
29
29
 
30
- # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
31
- # When provided, Context.dev fetches the target page from that country.
30
+ # Two-letter ISO 3166-1 alpha-2 country code identifying a supported Context.dev
31
+ # residential proxy exit location. Must be one of Context.dev's supported
32
+ # countries. When provided, Context.dev fetches the target page from that country.
32
33
  sig do
33
34
  returns(T.nilable(ContextDev::WebScreenshotParams::Country::OrSymbol))
34
35
  end
@@ -81,7 +82,10 @@ module ContextDev
81
82
  sig do
82
83
  returns(
83
84
  T.nilable(
84
- ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol
85
+ T.any(
86
+ T::Boolean,
87
+ ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol
88
+ )
85
89
  )
86
90
  )
87
91
  end
@@ -90,7 +94,10 @@ module ContextDev
90
94
  sig do
91
95
  params(
92
96
  handle_cookie_popup:
93
- ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol
97
+ T.any(
98
+ T::Boolean,
99
+ ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol
100
+ )
94
101
  ).void
95
102
  end
96
103
  attr_writer :handle_cookie_popup
@@ -99,10 +106,7 @@ module ContextDev
99
106
  # and is younger than this many milliseconds. Defaults to 1 day (86400000 ms) when
100
107
  # omitted. Max is 30 days (2592000000 ms). Set to 0 to always capture fresh.
101
108
  sig { returns(T.nilable(Integer)) }
102
- attr_reader :max_age_ms
103
-
104
- sig { params(max_age_ms: Integer).void }
105
- attr_writer :max_age_ms
109
+ attr_accessor :max_age_ms
106
110
 
107
111
  # Optional parameter to specify which page type to screenshot. If provided, the
108
112
  # system will scrape the domain's links and use heuristics to find the most
@@ -124,10 +128,16 @@ module ContextDev
124
128
  # top to bottom). The final slice may be shorter than the viewport height. Takes
125
129
  # precedence over fullScreenshot. Max: 100000.
126
130
  sig { returns(T.nilable(Integer)) }
127
- attr_reader :scroll_offset
131
+ attr_accessor :scroll_offset
132
+
133
+ # Optional comma-separated caller-defined tags for tracking this request. Tags are
134
+ # recorded on the request's usage log and can be used to filter usage on the
135
+ # dashboard usage page. Up to 20 tags, each 1-50 characters.
136
+ sig { returns(T.nilable(T::Array[String])) }
137
+ attr_reader :tags
128
138
 
129
- sig { params(scroll_offset: Integer).void }
130
- attr_writer :scroll_offset
139
+ sig { params(tags: T::Array[String]).void }
140
+ attr_writer :tags
131
141
 
132
142
  # Optional timeout in milliseconds for the request. If the request takes longer
133
143
  # than this value, it will be aborted with a 408 status code. Maximum allowed
@@ -151,10 +161,17 @@ module ContextDev
151
161
  # the screenshot. Min: 0. Max: 30000 (30 seconds). Defaults to 3000 ms when
152
162
  # omitted.
153
163
  sig { returns(T.nilable(Integer)) }
154
- attr_reader :wait_for_ms
164
+ attr_accessor :wait_for_ms
155
165
 
156
- sig { params(wait_for_ms: Integer).void }
157
- attr_writer :wait_for_ms
166
+ # Set to enabled to bypass shared caches and omit request and response content
167
+ # from retained usage logs. Requires zero data retention to be enabled for your
168
+ # organization (contact support@context.dev), otherwise the request fails with
169
+ # ZDR_NOT_ENABLED. Successful ZDR responses include X-Context-ZDR: true.
170
+ sig { returns(T.nilable(ContextDev::WebScreenshotParams::Zdr::OrSymbol)) }
171
+ attr_reader :zdr
172
+
173
+ sig { params(zdr: ContextDev::WebScreenshotParams::Zdr::OrSymbol).void }
174
+ attr_writer :zdr
158
175
 
159
176
  sig do
160
177
  params(
@@ -165,13 +182,18 @@ module ContextDev
165
182
  full_screenshot:
166
183
  ContextDev::WebScreenshotParams::FullScreenshot::OrSymbol,
167
184
  handle_cookie_popup:
168
- ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol,
169
- max_age_ms: Integer,
185
+ T.any(
186
+ T::Boolean,
187
+ ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol
188
+ ),
189
+ max_age_ms: T.nilable(Integer),
170
190
  page: ContextDev::WebScreenshotParams::Page::OrSymbol,
171
- scroll_offset: Integer,
191
+ scroll_offset: T.nilable(Integer),
192
+ tags: T::Array[String],
172
193
  timeout_ms: Integer,
173
194
  viewport: ContextDev::WebScreenshotParams::Viewport::OrHash,
174
- wait_for_ms: Integer,
195
+ wait_for_ms: T.nilable(Integer),
196
+ zdr: ContextDev::WebScreenshotParams::Zdr::OrSymbol,
175
197
  request_options: ContextDev::RequestOptions::OrHash
176
198
  ).returns(T.attached_class)
177
199
  end
@@ -179,8 +201,9 @@ module ContextDev
179
201
  # Optional parameter to choose the site's visual theme in the screenshot. Use
180
202
  # 'light' or 'dark' when the site offers both appearances.
181
203
  color_scheme: nil,
182
- # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
183
- # When provided, Context.dev fetches the target page from that country.
204
+ # Two-letter ISO 3166-1 alpha-2 country code identifying a supported Context.dev
205
+ # residential proxy exit location. Must be one of Context.dev's supported
206
+ # countries. When provided, Context.dev fetches the target page from that country.
184
207
  country: nil,
185
208
  # A specific URL to screenshot directly, bypassing domain resolution (e.g.,
186
209
  # 'https://example.com/pricing'). When provided, the screenshot is taken of this
@@ -215,6 +238,10 @@ module ContextDev
215
238
  # top to bottom). The final slice may be shorter than the viewport height. Takes
216
239
  # precedence over fullScreenshot. Max: 100000.
217
240
  scroll_offset: nil,
241
+ # Optional comma-separated caller-defined tags for tracking this request. Tags are
242
+ # recorded on the request's usage log and can be used to filter usage on the
243
+ # dashboard usage page. Up to 20 tags, each 1-50 characters.
244
+ tags: nil,
218
245
  # Optional timeout in milliseconds for the request. If the request takes longer
219
246
  # than this value, it will be aborted with a 408 status code. Maximum allowed
220
247
  # value is 300000ms (5 minutes).
@@ -225,6 +252,11 @@ module ContextDev
225
252
  # the screenshot. Min: 0. Max: 30000 (30 seconds). Defaults to 3000 ms when
226
253
  # omitted.
227
254
  wait_for_ms: nil,
255
+ # Set to enabled to bypass shared caches and omit request and response content
256
+ # from retained usage logs. Requires zero data retention to be enabled for your
257
+ # organization (contact support@context.dev), otherwise the request fails with
258
+ # ZDR_NOT_ENABLED. Successful ZDR responses include X-Context-ZDR: true.
259
+ zdr: nil,
228
260
  request_options: {}
229
261
  )
230
262
  end
@@ -240,13 +272,18 @@ module ContextDev
240
272
  full_screenshot:
241
273
  ContextDev::WebScreenshotParams::FullScreenshot::OrSymbol,
242
274
  handle_cookie_popup:
243
- ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol,
244
- max_age_ms: Integer,
275
+ T.any(
276
+ T::Boolean,
277
+ ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol
278
+ ),
279
+ max_age_ms: T.nilable(Integer),
245
280
  page: ContextDev::WebScreenshotParams::Page::OrSymbol,
246
- scroll_offset: Integer,
281
+ scroll_offset: T.nilable(Integer),
282
+ tags: T::Array[String],
247
283
  timeout_ms: Integer,
248
284
  viewport: ContextDev::WebScreenshotParams::Viewport,
249
- wait_for_ms: Integer,
285
+ wait_for_ms: T.nilable(Integer),
286
+ zdr: ContextDev::WebScreenshotParams::Zdr::OrSymbol,
250
287
  request_options: ContextDev::RequestOptions
251
288
  }
252
289
  )
@@ -285,8 +322,9 @@ module ContextDev
285
322
  end
286
323
  end
287
324
 
288
- # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
289
- # When provided, Context.dev fetches the target page from that country.
325
+ # Two-letter ISO 3166-1 alpha-2 country code identifying a supported Context.dev
326
+ # residential proxy exit location. Must be one of Context.dev's supported
327
+ # countries. When provided, Context.dev fetches the target page from that country.
290
328
  module Country
291
329
  extend ContextDev::Internal::Type::Enum
292
330
 
@@ -548,7 +586,25 @@ module ContextDev
548
586
  # dismiss cookie banner before capture. If 'false' or not provided, captures the
549
587
  # page without that step.
550
588
  module HandleCookiePopup
551
- extend ContextDev::Internal::Type::Enum
589
+ extend ContextDev::Internal::Type::Union
590
+
591
+ Variants =
592
+ T.type_alias do
593
+ T.any(
594
+ T::Boolean,
595
+ ContextDev::WebScreenshotParams::HandleCookiePopup::TaggedSymbol
596
+ )
597
+ end
598
+
599
+ sig do
600
+ override.returns(
601
+ T::Array[
602
+ ContextDev::WebScreenshotParams::HandleCookiePopup::Variants
603
+ ]
604
+ )
605
+ end
606
+ def self.variants
607
+ end
552
608
 
553
609
  TaggedSymbol =
554
610
  T.type_alias do
@@ -566,16 +622,6 @@ module ContextDev
566
622
  :false,
567
623
  ContextDev::WebScreenshotParams::HandleCookiePopup::TaggedSymbol
568
624
  )
569
-
570
- sig do
571
- override.returns(
572
- T::Array[
573
- ContextDev::WebScreenshotParams::HandleCookiePopup::TaggedSymbol
574
- ]
575
- )
576
- end
577
- def self.values
578
- end
579
625
  end
580
626
 
581
627
  # Optional parameter to specify which page type to screenshot. If provided, the
@@ -654,6 +700,31 @@ module ContextDev
654
700
  def to_hash
655
701
  end
656
702
  end
703
+
704
+ # Set to enabled to bypass shared caches and omit request and response content
705
+ # from retained usage logs. Requires zero data retention to be enabled for your
706
+ # organization (contact support@context.dev), otherwise the request fails with
707
+ # ZDR_NOT_ENABLED. Successful ZDR responses include X-Context-ZDR: true.
708
+ module Zdr
709
+ extend ContextDev::Internal::Type::Enum
710
+
711
+ TaggedSymbol =
712
+ T.type_alias { T.all(Symbol, ContextDev::WebScreenshotParams::Zdr) }
713
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
714
+
715
+ ENABLED =
716
+ T.let(:enabled, ContextDev::WebScreenshotParams::Zdr::TaggedSymbol)
717
+ DISABLED =
718
+ T.let(:disabled, ContextDev::WebScreenshotParams::Zdr::TaggedSymbol)
719
+
720
+ sig do
721
+ override.returns(
722
+ T::Array[ContextDev::WebScreenshotParams::Zdr::TaggedSymbol]
723
+ )
724
+ end
725
+ def self.values
726
+ end
727
+ end
657
728
  end
658
729
  end
659
730
  end
@@ -49,7 +49,8 @@ module ContextDev
49
49
  end
50
50
  attr_writer :key_metadata
51
51
 
52
- # Public URL of the uploaded screenshot image
52
+ # Public image URL for standard requests, or an in-memory data URL when ZDR is
53
+ # enabled.
53
54
  sig { returns(T.nilable(String)) }
54
55
  attr_reader :screenshot
55
56
 
@@ -112,7 +113,8 @@ module ContextDev
112
113
  # Metadata about the API key used for the request. Included in every response
113
114
  # whenever a valid API key is provided, even when the response status is not 200.
114
115
  key_metadata: nil,
115
- # Public URL of the uploaded screenshot image
116
+ # Public image URL for standard requests, or an in-memory data URL when ZDR is
117
+ # enabled.
116
118
  screenshot: nil,
117
119
  # Type of screenshot that was captured
118
120
  screenshot_type: nil,
@@ -78,6 +78,13 @@ module ContextDev
78
78
  sig { params(query_fanout: T::Boolean).void }
79
79
  attr_writer :query_fanout
80
80
 
81
+ # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
82
+ sig { returns(T.nilable(T::Array[String])) }
83
+ attr_reader :tags
84
+
85
+ sig { params(tags: T::Array[String]).void }
86
+ attr_writer :tags
87
+
81
88
  # Optional timeout in milliseconds for the request. If the request takes longer
82
89
  # than this value, it will be aborted with a 408 status code. Maximum allowed
83
90
  # value is 300000ms (5 minutes).
@@ -98,6 +105,7 @@ module ContextDev
98
105
  ContextDev::WebSearchParams::MarkdownOptions::OrHash,
99
106
  num_results: Integer,
100
107
  query_fanout: T::Boolean,
108
+ tags: T::Array[String],
101
109
  timeout_ms: Integer,
102
110
  request_options: ContextDev::RequestOptions::OrHash
103
111
  ).returns(T.attached_class)
@@ -123,6 +131,8 @@ module ContextDev
123
131
  num_results: nil,
124
132
  # Expand the query into multiple parallel variants for broader recall.
125
133
  query_fanout: nil,
134
+ # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
135
+ tags: nil,
126
136
  # Optional timeout in milliseconds for the request. If the request takes longer
127
137
  # than this value, it will be aborted with a 408 status code. Maximum allowed
128
138
  # value is 300000ms (5 minutes).
@@ -142,6 +152,7 @@ module ContextDev
142
152
  markdown_options: ContextDev::WebSearchParams::MarkdownOptions,
143
153
  num_results: Integer,
144
154
  query_fanout: T::Boolean,
155
+ tags: T::Array[String],
145
156
  timeout_ms: Integer,
146
157
  request_options: ContextDev::RequestOptions
147
158
  }
@@ -135,6 +135,13 @@ module ContextDev
135
135
  sig { params(stop_after_ms: Integer).void }
136
136
  attr_writer :stop_after_ms
137
137
 
138
+ # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
139
+ sig { returns(T.nilable(T::Array[String])) }
140
+ attr_reader :tags
141
+
142
+ sig { params(tags: T::Array[String]).void }
143
+ attr_writer :tags
144
+
138
145
  # Optional timeout in milliseconds for the request. If the request takes longer
139
146
  # than this value, it will be aborted with a 408 status code. Maximum allowed
140
147
  # value is 300000ms (5 minutes).
@@ -167,6 +174,16 @@ module ContextDev
167
174
  sig { params(wait_for_ms: Integer).void }
168
175
  attr_writer :wait_for_ms
169
176
 
177
+ # Set to enabled to bypass shared caches and omit request and response content
178
+ # from retained usage logs. Requires zero data retention to be enabled for your
179
+ # organization (contact support@context.dev), otherwise the request fails with
180
+ # ZDR_NOT_ENABLED. Successful ZDR responses include X-Context-ZDR: true.
181
+ sig { returns(T.nilable(ContextDev::WebWebCrawlMdParams::Zdr::OrSymbol)) }
182
+ attr_reader :zdr
183
+
184
+ sig { params(zdr: ContextDev::WebWebCrawlMdParams::Zdr::OrSymbol).void }
185
+ attr_writer :zdr
186
+
170
187
  sig do
171
188
  params(
172
189
  url: String,
@@ -184,10 +201,12 @@ module ContextDev
184
201
  settle_animations: T::Boolean,
185
202
  shorten_base64_images: T::Boolean,
186
203
  stop_after_ms: Integer,
204
+ tags: T::Array[String],
187
205
  timeout_ms: Integer,
188
206
  url_regex: String,
189
207
  use_main_content_only: T::Boolean,
190
208
  wait_for_ms: Integer,
209
+ zdr: ContextDev::WebWebCrawlMdParams::Zdr::OrSymbol,
191
210
  request_options: ContextDev::RequestOptions::OrHash
192
211
  ).returns(T.attached_class)
193
212
  end
@@ -240,6 +259,8 @@ module ContextDev
240
259
  # instead of continuing. Min: 10000 (10s). Max: 110000 (110s). Default: 80000
241
260
  # (80s).
242
261
  stop_after_ms: nil,
262
+ # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
263
+ tags: nil,
243
264
  # Optional timeout in milliseconds for the request. If the request takes longer
244
265
  # than this value, it will be aborted with a 408 status code. Maximum allowed
245
266
  # value is 300000ms (5 minutes).
@@ -252,6 +273,11 @@ module ContextDev
252
273
  # Optional browser wait time in milliseconds after initial page load for each
253
274
  # crawled page. Min: 0. Max: 30000 (30 seconds).
254
275
  wait_for_ms: nil,
276
+ # Set to enabled to bypass shared caches and omit request and response content
277
+ # from retained usage logs. Requires zero data retention to be enabled for your
278
+ # organization (contact support@context.dev), otherwise the request fails with
279
+ # ZDR_NOT_ENABLED. Successful ZDR responses include X-Context-ZDR: true.
280
+ zdr: nil,
255
281
  request_options: {}
256
282
  )
257
283
  end
@@ -274,10 +300,12 @@ module ContextDev
274
300
  settle_animations: T::Boolean,
275
301
  shorten_base64_images: T::Boolean,
276
302
  stop_after_ms: Integer,
303
+ tags: T::Array[String],
277
304
  timeout_ms: Integer,
278
305
  url_regex: String,
279
306
  use_main_content_only: T::Boolean,
280
307
  wait_for_ms: Integer,
308
+ zdr: ContextDev::WebWebCrawlMdParams::Zdr::OrSymbol,
281
309
  request_options: ContextDev::RequestOptions
282
310
  }
283
311
  )
@@ -591,6 +619,31 @@ module ContextDev
591
619
  def to_hash
592
620
  end
593
621
  end
622
+
623
+ # Set to enabled to bypass shared caches and omit request and response content
624
+ # from retained usage logs. Requires zero data retention to be enabled for your
625
+ # organization (contact support@context.dev), otherwise the request fails with
626
+ # ZDR_NOT_ENABLED. Successful ZDR responses include X-Context-ZDR: true.
627
+ module Zdr
628
+ extend ContextDev::Internal::Type::Enum
629
+
630
+ TaggedSymbol =
631
+ T.type_alias { T.all(Symbol, ContextDev::WebWebCrawlMdParams::Zdr) }
632
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
633
+
634
+ ENABLED =
635
+ T.let(:enabled, ContextDev::WebWebCrawlMdParams::Zdr::TaggedSymbol)
636
+ DISABLED =
637
+ T.let(:disabled, ContextDev::WebWebCrawlMdParams::Zdr::TaggedSymbol)
638
+
639
+ sig do
640
+ override.returns(
641
+ T::Array[ContextDev::WebWebCrawlMdParams::Zdr::TaggedSymbol]
642
+ )
643
+ end
644
+ def self.values
645
+ end
646
+ end
594
647
  end
595
648
  end
596
649
  end