berrycrawl 0.1.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 (136) hide show
  1. checksums.yaml +7 -0
  2. data/.fern/metadata.json +12 -0
  3. data/.rubocop.yml +103 -0
  4. data/CONTRIBUTING.md +120 -0
  5. data/LICENSE +17 -0
  6. data/README.md +183 -0
  7. data/Rakefile +20 -0
  8. data/custom.gemspec.rb +16 -0
  9. data/lib/Berrycrawl/account/client.rb +44 -0
  10. data/lib/Berrycrawl/brand/client.rb +48 -0
  11. data/lib/Berrycrawl/brand/types/brand_dto.rb +15 -0
  12. data/lib/Berrycrawl/client.rb +268 -0
  13. data/lib/Berrycrawl/environment.rb +7 -0
  14. data/lib/Berrycrawl/errors/api_error.rb +8 -0
  15. data/lib/Berrycrawl/errors/client_error.rb +17 -0
  16. data/lib/Berrycrawl/errors/redirect_error.rb +8 -0
  17. data/lib/Berrycrawl/errors/response_error.rb +42 -0
  18. data/lib/Berrycrawl/errors/server_error.rb +11 -0
  19. data/lib/Berrycrawl/errors/timeout_error.rb +8 -0
  20. data/lib/Berrycrawl/internal/errors/constraint_error.rb +10 -0
  21. data/lib/Berrycrawl/internal/errors/type_error.rb +10 -0
  22. data/lib/Berrycrawl/internal/http/base_request.rb +51 -0
  23. data/lib/Berrycrawl/internal/http/raw_client.rb +252 -0
  24. data/lib/Berrycrawl/internal/iterators/cursor_item_iterator.rb +28 -0
  25. data/lib/Berrycrawl/internal/iterators/cursor_page_iterator.rb +63 -0
  26. data/lib/Berrycrawl/internal/iterators/item_iterator.rb +65 -0
  27. data/lib/Berrycrawl/internal/iterators/offset_item_iterator.rb +30 -0
  28. data/lib/Berrycrawl/internal/iterators/offset_page_iterator.rb +103 -0
  29. data/lib/Berrycrawl/internal/json/request.rb +41 -0
  30. data/lib/Berrycrawl/internal/json/serializable.rb +25 -0
  31. data/lib/Berrycrawl/internal/multipart/multipart_encoder.rb +141 -0
  32. data/lib/Berrycrawl/internal/multipart/multipart_form_data.rb +78 -0
  33. data/lib/Berrycrawl/internal/multipart/multipart_form_data_part.rb +51 -0
  34. data/lib/Berrycrawl/internal/multipart/multipart_request.rb +40 -0
  35. data/lib/Berrycrawl/internal/types/array.rb +47 -0
  36. data/lib/Berrycrawl/internal/types/boolean.rb +34 -0
  37. data/lib/Berrycrawl/internal/types/enum.rb +56 -0
  38. data/lib/Berrycrawl/internal/types/hash.rb +36 -0
  39. data/lib/Berrycrawl/internal/types/model/field.rb +38 -0
  40. data/lib/Berrycrawl/internal/types/model.rb +208 -0
  41. data/lib/Berrycrawl/internal/types/type.rb +35 -0
  42. data/lib/Berrycrawl/internal/types/union.rb +161 -0
  43. data/lib/Berrycrawl/internal/types/unknown.rb +15 -0
  44. data/lib/Berrycrawl/internal/types/utils.rb +116 -0
  45. data/lib/Berrycrawl/jobs/client.rb +127 -0
  46. data/lib/Berrycrawl/jobs/types/cancel_jobs_request.rb +11 -0
  47. data/lib/Berrycrawl/jobs/types/get_jobs_request.rb +15 -0
  48. data/lib/Berrycrawl/jobs/types/list_jobs_request.rb +17 -0
  49. data/lib/Berrycrawl/jobs/types/list_jobs_request_status.rb +17 -0
  50. data/lib/Berrycrawl/jobs/types/list_jobs_request_type.rb +14 -0
  51. data/lib/Berrycrawl/types/account_response.rb +11 -0
  52. data/lib/Berrycrawl/types/account_response_data.rb +21 -0
  53. data/lib/Berrycrawl/types/account_response_data_plan.rb +17 -0
  54. data/lib/Berrycrawl/types/account_response_data_queue.rb +11 -0
  55. data/lib/Berrycrawl/types/action_dto.rb +21 -0
  56. data/lib/Berrycrawl/types/action_dto_direction.rb +12 -0
  57. data/lib/Berrycrawl/types/action_dto_type.rb +18 -0
  58. data/lib/Berrycrawl/types/agent_config_dto.rb +11 -0
  59. data/lib/Berrycrawl/types/agent_config_dto_mode.rb +12 -0
  60. data/lib/Berrycrawl/types/brand_asset.rb +17 -0
  61. data/lib/Berrycrawl/types/brand_profile.rb +27 -0
  62. data/lib/Berrycrawl/types/brand_profile_colors_item.rb +11 -0
  63. data/lib/Berrycrawl/types/brand_profile_fonts_item.rb +11 -0
  64. data/lib/Berrycrawl/types/brand_profile_socials_item.rb +11 -0
  65. data/lib/Berrycrawl/types/brand_response.rb +11 -0
  66. data/lib/Berrycrawl/types/brand_response_data.rb +11 -0
  67. data/lib/Berrycrawl/types/brand_response_data_meta.rb +15 -0
  68. data/lib/Berrycrawl/types/cancel_job_response.rb +11 -0
  69. data/lib/Berrycrawl/types/cancel_job_response_data.rb +11 -0
  70. data/lib/Berrycrawl/types/change_tracking_format_dto.rb +15 -0
  71. data/lib/Berrycrawl/types/change_tracking_format_dto_type.rb +11 -0
  72. data/lib/Berrycrawl/types/crawl_dto.rb +41 -0
  73. data/lib/Berrycrawl/types/crawl_dto_sitemap.rb +13 -0
  74. data/lib/Berrycrawl/types/extract_dto.rb +29 -0
  75. data/lib/Berrycrawl/types/extract_webhook_config_dto.rb +15 -0
  76. data/lib/Berrycrawl/types/job_created_response.rb +15 -0
  77. data/lib/Berrycrawl/types/job_response.rb +11 -0
  78. data/lib/Berrycrawl/types/job_response_data.rb +37 -0
  79. data/lib/Berrycrawl/types/job_response_data_errors_item.rb +11 -0
  80. data/lib/Berrycrawl/types/job_summary.rb +29 -0
  81. data/lib/Berrycrawl/types/job_summary_type.rb +12 -0
  82. data/lib/Berrycrawl/types/json_format_dto.rb +13 -0
  83. data/lib/Berrycrawl/types/json_format_dto_type.rb +11 -0
  84. data/lib/Berrycrawl/types/list_jobs_response.rb +11 -0
  85. data/lib/Berrycrawl/types/list_jobs_response_data.rb +11 -0
  86. data/lib/Berrycrawl/types/list_webhooks_response.rb +11 -0
  87. data/lib/Berrycrawl/types/location_dto.rb +11 -0
  88. data/lib/Berrycrawl/types/map_dto.rb +23 -0
  89. data/lib/Berrycrawl/types/map_dto_sitemap.rb +13 -0
  90. data/lib/Berrycrawl/types/map_link.rb +13 -0
  91. data/lib/Berrycrawl/types/map_response.rb +15 -0
  92. data/lib/Berrycrawl/types/message_response.rb +11 -0
  93. data/lib/Berrycrawl/types/pagination.rb +15 -0
  94. data/lib/Berrycrawl/types/parse_dto.rb +11 -0
  95. data/lib/Berrycrawl/types/scrape_dto.rb +49 -0
  96. data/lib/Berrycrawl/types/scrape_dto_formats_item.rb +17 -0
  97. data/lib/Berrycrawl/types/scrape_dto_formats_item_zero.rb +18 -0
  98. data/lib/Berrycrawl/types/scrape_dto_proxy.rb +16 -0
  99. data/lib/Berrycrawl/types/scrape_metadata.rb +17 -0
  100. data/lib/Berrycrawl/types/scrape_response.rb +17 -0
  101. data/lib/Berrycrawl/types/scrape_response_credits.rb +9 -0
  102. data/lib/Berrycrawl/types/screenshot_clip_dto.rb +15 -0
  103. data/lib/Berrycrawl/types/screenshot_cookie_dto.rb +21 -0
  104. data/lib/Berrycrawl/types/screenshot_cookie_dto_same_site.rb +13 -0
  105. data/lib/Berrycrawl/types/screenshot_dto.rb +79 -0
  106. data/lib/Berrycrawl/types/screenshot_dto_color_scheme.rb +12 -0
  107. data/lib/Berrycrawl/types/screenshot_dto_device.rb +15 -0
  108. data/lib/Berrycrawl/types/screenshot_dto_format.rb +13 -0
  109. data/lib/Berrycrawl/types/screenshot_dto_full_page_algorithm.rb +13 -0
  110. data/lib/Berrycrawl/types/screenshot_dto_proxy.rb +16 -0
  111. data/lib/Berrycrawl/types/screenshot_dto_response_format.rb +12 -0
  112. data/lib/Berrycrawl/types/screenshot_dto_scale.rb +12 -0
  113. data/lib/Berrycrawl/types/screenshot_dto_wait_until.rb +13 -0
  114. data/lib/Berrycrawl/types/screenshot_location_dto.rb +11 -0
  115. data/lib/Berrycrawl/types/screenshot_viewport_dto.rb +11 -0
  116. data/lib/Berrycrawl/types/search_dto.rb +23 -0
  117. data/lib/Berrycrawl/types/search_response.rb +19 -0
  118. data/lib/Berrycrawl/types/search_response_provider.rb +11 -0
  119. data/lib/Berrycrawl/types/search_result.rb +19 -0
  120. data/lib/Berrycrawl/types/search_result_provider.rb +11 -0
  121. data/lib/Berrycrawl/types/summary_format_dto.rb +11 -0
  122. data/lib/Berrycrawl/types/summary_format_dto_type.rb +11 -0
  123. data/lib/Berrycrawl/types/test_webhook_response.rb +15 -0
  124. data/lib/Berrycrawl/types/webhook.rb +23 -0
  125. data/lib/Berrycrawl/types/webhook_config_dto.rb +15 -0
  126. data/lib/Berrycrawl/types/webhook_response.rb +11 -0
  127. data/lib/Berrycrawl/version.rb +5 -0
  128. data/lib/Berrycrawl/webhooks/client.rb +214 -0
  129. data/lib/Berrycrawl/webhooks/types/create_webhook_dto.rb +13 -0
  130. data/lib/Berrycrawl/webhooks/types/delete_webhooks_request.rb +11 -0
  131. data/lib/Berrycrawl/webhooks/types/get_webhooks_request.rb +11 -0
  132. data/lib/Berrycrawl/webhooks/types/test_webhook_dto.rb +15 -0
  133. data/lib/Berrycrawl/webhooks/types/update_webhook_dto.rb +17 -0
  134. data/lib/Berrycrawl.rb +130 -0
  135. data/reference.md +1759 -0
  136. metadata +179 -0
data/reference.md ADDED
@@ -0,0 +1,1759 @@
1
+ # Reference
2
+ <details><summary><code>client.<a href="/lib/Berrycrawl/client.rb">crawl</a>(request) -> Berrycrawl::Types::JobCreatedResponse</code></summary>
3
+ <dl>
4
+ <dd>
5
+
6
+ #### 🔌 Usage
7
+
8
+ <dl>
9
+ <dd>
10
+
11
+ <dl>
12
+ <dd>
13
+
14
+ ```ruby
15
+ client.crawl(url: "https://example.com")
16
+ ```
17
+ </dd>
18
+ </dl>
19
+ </dd>
20
+ </dl>
21
+
22
+ #### ⚙️ Parameters
23
+
24
+ <dl>
25
+ <dd>
26
+
27
+ <dl>
28
+ <dd>
29
+
30
+ **allow_external_links:** `Internal::Types::Boolean` — Whether to allow crawling external domains
31
+
32
+ </dd>
33
+ </dl>
34
+
35
+ <dl>
36
+ <dd>
37
+
38
+ **allow_subdomains:** `Internal::Types::Boolean` — Whether to allow crawling subdomains
39
+
40
+ </dd>
41
+ </dl>
42
+
43
+ <dl>
44
+ <dd>
45
+
46
+ **crawl_entire_domain:** `Internal::Types::Boolean` — Whether to crawl entire domain or just subtree
47
+
48
+ </dd>
49
+ </dl>
50
+
51
+ <dl>
52
+ <dd>
53
+
54
+ **deduplicate_similar_ur_ls:** `Internal::Types::Boolean` — Deduplicate similar URLs using intelligent matching
55
+
56
+ </dd>
57
+ </dl>
58
+
59
+ <dl>
60
+ <dd>
61
+
62
+ **delay:** `Integer` — Delay between page scrapes in milliseconds
63
+
64
+ </dd>
65
+ </dl>
66
+
67
+ <dl>
68
+ <dd>
69
+
70
+ **exclude_paths:** `Internal::Types::Array[String]` — Regex patterns to exclude paths
71
+
72
+ </dd>
73
+ </dl>
74
+
75
+ <dl>
76
+ <dd>
77
+
78
+ **ignore_query_parameters:** `Internal::Types::Boolean` — Ignore query parameters when deduplicating URLs
79
+
80
+ </dd>
81
+ </dl>
82
+
83
+ <dl>
84
+ <dd>
85
+
86
+ **include_paths:** `Internal::Types::Array[String]` — Regex patterns to include paths
87
+
88
+ </dd>
89
+ </dl>
90
+
91
+ <dl>
92
+ <dd>
93
+
94
+ **limit:** `Integer` — Maximum number of pages to crawl
95
+
96
+ </dd>
97
+ </dl>
98
+
99
+ <dl>
100
+ <dd>
101
+
102
+ **max_concurrency:** `Integer` — Maximum number of concurrent scrapes for this crawl
103
+
104
+ </dd>
105
+ </dl>
106
+
107
+ <dl>
108
+ <dd>
109
+
110
+ **max_discovery_depth:** `Integer` — Maximum depth for URL discovery
111
+
112
+ </dd>
113
+ </dl>
114
+
115
+ <dl>
116
+ <dd>
117
+
118
+ **prompt:** `String` — Natural language instructions for crawl configuration
119
+
120
+ </dd>
121
+ </dl>
122
+
123
+ <dl>
124
+ <dd>
125
+
126
+ **scrape_options:** `Internal::Types::Hash[String, Object]` — Scrape options to apply to each page. actions accepts at most 25 bounded browser actions. zeroDataRetention: true is currently rejected with 400 ZERO_DATA_RETENTION_NOT_SUPPORTED.
127
+
128
+ </dd>
129
+ </dl>
130
+
131
+ <dl>
132
+ <dd>
133
+
134
+ **sitemap:** `Berrycrawl::Types::CrawlDtoSitemap` — Sitemap handling strategy
135
+
136
+ </dd>
137
+ </dl>
138
+
139
+ <dl>
140
+ <dd>
141
+
142
+ **url:** `String` — Starting URL to crawl
143
+
144
+ </dd>
145
+ </dl>
146
+
147
+ <dl>
148
+ <dd>
149
+
150
+ **webhook:** `Berrycrawl::Types::WebhookConfigDto` — Webhook configuration
151
+
152
+ </dd>
153
+ </dl>
154
+
155
+ <dl>
156
+ <dd>
157
+
158
+ **zero_data_retention:** `Internal::Types::Boolean` — Reserved for a future zero-data-retention mode. true is currently rejected with 400 ZERO_DATA_RETENTION_NOT_SUPPORTED; omit or use false.
159
+
160
+ </dd>
161
+ </dl>
162
+
163
+ <dl>
164
+ <dd>
165
+
166
+ **request_options:** `Berrycrawl::RequestOptions`
167
+
168
+ </dd>
169
+ </dl>
170
+ </dd>
171
+ </dl>
172
+
173
+
174
+ </dd>
175
+ </dl>
176
+ </details>
177
+
178
+ <details><summary><code>client.<a href="/lib/Berrycrawl/client.rb">extract</a>(request) -> Berrycrawl::Types::JobCreatedResponse</code></summary>
179
+ <dl>
180
+ <dd>
181
+
182
+ #### 🔌 Usage
183
+
184
+ <dl>
185
+ <dd>
186
+
187
+ <dl>
188
+ <dd>
189
+
190
+ ```ruby
191
+ client.extract(prompt: "Extract all product names, prices, and descriptions from these pages")
192
+ ```
193
+ </dd>
194
+ </dl>
195
+ </dd>
196
+ </dl>
197
+
198
+ #### ⚙️ Parameters
199
+
200
+ <dl>
201
+ <dd>
202
+
203
+ <dl>
204
+ <dd>
205
+
206
+ **agent:** `Berrycrawl::Types::AgentConfigDto` — Agent configuration
207
+
208
+ </dd>
209
+ </dl>
210
+
211
+ <dl>
212
+ <dd>
213
+
214
+ **enable_web_search:** `Internal::Types::Boolean` — Enable web search for URL discovery
215
+
216
+ </dd>
217
+ </dl>
218
+
219
+ <dl>
220
+ <dd>
221
+
222
+ **ignore_invalid_ur_ls:** `Internal::Types::Boolean` — Ignore invalid URLs and process remaining valid ones
223
+
224
+ </dd>
225
+ </dl>
226
+
227
+ <dl>
228
+ <dd>
229
+
230
+ **ignore_sitemap:** `Internal::Types::Boolean` — Ignore sitemap during URL discovery
231
+
232
+ </dd>
233
+ </dl>
234
+
235
+ <dl>
236
+ <dd>
237
+
238
+ **include_subdomains:** `Internal::Types::Boolean` — Include subdomains in extraction
239
+
240
+ </dd>
241
+ </dl>
242
+
243
+ <dl>
244
+ <dd>
245
+
246
+ **prompt:** `String` — Natural language prompt describing what to extract. Maximum 16384 UTF-8 bytes.
247
+
248
+ </dd>
249
+ </dl>
250
+
251
+ <dl>
252
+ <dd>
253
+
254
+ **schema:** `Internal::Types::Hash[String, Object]` — JSON Schema for structured output. Serialized schema is limited to 65536 UTF-8 bytes.
255
+
256
+ </dd>
257
+ </dl>
258
+
259
+ <dl>
260
+ <dd>
261
+
262
+ **scrape_options:** `Internal::Types::Hash[String, Object]` — Scrape options for each URL. zeroDataRetention: true is currently rejected with 400 ZERO_DATA_RETENTION_NOT_SUPPORTED.
263
+
264
+ </dd>
265
+ </dl>
266
+
267
+ <dl>
268
+ <dd>
269
+
270
+ **show_sources:** `Internal::Types::Boolean` — Include source citations in response
271
+
272
+ </dd>
273
+ </dl>
274
+
275
+ <dl>
276
+ <dd>
277
+
278
+ **urls:** `Internal::Types::Array[String]` — 1–20 unique public HTTP(S) URLs. May be omitted only when enableWebSearch is true. Each URL is limited to 2048 UTF-8 bytes.
279
+
280
+ </dd>
281
+ </dl>
282
+
283
+ <dl>
284
+ <dd>
285
+
286
+ **webhook:** `Berrycrawl::Types::ExtractWebhookConfigDto` — Webhook configuration
287
+
288
+ </dd>
289
+ </dl>
290
+
291
+ <dl>
292
+ <dd>
293
+
294
+ **request_options:** `Berrycrawl::RequestOptions`
295
+
296
+ </dd>
297
+ </dl>
298
+ </dd>
299
+ </dl>
300
+
301
+
302
+ </dd>
303
+ </dl>
304
+ </details>
305
+
306
+ <details><summary><code>client.<a href="/lib/Berrycrawl/client.rb">map</a>(request) -> Berrycrawl::Types::MapResponse</code></summary>
307
+ <dl>
308
+ <dd>
309
+
310
+ #### 🔌 Usage
311
+
312
+ <dl>
313
+ <dd>
314
+
315
+ <dl>
316
+ <dd>
317
+
318
+ ```ruby
319
+ client.map(url: "https://example.com")
320
+ ```
321
+ </dd>
322
+ </dl>
323
+ </dd>
324
+ </dl>
325
+
326
+ #### ⚙️ Parameters
327
+
328
+ <dl>
329
+ <dd>
330
+
331
+ <dl>
332
+ <dd>
333
+
334
+ **ignore_query_parameters:** `Internal::Types::Boolean` — Ignore query parameters when discovering URLs
335
+
336
+ </dd>
337
+ </dl>
338
+
339
+ <dl>
340
+ <dd>
341
+
342
+ **include_subdomains:** `Internal::Types::Boolean` — Include subdomains in the map
343
+
344
+ </dd>
345
+ </dl>
346
+
347
+ <dl>
348
+ <dd>
349
+
350
+ **limit:** `Integer` — Maximum number of URLs to return
351
+
352
+ </dd>
353
+ </dl>
354
+
355
+ <dl>
356
+ <dd>
357
+
358
+ **location:** `Berrycrawl::Types::LocationDto` — Location configuration
359
+
360
+ </dd>
361
+ </dl>
362
+
363
+ <dl>
364
+ <dd>
365
+
366
+ **search:** `String` — Search filter for URLs
367
+
368
+ </dd>
369
+ </dl>
370
+
371
+ <dl>
372
+ <dd>
373
+
374
+ **sitemap:** `Berrycrawl::Types::MapDtoSitemap` — How to handle sitemaps
375
+
376
+ </dd>
377
+ </dl>
378
+
379
+ <dl>
380
+ <dd>
381
+
382
+ **timeout:** `Integer` — Timeout for map operation in milliseconds
383
+
384
+ </dd>
385
+ </dl>
386
+
387
+ <dl>
388
+ <dd>
389
+
390
+ **url:** `String` — URL to map
391
+
392
+ </dd>
393
+ </dl>
394
+
395
+ <dl>
396
+ <dd>
397
+
398
+ **request_options:** `Berrycrawl::RequestOptions`
399
+
400
+ </dd>
401
+ </dl>
402
+ </dd>
403
+ </dl>
404
+
405
+
406
+ </dd>
407
+ </dl>
408
+ </details>
409
+
410
+ <details><summary><code>client.<a href="/lib/Berrycrawl/client.rb">parse</a>(request) -> Berrycrawl::Types::ScrapeResponse</code></summary>
411
+ <dl>
412
+ <dd>
413
+
414
+ #### 🔌 Usage
415
+
416
+ <dl>
417
+ <dd>
418
+
419
+ <dl>
420
+ <dd>
421
+
422
+ ```ruby
423
+ client.parse(url: "https://example.com/report.pdf")
424
+ ```
425
+ </dd>
426
+ </dl>
427
+ </dd>
428
+ </dl>
429
+
430
+ #### ⚙️ Parameters
431
+
432
+ <dl>
433
+ <dd>
434
+
435
+ <dl>
436
+ <dd>
437
+
438
+ **timeout:** `Integer`
439
+
440
+ </dd>
441
+ </dl>
442
+
443
+ <dl>
444
+ <dd>
445
+
446
+ **url:** `String` — Public PDF, Word document, or spreadsheet URL
447
+
448
+ </dd>
449
+ </dl>
450
+
451
+ <dl>
452
+ <dd>
453
+
454
+ **request_options:** `Berrycrawl::RequestOptions`
455
+
456
+ </dd>
457
+ </dl>
458
+ </dd>
459
+ </dl>
460
+
461
+
462
+ </dd>
463
+ </dl>
464
+ </details>
465
+
466
+ <details><summary><code>client.<a href="/lib/Berrycrawl/client.rb">scrape</a>(request) -> Berrycrawl::Types::ScrapeResponse</code></summary>
467
+ <dl>
468
+ <dd>
469
+
470
+ #### 🔌 Usage
471
+
472
+ <dl>
473
+ <dd>
474
+
475
+ <dl>
476
+ <dd>
477
+
478
+ ```ruby
479
+ client.scrape
480
+ ```
481
+ </dd>
482
+ </dl>
483
+ </dd>
484
+ </dl>
485
+
486
+ #### ⚙️ Parameters
487
+
488
+ <dl>
489
+ <dd>
490
+
491
+ <dl>
492
+ <dd>
493
+
494
+ **actions:** `Internal::Types::Array[Berrycrawl::Types::ActionDto]` — Browser actions to execute
495
+
496
+ </dd>
497
+ </dl>
498
+
499
+ <dl>
500
+ <dd>
501
+
502
+ **block_ads:** `Internal::Types::Boolean` — Enable ad-blocking and cookie popup blocking
503
+
504
+ </dd>
505
+ </dl>
506
+
507
+ <dl>
508
+ <dd>
509
+
510
+ **domain:** `String` — Domain to scrape. Normalized to https://domain when url is omitted.
511
+
512
+ </dd>
513
+ </dl>
514
+
515
+ <dl>
516
+ <dd>
517
+
518
+ **exclude_tags:** `Internal::Types::Array[String]` — CSS selectors to exclude
519
+
520
+ </dd>
521
+ </dl>
522
+
523
+ <dl>
524
+ <dd>
525
+
526
+ **extraction_schema:** `Internal::Types::Hash[String, Object]` — Schema for structured data extraction (used with json format)
527
+
528
+ </dd>
529
+ </dl>
530
+
531
+ <dl>
532
+ <dd>
533
+
534
+ **formats:** `Internal::Types::Array[Berrycrawl::Types::ScrapeDtoFormatsItem]` — Output formats - can be simple strings or format objects with options
535
+
536
+ </dd>
537
+ </dl>
538
+
539
+ <dl>
540
+ <dd>
541
+
542
+ **headers:** `Internal::Types::Hash[String, Object]` — Custom headers
543
+
544
+ </dd>
545
+ </dl>
546
+
547
+ <dl>
548
+ <dd>
549
+
550
+ **include_tags:** `Internal::Types::Array[String]` — CSS selectors to include
551
+
552
+ </dd>
553
+ </dl>
554
+
555
+ <dl>
556
+ <dd>
557
+
558
+ **location:** `Berrycrawl::Types::LocationDto` — Location settings
559
+
560
+ </dd>
561
+ </dl>
562
+
563
+ <dl>
564
+ <dd>
565
+
566
+ **max_age:** `Integer` — Cache max age in milliseconds
567
+
568
+ </dd>
569
+ </dl>
570
+
571
+ <dl>
572
+ <dd>
573
+
574
+ **mobile:** `Internal::Types::Boolean` — Emulate mobile device for scraping
575
+
576
+ </dd>
577
+ </dl>
578
+
579
+ <dl>
580
+ <dd>
581
+
582
+ **only_main_content:** `Internal::Types::Boolean` — Extract only main content
583
+
584
+ </dd>
585
+ </dl>
586
+
587
+ <dl>
588
+ <dd>
589
+
590
+ **proxy:** `Berrycrawl::Types::ScrapeDtoProxy` — Proxy mode. auto starts direct and escalates only when blocked. basic is an alias for none.
591
+
592
+ </dd>
593
+ </dl>
594
+
595
+ <dl>
596
+ <dd>
597
+
598
+ **remove_base64_images:** `Internal::Types::Boolean` — Remove base64 images from output (keeps alt text)
599
+
600
+ </dd>
601
+ </dl>
602
+
603
+ <dl>
604
+ <dd>
605
+
606
+ **screenshot_as_base64:** `Internal::Types::Boolean` — Return screenshot/PDF output inline as a base64 data URL instead of an uploaded CDN URL. Default false (a CDN URL is returned).
607
+
608
+ </dd>
609
+ </dl>
610
+
611
+ <dl>
612
+ <dd>
613
+
614
+ **skip_tls_verification:** `Internal::Types::Boolean` — Skip TLS certificate verification
615
+
616
+ </dd>
617
+ </dl>
618
+
619
+ <dl>
620
+ <dd>
621
+
622
+ **store_in_cache:** `Internal::Types::Boolean` — Store result in cache
623
+
624
+ </dd>
625
+ </dl>
626
+
627
+ <dl>
628
+ <dd>
629
+
630
+ **timeout:** `Integer` — Request timeout in milliseconds
631
+
632
+ </dd>
633
+ </dl>
634
+
635
+ <dl>
636
+ <dd>
637
+
638
+ **url:** `String` — URL to scrape. Either url or domain is required.
639
+
640
+ </dd>
641
+ </dl>
642
+
643
+ <dl>
644
+ <dd>
645
+
646
+ **wait_for:** `Integer` — Wait time before scraping (ms)
647
+
648
+ </dd>
649
+ </dl>
650
+
651
+ <dl>
652
+ <dd>
653
+
654
+ **zero_data_retention:** `Internal::Types::Boolean` — Reserved for a future zero-data-retention mode. true is currently rejected with 400 ZERO_DATA_RETENTION_NOT_SUPPORTED; omit or use false.
655
+
656
+ </dd>
657
+ </dl>
658
+
659
+ <dl>
660
+ <dd>
661
+
662
+ **request_options:** `Berrycrawl::RequestOptions`
663
+
664
+ </dd>
665
+ </dl>
666
+ </dd>
667
+ </dl>
668
+
669
+
670
+ </dd>
671
+ </dl>
672
+ </details>
673
+
674
+ <details><summary><code>client.<a href="/lib/Berrycrawl/client.rb">screenshot</a>(request) -> Berrycrawl::Types::ScrapeResponse</code></summary>
675
+ <dl>
676
+ <dd>
677
+
678
+ #### 📝 Description
679
+
680
+ <dl>
681
+ <dd>
682
+
683
+ <dl>
684
+ <dd>
685
+
686
+ Cookie banners, blocking overlays, chat widgets, and lazy loading are handled by default. Every cleanup pass can be controlled per request.
687
+ </dd>
688
+ </dl>
689
+ </dd>
690
+ </dl>
691
+
692
+ #### 🔌 Usage
693
+
694
+ <dl>
695
+ <dd>
696
+
697
+ <dl>
698
+ <dd>
699
+
700
+ ```ruby
701
+ client.screenshot(url: "https://example.com")
702
+ ```
703
+ </dd>
704
+ </dl>
705
+ </dd>
706
+ </dl>
707
+
708
+ #### ⚙️ Parameters
709
+
710
+ <dl>
711
+ <dd>
712
+
713
+ <dl>
714
+ <dd>
715
+
716
+ **block_ads:** `Internal::Types::Boolean` — Block common advertising and analytics requests
717
+
718
+ </dd>
719
+ </dl>
720
+
721
+ <dl>
722
+ <dd>
723
+
724
+ **click_selector:** `String` — Click this CSS selector before capture
725
+
726
+ </dd>
727
+ </dl>
728
+
729
+ <dl>
730
+ <dd>
731
+
732
+ **clip:** `Berrycrawl::Types::ScreenshotClipDto` — Capture an exact pixel rectangle instead of the page
733
+
734
+ </dd>
735
+ </dl>
736
+
737
+ <dl>
738
+ <dd>
739
+
740
+ **color_scheme:** `Berrycrawl::Types::ScreenshotDtoColorScheme`
741
+
742
+ </dd>
743
+ </dl>
744
+
745
+ <dl>
746
+ <dd>
747
+
748
+ **cookies:** `Internal::Types::Array[Berrycrawl::Types::ScreenshotCookieDto]` — Cookies to set before loading the page
749
+
750
+ </dd>
751
+ </dl>
752
+
753
+ <dl>
754
+ <dd>
755
+
756
+ **delay:** `Integer` — Extra settling time after the page is ready, in milliseconds
757
+
758
+ </dd>
759
+ </dl>
760
+
761
+ <dl>
762
+ <dd>
763
+
764
+ **device:** `Berrycrawl::Types::ScreenshotDtoDevice` — Named viewport preset
765
+
766
+ </dd>
767
+ </dl>
768
+
769
+ <dl>
770
+ <dd>
771
+
772
+ **disable_animations:** `Internal::Types::Boolean`
773
+
774
+ </dd>
775
+ </dl>
776
+
777
+ <dl>
778
+ <dd>
779
+
780
+ **format:** `Berrycrawl::Types::ScreenshotDtoFormat`
781
+
782
+ </dd>
783
+ </dl>
784
+
785
+ <dl>
786
+ <dd>
787
+
788
+ **full_page:** `Internal::Types::Boolean` — Capture the complete page instead of only the viewport
789
+
790
+ </dd>
791
+ </dl>
792
+
793
+ <dl>
794
+ <dd>
795
+
796
+ **full_page_algorithm:** `Berrycrawl::Types::ScreenshotDtoFullPageAlgorithm` — auto uses native capture for normal pages and stitched slices for very tall pages
797
+
798
+ </dd>
799
+ </dl>
800
+
801
+ <dl>
802
+ <dd>
803
+
804
+ **headers:** `Internal::Types::Hash[String, Object]` — Headers sent while loading the page
805
+
806
+ </dd>
807
+ </dl>
808
+
809
+ <dl>
810
+ <dd>
811
+
812
+ **hide_fixed_elements:** `Internal::Types::Boolean` — Show fixed/sticky UI once instead of repeating it in stitched captures
813
+
814
+ </dd>
815
+ </dl>
816
+
817
+ <dl>
818
+ <dd>
819
+
820
+ **hide_selectors:** `Internal::Types::Array[String]` — Hide matching elements before capture
821
+
822
+ </dd>
823
+ </dl>
824
+
825
+ <dl>
826
+ <dd>
827
+
828
+ **location:** `Berrycrawl::Types::ScreenshotLocationDto`
829
+
830
+ </dd>
831
+ </dl>
832
+
833
+ <dl>
834
+ <dd>
835
+
836
+ **mask_color:** `String`
837
+
838
+ </dd>
839
+ </dl>
840
+
841
+ <dl>
842
+ <dd>
843
+
844
+ **mask_selectors:** `Internal::Types::Array[String]` — Cover matching elements with a solid privacy mask
845
+
846
+ </dd>
847
+ </dl>
848
+
849
+ <dl>
850
+ <dd>
851
+
852
+ **max_height:** `Integer` — Maximum full-page height. Prevents endless captures on infinite pages.
853
+
854
+ </dd>
855
+ </dl>
856
+
857
+ <dl>
858
+ <dd>
859
+
860
+ **omit_background:** `Internal::Types::Boolean` — Use a transparent background where the page allows it
861
+
862
+ </dd>
863
+ </dl>
864
+
865
+ <dl>
866
+ <dd>
867
+
868
+ **proxy:** `Berrycrawl::Types::ScreenshotDtoProxy` — Proxy mode
869
+
870
+ </dd>
871
+ </dl>
872
+
873
+ <dl>
874
+ <dd>
875
+
876
+ **quality:** `Integer` — JPEG or WebP quality
877
+
878
+ </dd>
879
+ </dl>
880
+
881
+ <dl>
882
+ <dd>
883
+
884
+ **reduced_motion:** `Internal::Types::Boolean`
885
+
886
+ </dd>
887
+ </dl>
888
+
889
+ <dl>
890
+ <dd>
891
+
892
+ **remove_chat_widgets:** `Internal::Types::Boolean` — Hide common support and chat widgets
893
+
894
+ </dd>
895
+ </dl>
896
+
897
+ <dl>
898
+ <dd>
899
+
900
+ **remove_cookie_banners:** `Internal::Types::Boolean` — Accept known consent dialogs, hide remaining cookie banners, and restore page scrolling
901
+
902
+ </dd>
903
+ </dl>
904
+
905
+ <dl>
906
+ <dd>
907
+
908
+ **remove_overlays:** `Internal::Types::Boolean` — Remove newsletter gates, modal backdrops, and blocking overlays
909
+
910
+ </dd>
911
+ </dl>
912
+
913
+ <dl>
914
+ <dd>
915
+
916
+ **response_format:** `Berrycrawl::Types::ScreenshotDtoResponseFormat` — Return a CDN URL or an inline data URL
917
+
918
+ </dd>
919
+ </dl>
920
+
921
+ <dl>
922
+ <dd>
923
+
924
+ **scale:** `Berrycrawl::Types::ScreenshotDtoScale` — Capture at CSS pixel size or the emulated device pixel ratio
925
+
926
+ </dd>
927
+ </dl>
928
+
929
+ <dl>
930
+ <dd>
931
+
932
+ **scroll_delay:** `Integer` — Pause between lazy-load scroll steps, in milliseconds
933
+
934
+ </dd>
935
+ </dl>
936
+
937
+ <dl>
938
+ <dd>
939
+
940
+ **scroll_page:** `Internal::Types::Boolean` — Scroll through the page first so lazy content is loaded
941
+
942
+ </dd>
943
+ </dl>
944
+
945
+ <dl>
946
+ <dd>
947
+
948
+ **selector:** `String` — Capture one element instead of the page
949
+
950
+ </dd>
951
+ </dl>
952
+
953
+ <dl>
954
+ <dd>
955
+
956
+ **styles:** `Internal::Types::Array[String]` — CSS rules to apply before capture
957
+
958
+ </dd>
959
+ </dl>
960
+
961
+ <dl>
962
+ <dd>
963
+
964
+ **timeout:** `Integer`
965
+
966
+ </dd>
967
+ </dl>
968
+
969
+ <dl>
970
+ <dd>
971
+
972
+ **url:** `String` — Public webpage URL to capture
973
+
974
+ </dd>
975
+ </dl>
976
+
977
+ <dl>
978
+ <dd>
979
+
980
+ **viewport:** `Berrycrawl::Types::ScreenshotViewportDto` — Custom viewport. Overrides the named device dimensions.
981
+
982
+ </dd>
983
+ </dl>
984
+
985
+ <dl>
986
+ <dd>
987
+
988
+ **wait_for_selector:** `String` — Wait for this CSS selector before capture
989
+
990
+ </dd>
991
+ </dl>
992
+
993
+ <dl>
994
+ <dd>
995
+
996
+ **wait_until:** `Berrycrawl::Types::ScreenshotDtoWaitUntil` — Page readiness milestone used before capture
997
+
998
+ </dd>
999
+ </dl>
1000
+
1001
+ <dl>
1002
+ <dd>
1003
+
1004
+ **request_options:** `Berrycrawl::RequestOptions`
1005
+
1006
+ </dd>
1007
+ </dl>
1008
+ </dd>
1009
+ </dl>
1010
+
1011
+
1012
+ </dd>
1013
+ </dl>
1014
+ </details>
1015
+
1016
+ <details><summary><code>client.<a href="/lib/Berrycrawl/client.rb">search</a>(request) -> Berrycrawl::Types::SearchResponse</code></summary>
1017
+ <dl>
1018
+ <dd>
1019
+
1020
+ #### 🔌 Usage
1021
+
1022
+ <dl>
1023
+ <dd>
1024
+
1025
+ <dl>
1026
+ <dd>
1027
+
1028
+ ```ruby
1029
+ client.search(query: "machine learning tutorials")
1030
+ ```
1031
+ </dd>
1032
+ </dl>
1033
+ </dd>
1034
+ </dl>
1035
+
1036
+ #### ⚙️ Parameters
1037
+
1038
+ <dl>
1039
+ <dd>
1040
+
1041
+ <dl>
1042
+ <dd>
1043
+
1044
+ **categories:** `Internal::Types::Array[String]` — Category filters
1045
+
1046
+ </dd>
1047
+ </dl>
1048
+
1049
+ <dl>
1050
+ <dd>
1051
+
1052
+ **country:** `String` — Country code
1053
+
1054
+ </dd>
1055
+ </dl>
1056
+
1057
+ <dl>
1058
+ <dd>
1059
+
1060
+ **limit:** `Integer` — Maximum number of results
1061
+
1062
+ </dd>
1063
+ </dl>
1064
+
1065
+ <dl>
1066
+ <dd>
1067
+
1068
+ **location:** `String` — Location for geo-targeting
1069
+
1070
+ </dd>
1071
+ </dl>
1072
+
1073
+ <dl>
1074
+ <dd>
1075
+
1076
+ **query:** `String` — Search query
1077
+
1078
+ </dd>
1079
+ </dl>
1080
+
1081
+ <dl>
1082
+ <dd>
1083
+
1084
+ **sources:** `Internal::Types::Array[String]` — Source types to search
1085
+
1086
+ </dd>
1087
+ </dl>
1088
+
1089
+ <dl>
1090
+ <dd>
1091
+
1092
+ **tbs:** `String` — Time-based filter (e.g., qdr:d for past day)
1093
+
1094
+ </dd>
1095
+ </dl>
1096
+
1097
+ <dl>
1098
+ <dd>
1099
+
1100
+ **timeout:** `Integer` — Timeout for search operation in milliseconds
1101
+
1102
+ </dd>
1103
+ </dl>
1104
+
1105
+ <dl>
1106
+ <dd>
1107
+
1108
+ **request_options:** `Berrycrawl::RequestOptions`
1109
+
1110
+ </dd>
1111
+ </dl>
1112
+ </dd>
1113
+ </dl>
1114
+
1115
+
1116
+ </dd>
1117
+ </dl>
1118
+ </details>
1119
+
1120
+ ## Account
1121
+ <details><summary><code>client.account.<a href="/lib/Berrycrawl/account/client.rb">get</a>() -> Berrycrawl::Types::AccountResponse</code></summary>
1122
+ <dl>
1123
+ <dd>
1124
+
1125
+ #### 🔌 Usage
1126
+
1127
+ <dl>
1128
+ <dd>
1129
+
1130
+ <dl>
1131
+ <dd>
1132
+
1133
+ ```ruby
1134
+ client.account.get
1135
+ ```
1136
+ </dd>
1137
+ </dl>
1138
+ </dd>
1139
+ </dl>
1140
+
1141
+ #### ⚙️ Parameters
1142
+
1143
+ <dl>
1144
+ <dd>
1145
+
1146
+ <dl>
1147
+ <dd>
1148
+
1149
+ **request_options:** `Berrycrawl::Account::RequestOptions`
1150
+
1151
+ </dd>
1152
+ </dl>
1153
+ </dd>
1154
+ </dl>
1155
+
1156
+
1157
+ </dd>
1158
+ </dl>
1159
+ </details>
1160
+
1161
+ ## Brand
1162
+ <details><summary><code>client.brand.<a href="/lib/Berrycrawl/brand/client.rb">retrieve</a>(request) -> Berrycrawl::Types::BrandResponse</code></summary>
1163
+ <dl>
1164
+ <dd>
1165
+
1166
+ #### 📝 Description
1167
+
1168
+ <dl>
1169
+ <dd>
1170
+
1171
+ <dl>
1172
+ <dd>
1173
+
1174
+ Send one website URL. BerryCrawl returns the brand identity found on that site.
1175
+ </dd>
1176
+ </dl>
1177
+ </dd>
1178
+ </dl>
1179
+
1180
+ #### 🔌 Usage
1181
+
1182
+ <dl>
1183
+ <dd>
1184
+
1185
+ <dl>
1186
+ <dd>
1187
+
1188
+ ```ruby
1189
+ client.brand.retrieve(url: "https://stripe.com")
1190
+ ```
1191
+ </dd>
1192
+ </dl>
1193
+ </dd>
1194
+ </dl>
1195
+
1196
+ #### ⚙️ Parameters
1197
+
1198
+ <dl>
1199
+ <dd>
1200
+
1201
+ <dl>
1202
+ <dd>
1203
+
1204
+ **refresh:** `Internal::Types::Boolean` — Ignore a cached profile and fetch the website again
1205
+
1206
+ </dd>
1207
+ </dl>
1208
+
1209
+ <dl>
1210
+ <dd>
1211
+
1212
+ **timeout:** `Integer` — Maximum time to spend building the profile, in milliseconds
1213
+
1214
+ </dd>
1215
+ </dl>
1216
+
1217
+ <dl>
1218
+ <dd>
1219
+
1220
+ **url:** `String` — The public website whose brand profile should be extracted
1221
+
1222
+ </dd>
1223
+ </dl>
1224
+
1225
+ <dl>
1226
+ <dd>
1227
+
1228
+ **request_options:** `Berrycrawl::Brand::RequestOptions`
1229
+
1230
+ </dd>
1231
+ </dl>
1232
+ </dd>
1233
+ </dl>
1234
+
1235
+
1236
+ </dd>
1237
+ </dl>
1238
+ </details>
1239
+
1240
+ ## Jobs
1241
+ <details><summary><code>client.jobs.<a href="/lib/Berrycrawl/jobs/client.rb">list</a>() -> Berrycrawl::Types::ListJobsResponse</code></summary>
1242
+ <dl>
1243
+ <dd>
1244
+
1245
+ #### 🔌 Usage
1246
+
1247
+ <dl>
1248
+ <dd>
1249
+
1250
+ <dl>
1251
+ <dd>
1252
+
1253
+ ```ruby
1254
+ client.jobs.list
1255
+ ```
1256
+ </dd>
1257
+ </dl>
1258
+ </dd>
1259
+ </dl>
1260
+
1261
+ #### ⚙️ Parameters
1262
+
1263
+ <dl>
1264
+ <dd>
1265
+
1266
+ <dl>
1267
+ <dd>
1268
+
1269
+ **type:** `Berrycrawl::Jobs::Types::ListJobsRequestType`
1270
+
1271
+ </dd>
1272
+ </dl>
1273
+
1274
+ <dl>
1275
+ <dd>
1276
+
1277
+ **status:** `Berrycrawl::Jobs::Types::ListJobsRequestStatus`
1278
+
1279
+ </dd>
1280
+ </dl>
1281
+
1282
+ <dl>
1283
+ <dd>
1284
+
1285
+ **page:** `Integer`
1286
+
1287
+ </dd>
1288
+ </dl>
1289
+
1290
+ <dl>
1291
+ <dd>
1292
+
1293
+ **limit:** `Integer`
1294
+
1295
+ </dd>
1296
+ </dl>
1297
+
1298
+ <dl>
1299
+ <dd>
1300
+
1301
+ **request_options:** `Berrycrawl::Jobs::RequestOptions`
1302
+
1303
+ </dd>
1304
+ </dl>
1305
+ </dd>
1306
+ </dl>
1307
+
1308
+
1309
+ </dd>
1310
+ </dl>
1311
+ </details>
1312
+
1313
+ <details><summary><code>client.jobs.<a href="/lib/Berrycrawl/jobs/client.rb">get</a>(id:) -> Berrycrawl::Types::JobResponse</code></summary>
1314
+ <dl>
1315
+ <dd>
1316
+
1317
+ #### 🔌 Usage
1318
+
1319
+ <dl>
1320
+ <dd>
1321
+
1322
+ <dl>
1323
+ <dd>
1324
+
1325
+ ```ruby
1326
+ client.jobs.get(id: "id")
1327
+ ```
1328
+ </dd>
1329
+ </dl>
1330
+ </dd>
1331
+ </dl>
1332
+
1333
+ #### ⚙️ Parameters
1334
+
1335
+ <dl>
1336
+ <dd>
1337
+
1338
+ <dl>
1339
+ <dd>
1340
+
1341
+ **id:** `String`
1342
+
1343
+ </dd>
1344
+ </dl>
1345
+
1346
+ <dl>
1347
+ <dd>
1348
+
1349
+ **page:** `Integer`
1350
+
1351
+ </dd>
1352
+ </dl>
1353
+
1354
+ <dl>
1355
+ <dd>
1356
+
1357
+ **limit:** `Integer`
1358
+
1359
+ </dd>
1360
+ </dl>
1361
+
1362
+ <dl>
1363
+ <dd>
1364
+
1365
+ **request_options:** `Berrycrawl::Jobs::RequestOptions`
1366
+
1367
+ </dd>
1368
+ </dl>
1369
+ </dd>
1370
+ </dl>
1371
+
1372
+
1373
+ </dd>
1374
+ </dl>
1375
+ </details>
1376
+
1377
+ <details><summary><code>client.jobs.<a href="/lib/Berrycrawl/jobs/client.rb">cancel</a>(id:) -> Berrycrawl::Types::CancelJobResponse</code></summary>
1378
+ <dl>
1379
+ <dd>
1380
+
1381
+ #### 🔌 Usage
1382
+
1383
+ <dl>
1384
+ <dd>
1385
+
1386
+ <dl>
1387
+ <dd>
1388
+
1389
+ ```ruby
1390
+ client.jobs.cancel(id: "id")
1391
+ ```
1392
+ </dd>
1393
+ </dl>
1394
+ </dd>
1395
+ </dl>
1396
+
1397
+ #### ⚙️ Parameters
1398
+
1399
+ <dl>
1400
+ <dd>
1401
+
1402
+ <dl>
1403
+ <dd>
1404
+
1405
+ **id:** `String`
1406
+
1407
+ </dd>
1408
+ </dl>
1409
+
1410
+ <dl>
1411
+ <dd>
1412
+
1413
+ **request_options:** `Berrycrawl::Jobs::RequestOptions`
1414
+
1415
+ </dd>
1416
+ </dl>
1417
+ </dd>
1418
+ </dl>
1419
+
1420
+
1421
+ </dd>
1422
+ </dl>
1423
+ </details>
1424
+
1425
+ ## Webhooks
1426
+ <details><summary><code>client.webhooks.<a href="/lib/Berrycrawl/webhooks/client.rb">list</a>() -> Berrycrawl::Types::ListWebhooksResponse</code></summary>
1427
+ <dl>
1428
+ <dd>
1429
+
1430
+ #### 🔌 Usage
1431
+
1432
+ <dl>
1433
+ <dd>
1434
+
1435
+ <dl>
1436
+ <dd>
1437
+
1438
+ ```ruby
1439
+ client.webhooks.list
1440
+ ```
1441
+ </dd>
1442
+ </dl>
1443
+ </dd>
1444
+ </dl>
1445
+
1446
+ #### ⚙️ Parameters
1447
+
1448
+ <dl>
1449
+ <dd>
1450
+
1451
+ <dl>
1452
+ <dd>
1453
+
1454
+ **request_options:** `Berrycrawl::Webhooks::RequestOptions`
1455
+
1456
+ </dd>
1457
+ </dl>
1458
+ </dd>
1459
+ </dl>
1460
+
1461
+
1462
+ </dd>
1463
+ </dl>
1464
+ </details>
1465
+
1466
+ <details><summary><code>client.webhooks.<a href="/lib/Berrycrawl/webhooks/client.rb">create</a>(request) -> Berrycrawl::Types::WebhookResponse</code></summary>
1467
+ <dl>
1468
+ <dd>
1469
+
1470
+ #### 🔌 Usage
1471
+
1472
+ <dl>
1473
+ <dd>
1474
+
1475
+ <dl>
1476
+ <dd>
1477
+
1478
+ ```ruby
1479
+ client.webhooks.create(
1480
+ events: %w[crawl.completed extract.failed],
1481
+ url: "https://api.example.com/webhooks"
1482
+ )
1483
+ ```
1484
+ </dd>
1485
+ </dl>
1486
+ </dd>
1487
+ </dl>
1488
+
1489
+ #### ⚙️ Parameters
1490
+
1491
+ <dl>
1492
+ <dd>
1493
+
1494
+ <dl>
1495
+ <dd>
1496
+
1497
+ **events:** `Internal::Types::Array[String]` — Event types to subscribe to
1498
+
1499
+ </dd>
1500
+ </dl>
1501
+
1502
+ <dl>
1503
+ <dd>
1504
+
1505
+ **url:** `String` — Webhook URL to send events to
1506
+
1507
+ </dd>
1508
+ </dl>
1509
+
1510
+ <dl>
1511
+ <dd>
1512
+
1513
+ **request_options:** `Berrycrawl::Webhooks::RequestOptions`
1514
+
1515
+ </dd>
1516
+ </dl>
1517
+ </dd>
1518
+ </dl>
1519
+
1520
+
1521
+ </dd>
1522
+ </dl>
1523
+ </details>
1524
+
1525
+ <details><summary><code>client.webhooks.<a href="/lib/Berrycrawl/webhooks/client.rb">get</a>(id:) -> Berrycrawl::Types::WebhookResponse</code></summary>
1526
+ <dl>
1527
+ <dd>
1528
+
1529
+ #### 🔌 Usage
1530
+
1531
+ <dl>
1532
+ <dd>
1533
+
1534
+ <dl>
1535
+ <dd>
1536
+
1537
+ ```ruby
1538
+ client.webhooks.get(id: "id")
1539
+ ```
1540
+ </dd>
1541
+ </dl>
1542
+ </dd>
1543
+ </dl>
1544
+
1545
+ #### ⚙️ Parameters
1546
+
1547
+ <dl>
1548
+ <dd>
1549
+
1550
+ <dl>
1551
+ <dd>
1552
+
1553
+ **id:** `String`
1554
+
1555
+ </dd>
1556
+ </dl>
1557
+
1558
+ <dl>
1559
+ <dd>
1560
+
1561
+ **request_options:** `Berrycrawl::Webhooks::RequestOptions`
1562
+
1563
+ </dd>
1564
+ </dl>
1565
+ </dd>
1566
+ </dl>
1567
+
1568
+
1569
+ </dd>
1570
+ </dl>
1571
+ </details>
1572
+
1573
+ <details><summary><code>client.webhooks.<a href="/lib/Berrycrawl/webhooks/client.rb">delete</a>(id:) -> Berrycrawl::Types::MessageResponse</code></summary>
1574
+ <dl>
1575
+ <dd>
1576
+
1577
+ #### 🔌 Usage
1578
+
1579
+ <dl>
1580
+ <dd>
1581
+
1582
+ <dl>
1583
+ <dd>
1584
+
1585
+ ```ruby
1586
+ client.webhooks.delete(id: "id")
1587
+ ```
1588
+ </dd>
1589
+ </dl>
1590
+ </dd>
1591
+ </dl>
1592
+
1593
+ #### ⚙️ Parameters
1594
+
1595
+ <dl>
1596
+ <dd>
1597
+
1598
+ <dl>
1599
+ <dd>
1600
+
1601
+ **id:** `String`
1602
+
1603
+ </dd>
1604
+ </dl>
1605
+
1606
+ <dl>
1607
+ <dd>
1608
+
1609
+ **request_options:** `Berrycrawl::Webhooks::RequestOptions`
1610
+
1611
+ </dd>
1612
+ </dl>
1613
+ </dd>
1614
+ </dl>
1615
+
1616
+
1617
+ </dd>
1618
+ </dl>
1619
+ </details>
1620
+
1621
+ <details><summary><code>client.webhooks.<a href="/lib/Berrycrawl/webhooks/client.rb">update</a>(id:, request) -> Berrycrawl::Types::WebhookResponse</code></summary>
1622
+ <dl>
1623
+ <dd>
1624
+
1625
+ #### 🔌 Usage
1626
+
1627
+ <dl>
1628
+ <dd>
1629
+
1630
+ <dl>
1631
+ <dd>
1632
+
1633
+ ```ruby
1634
+ client.webhooks.update(id: "id")
1635
+ ```
1636
+ </dd>
1637
+ </dl>
1638
+ </dd>
1639
+ </dl>
1640
+
1641
+ #### ⚙️ Parameters
1642
+
1643
+ <dl>
1644
+ <dd>
1645
+
1646
+ <dl>
1647
+ <dd>
1648
+
1649
+ **id:** `String`
1650
+
1651
+ </dd>
1652
+ </dl>
1653
+
1654
+ <dl>
1655
+ <dd>
1656
+
1657
+ **events:** `Internal::Types::Array[String]` — Event types to subscribe to
1658
+
1659
+ </dd>
1660
+ </dl>
1661
+
1662
+ <dl>
1663
+ <dd>
1664
+
1665
+ **is_active:** `Internal::Types::Boolean` — Enable or disable webhook
1666
+
1667
+ </dd>
1668
+ </dl>
1669
+
1670
+ <dl>
1671
+ <dd>
1672
+
1673
+ **url:** `String` — Webhook URL to send events to
1674
+
1675
+ </dd>
1676
+ </dl>
1677
+
1678
+ <dl>
1679
+ <dd>
1680
+
1681
+ **request_options:** `Berrycrawl::Webhooks::RequestOptions`
1682
+
1683
+ </dd>
1684
+ </dl>
1685
+ </dd>
1686
+ </dl>
1687
+
1688
+
1689
+ </dd>
1690
+ </dl>
1691
+ </details>
1692
+
1693
+ <details><summary><code>client.webhooks.<a href="/lib/Berrycrawl/webhooks/client.rb">test</a>(id:, request) -> Berrycrawl::Types::TestWebhookResponse</code></summary>
1694
+ <dl>
1695
+ <dd>
1696
+
1697
+ #### 🔌 Usage
1698
+
1699
+ <dl>
1700
+ <dd>
1701
+
1702
+ <dl>
1703
+ <dd>
1704
+
1705
+ ```ruby
1706
+ client.webhooks.test(
1707
+ id: "id",
1708
+ event: "crawl.completed"
1709
+ )
1710
+ ```
1711
+ </dd>
1712
+ </dl>
1713
+ </dd>
1714
+ </dl>
1715
+
1716
+ #### ⚙️ Parameters
1717
+
1718
+ <dl>
1719
+ <dd>
1720
+
1721
+ <dl>
1722
+ <dd>
1723
+
1724
+ **id:** `String`
1725
+
1726
+ </dd>
1727
+ </dl>
1728
+
1729
+ <dl>
1730
+ <dd>
1731
+
1732
+ **event:** `String` — Event type to test
1733
+
1734
+ </dd>
1735
+ </dl>
1736
+
1737
+ <dl>
1738
+ <dd>
1739
+
1740
+ **payload:** `Internal::Types::Hash[String, Object]` — Optional custom payload for testing
1741
+
1742
+ </dd>
1743
+ </dl>
1744
+
1745
+ <dl>
1746
+ <dd>
1747
+
1748
+ **request_options:** `Berrycrawl::Webhooks::RequestOptions`
1749
+
1750
+ </dd>
1751
+ </dl>
1752
+ </dd>
1753
+ </dl>
1754
+
1755
+
1756
+ </dd>
1757
+ </dl>
1758
+ </details>
1759
+