nimble_python 0.1.0__py3-none-any.whl

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 (50) hide show
  1. nimble_python/__init__.py +104 -0
  2. nimble_python/_base_client.py +2127 -0
  3. nimble_python/_client.py +4783 -0
  4. nimble_python/_compat.py +219 -0
  5. nimble_python/_constants.py +14 -0
  6. nimble_python/_exceptions.py +108 -0
  7. nimble_python/_files.py +123 -0
  8. nimble_python/_models.py +872 -0
  9. nimble_python/_qs.py +150 -0
  10. nimble_python/_resource.py +43 -0
  11. nimble_python/_response.py +832 -0
  12. nimble_python/_streaming.py +333 -0
  13. nimble_python/_types.py +270 -0
  14. nimble_python/_utils/__init__.py +64 -0
  15. nimble_python/_utils/_compat.py +45 -0
  16. nimble_python/_utils/_datetime_parse.py +136 -0
  17. nimble_python/_utils/_json.py +35 -0
  18. nimble_python/_utils/_logs.py +25 -0
  19. nimble_python/_utils/_proxy.py +65 -0
  20. nimble_python/_utils/_reflection.py +42 -0
  21. nimble_python/_utils/_resources_proxy.py +24 -0
  22. nimble_python/_utils/_streams.py +12 -0
  23. nimble_python/_utils/_sync.py +58 -0
  24. nimble_python/_utils/_transform.py +457 -0
  25. nimble_python/_utils/_typing.py +156 -0
  26. nimble_python/_utils/_utils.py +421 -0
  27. nimble_python/_version.py +4 -0
  28. nimble_python/lib/.keep +4 -0
  29. nimble_python/py.typed +0 -0
  30. nimble_python/resources/__init__.py +19 -0
  31. nimble_python/resources/crawl.py +553 -0
  32. nimble_python/types/__init__.py +18 -0
  33. nimble_python/types/client_extract_params.py +1366 -0
  34. nimble_python/types/client_extract_template_params.py +14 -0
  35. nimble_python/types/client_map_params.py +812 -0
  36. nimble_python/types/client_search_params.py +75 -0
  37. nimble_python/types/crawl_list_params.py +19 -0
  38. nimble_python/types/crawl_list_response.py +1390 -0
  39. nimble_python/types/crawl_root_params.py +1429 -0
  40. nimble_python/types/crawl_root_response.py +11 -0
  41. nimble_python/types/crawl_status_response.py +33 -0
  42. nimble_python/types/crawl_terminate_response.py +11 -0
  43. nimble_python/types/extract_response.py +11 -0
  44. nimble_python/types/extract_template_response.py +11 -0
  45. nimble_python/types/map_response.py +28 -0
  46. nimble_python/types/search_response.py +70 -0
  47. nimble_python-0.1.0.dist-info/METADATA +452 -0
  48. nimble_python-0.1.0.dist-info/RECORD +50 -0
  49. nimble_python-0.1.0.dist-info/WHEEL +4 -0
  50. nimble_python-0.1.0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,1429 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict, List, Union, Iterable, Optional
6
+ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict
7
+
8
+ from .._types import SequenceNotStr
9
+ from .._utils import PropertyInfo
10
+
11
+ __all__ = [
12
+ "CrawlRootParams",
13
+ "Callback",
14
+ "CallbackUnionMember0",
15
+ "ExtractOptions",
16
+ "ExtractOptionsDebugOptions",
17
+ "ExtractOptionsBrowser",
18
+ "ExtractOptionsBrowserUnionMember1",
19
+ "ExtractOptionsCookiesUnionMember0",
20
+ "ExtractOptionsMetadata",
21
+ "ExtractOptionsNetworkCapture",
22
+ "ExtractOptionsNetworkCaptureURL",
23
+ "ExtractOptionsParseOptions",
24
+ "ExtractOptionsQueryTemplate",
25
+ "ExtractOptionsQueryTemplatePagination",
26
+ "ExtractOptionsQueryTemplatePaginationNextPageParams",
27
+ "ExtractOptionsQueryTemplatePaginationUnionMember1",
28
+ "ExtractOptionsRenderOptions",
29
+ "ExtractOptionsRenderOptionsHackiumConfiguration",
30
+ "ExtractOptionsSession",
31
+ "ExtractOptionsTemplate",
32
+ "ExtractOptionsUserbrowserCreationTemplateRendered",
33
+ ]
34
+
35
+
36
+ class CrawlRootParams(TypedDict, total=False):
37
+ url: Required[str]
38
+ """Url to crawl."""
39
+
40
+ allow_external_links: bool
41
+ """Allows the crawler to follow links to external websites."""
42
+
43
+ allow_subdomains: bool
44
+ """Allows the crawler to follow links to subdomains of the main domain."""
45
+
46
+ callback: Callback
47
+ """Webhook configuration for receiving crawl results."""
48
+
49
+ crawl_entire_domain: bool
50
+ """
51
+ Allows the crawler to follow internal links to sibling or parent URLs, not just
52
+ child paths.
53
+ """
54
+
55
+ exclude_paths: SequenceNotStr[str]
56
+ """URL pathname regex patterns that exclude matching URLs from the crawl."""
57
+
58
+ extract_options: ExtractOptions
59
+
60
+ ignore_query_parameters: bool
61
+ """Do not re-scrape the same path with different (or none) query parameters."""
62
+
63
+ include_paths: SequenceNotStr[str]
64
+ """URL pathname regex patterns that include matching URLs in the crawl."""
65
+
66
+ limit: int
67
+ """Maximum number of pages to crawl."""
68
+
69
+ max_discovery_depth: int
70
+ """Maximum depth to crawl based on discovery order."""
71
+
72
+ name: str
73
+ """Name of the crawl."""
74
+
75
+ sitemap: Literal["skip", "include", "only"]
76
+ """Sitemap and other methods will be used together to find URLs."""
77
+
78
+
79
+ class CallbackUnionMember0(TypedDict, total=False):
80
+ url: Required[str]
81
+ """Webhook URL to receive crawl results."""
82
+
83
+ events: List[Literal["completed", "page", "failed", "started"]]
84
+ """Type of events that should be sent to the webhook URL. (default: all)"""
85
+
86
+ headers: Dict[str, object]
87
+ """Headers to send to the webhook URL."""
88
+
89
+ metadata: Dict[str, object]
90
+ """Custom metadata that will be included in all webhook payloads for this crawl."""
91
+
92
+
93
+ Callback: TypeAlias = Union[CallbackUnionMember0, str]
94
+
95
+
96
+ class ExtractOptionsDebugOptions(TypedDict, total=False):
97
+ """Debug and troubleshooting options for the request"""
98
+
99
+ collect_har: Union[bool, Literal["never", "on-error", "always"]]
100
+
101
+ no_retry_mode: Union[bool, Literal["never", "always"]]
102
+
103
+ record_screen: Union[bool, Literal["never", "on-error", "always"]]
104
+
105
+ redact: Union[bool, Literal["never", "always"]]
106
+
107
+ show_cursor: Union[bool, Literal["never", "always"]]
108
+
109
+ solve_captcha: Union[bool, Literal["never", "always"]]
110
+
111
+ trace: Union[bool, Literal["never", "on-error", "always"]]
112
+
113
+ upload_engine_logs: Union[bool, Literal["never", "on-error", "always"]]
114
+
115
+ verbose: Union[bool, Literal["never", "always"]]
116
+
117
+ with_proxy_usage: Union[bool, Literal["never", "always"]]
118
+
119
+
120
+ class ExtractOptionsBrowserUnionMember1(TypedDict, total=False):
121
+ name: Required[Literal["chrome", "firefox"]]
122
+
123
+ version: str
124
+ """Specific browser version to emulate"""
125
+
126
+
127
+ ExtractOptionsBrowser: TypeAlias = Union[Literal["chrome", "firefox"], ExtractOptionsBrowserUnionMember1]
128
+
129
+
130
+ class ExtractOptionsCookiesUnionMember0Typed(TypedDict, total=False):
131
+ creation: Optional[str]
132
+
133
+ domain: Optional[str]
134
+
135
+ expires: str
136
+
137
+ extensions: Optional[SequenceNotStr[str]]
138
+
139
+ host_only: Annotated[Optional[bool], PropertyInfo(alias="hostOnly")]
140
+
141
+ http_only: Annotated[Optional[bool], PropertyInfo(alias="httpOnly")]
142
+
143
+ last_accessed: Annotated[Optional[str], PropertyInfo(alias="lastAccessed")]
144
+
145
+ max_age: Annotated[Union[Literal["Infinity", "-Infinity"], float, None], PropertyInfo(alias="maxAge")]
146
+
147
+ name: str
148
+
149
+ path: Optional[str]
150
+
151
+ path_is_default: Annotated[Optional[bool], PropertyInfo(alias="pathIsDefault")]
152
+
153
+ same_site: Annotated[Literal["strict", "lax", "none"], PropertyInfo(alias="sameSite")]
154
+
155
+ secure: bool
156
+
157
+ value: str
158
+
159
+
160
+ ExtractOptionsCookiesUnionMember0: TypeAlias = Union[ExtractOptionsCookiesUnionMember0Typed, Dict[str, object]]
161
+
162
+
163
+ class ExtractOptionsMetadata(TypedDict, total=False):
164
+ """Structured metadata about the request execution context"""
165
+
166
+ account_name: str
167
+ """Account name associated with the request"""
168
+
169
+ definition_id: int
170
+ """Definition identifier"""
171
+
172
+ definition_name: str
173
+ """Name of the definition"""
174
+
175
+ endpoint: str
176
+ """API endpoint being called"""
177
+
178
+ execution_id: str
179
+ """Unique identifier for this execution"""
180
+
181
+ flowit_task_id: str
182
+ """FlowIt task identifier"""
183
+
184
+ input_id: str
185
+ """Input data identifier"""
186
+
187
+ pipeline_execution_id: int
188
+ """Identifier for the pipeline execution"""
189
+
190
+ query_template_id: str
191
+ """Query template identifier"""
192
+
193
+ source: str
194
+ """Source system or application making the request"""
195
+
196
+ template_id: int
197
+ """Template identifier"""
198
+
199
+ template_name: str
200
+ """Name of the template"""
201
+
202
+
203
+ class ExtractOptionsNetworkCaptureURL(TypedDict, total=False):
204
+ value: Required[str]
205
+
206
+ type: Literal["exact", "contains"]
207
+
208
+
209
+ class ExtractOptionsNetworkCapture(TypedDict, total=False):
210
+ method: Literal["GET", "HEAD", "POST", "PUT", "DELETE", "CONNECT", "OPTIONS", "TRACE", "PATCH"]
211
+
212
+ resource_type: Union[str, SequenceNotStr[str]]
213
+ """Resource type for network capture filtering"""
214
+
215
+ status_code: Union[float, Iterable[float]]
216
+
217
+ url: ExtractOptionsNetworkCaptureURL
218
+
219
+ validation: bool
220
+
221
+ wait_for_requests_count: float
222
+
223
+ wait_for_requests_count_timeout: float
224
+
225
+
226
+ class ExtractOptionsParseOptionsTyped(TypedDict, total=False):
227
+ """Configuration options for parsing behavior"""
228
+
229
+ merge_dynamic: bool
230
+ """Whether to merge dynamic parsing results with static results"""
231
+
232
+
233
+ ExtractOptionsParseOptions: TypeAlias = Union[ExtractOptionsParseOptionsTyped, Dict[str, object]]
234
+
235
+
236
+ class ExtractOptionsQueryTemplatePaginationNextPageParams(TypedDict, total=False):
237
+ next_page_params: Required[Dict[str, object]]
238
+
239
+
240
+ class ExtractOptionsQueryTemplatePaginationUnionMember1(TypedDict, total=False):
241
+ next_page_params: Required[Dict[str, object]]
242
+
243
+
244
+ ExtractOptionsQueryTemplatePagination: TypeAlias = Union[
245
+ ExtractOptionsQueryTemplatePaginationNextPageParams, Iterable[ExtractOptionsQueryTemplatePaginationUnionMember1]
246
+ ]
247
+
248
+
249
+ class ExtractOptionsQueryTemplateTyped(TypedDict, total=False):
250
+ """Query template configuration for structured data extraction"""
251
+
252
+ id: Required[str]
253
+
254
+ api_type: Literal["WEB", "SERP", "SOCIAL"]
255
+
256
+ pagination: ExtractOptionsQueryTemplatePagination
257
+
258
+ params: Dict[str, object]
259
+
260
+
261
+ ExtractOptionsQueryTemplate: TypeAlias = Union[ExtractOptionsQueryTemplateTyped, Dict[str, object]]
262
+
263
+
264
+ class ExtractOptionsRenderOptionsHackiumConfiguration(TypedDict, total=False):
265
+ """Configuration for Hackium browser modifications"""
266
+
267
+ collect_logs: bool
268
+
269
+ do_not_fix_math_salt: bool
270
+
271
+ enable_document_element_spoof: bool
272
+
273
+ enable_document_has_focus: bool
274
+
275
+ enable_fake_navigation_history: bool
276
+
277
+ enable_key_ordering: bool
278
+
279
+ enable_sniffer: bool
280
+
281
+ enable_verbose_logs: bool
282
+
283
+
284
+ class ExtractOptionsRenderOptions(TypedDict, total=False):
285
+ adblock: bool
286
+ """Whether to enable ad blocking"""
287
+
288
+ blocked_domains: SequenceNotStr[str]
289
+ """Domains to block from loading"""
290
+
291
+ browser_engine: Union[Literal["chrome", "hackium", "firefox", "hackfox"], Dict[str, float]]
292
+ """Browser engine to use, or weighted distribution of engines"""
293
+
294
+ cache: bool
295
+ """Whether to enable browser caching"""
296
+
297
+ connector_type: Literal["puppeteer", "puppeteer-cdp", "puppeteer-bidi", "webit-cdp", "playwright"]
298
+ """Type of browser connector to use"""
299
+
300
+ disabled_resources: List[
301
+ Literal[
302
+ "other",
303
+ "document",
304
+ "stylesheet",
305
+ "image",
306
+ "media",
307
+ "font",
308
+ "script",
309
+ "texttrack",
310
+ "xhr",
311
+ "fetch",
312
+ "eventsource",
313
+ "websocket",
314
+ "manifest",
315
+ "signedexchange",
316
+ "ping",
317
+ "cspviolationreport",
318
+ "prefetch",
319
+ "preflight",
320
+ "fedcm",
321
+ ]
322
+ ]
323
+ """Types of resources to block from loading"""
324
+
325
+ enable_2captcha: bool
326
+ """Whether to use 2Captcha service for solving captchas"""
327
+
328
+ extensions: SequenceNotStr[str]
329
+ """Browser extensions to load"""
330
+
331
+ fingerprint_id: str
332
+ """Fingerprint identifier for browser customization"""
333
+
334
+ hackium_configuration: ExtractOptionsRenderOptionsHackiumConfiguration
335
+ """Configuration for Hackium browser modifications"""
336
+
337
+ headless: bool
338
+ """Whether to run browser in headless mode"""
339
+
340
+ include_iframes: bool
341
+ """Whether to include iframe content in the result"""
342
+
343
+ load_local_storage: bool
344
+ """Whether to load previously stored localStorage data"""
345
+
346
+ local_storage_keys_to_load: SequenceNotStr[str]
347
+ """Specific localStorage keys to load"""
348
+
349
+ mouse_strategy: Literal["linear", "ghost-cursor", "windmouse"]
350
+ """Strategy for simulating mouse movements"""
351
+
352
+ no_accept_encoding: bool
353
+ """Disable content encoding to avoid cached responses"""
354
+
355
+ override_permissions: bool
356
+ """Whether to override default browser permissions"""
357
+
358
+ random_header_order: bool
359
+ """Whether to randomize HTTP header order"""
360
+
361
+ render_type: Literal["domcontentloaded", "load", "idle0", "networkidle0", "idle2", "networkidle2", "navigate"]
362
+ """Type of render completion to wait for"""
363
+
364
+ store_local_storage: bool
365
+ """Whether to store localStorage data for future sessions"""
366
+
367
+ timeout: float
368
+ """Maximum time in milliseconds to wait for page render"""
369
+
370
+ typing_interval: float
371
+ """Interval in milliseconds between key presses"""
372
+
373
+ typing_strategy: Literal["simple", "distribution"]
374
+ """Strategy for simulating keyboard typing"""
375
+
376
+ userbrowser: bool
377
+ """Whether to use a persistent browser session"""
378
+
379
+ wait_until: Literal["load", "domcontentloaded", "idle0", "idle2", "networkidle0", "networkidle2", "navigate"]
380
+ """Browser event to wait for before considering page loaded"""
381
+
382
+ with_performance_metrics: bool
383
+ """Whether to collect performance metrics during rendering"""
384
+
385
+
386
+ class ExtractOptionsSession(TypedDict, total=False):
387
+ id: str
388
+
389
+ prefetch_userbrowser: bool
390
+
391
+ retry: bool
392
+
393
+ timeout: float
394
+
395
+
396
+ class ExtractOptionsTemplate(TypedDict, total=False):
397
+ """Userbrowser creation template configuration"""
398
+
399
+ name: Required[str]
400
+
401
+ params: Dict[str, object]
402
+
403
+
404
+ class ExtractOptionsUserbrowserCreationTemplateRendered(TypedDict, total=False):
405
+ """Pre-rendered userbrowser creation template configuration"""
406
+
407
+ id: Required[str]
408
+
409
+ allowed_parameter_names: Required[SequenceNotStr[str]]
410
+
411
+ render_flow_rendered: Required[Iterable[Dict[str, object]]]
412
+
413
+
414
+ class ExtractOptions(TypedDict, total=False):
415
+ debug_options: Required[ExtractOptionsDebugOptions]
416
+ """Debug and troubleshooting options for the request"""
417
+
418
+ url: Required[str]
419
+ """Target URL to scrape"""
420
+
421
+ browser: ExtractOptionsBrowser
422
+ """Browser type to emulate"""
423
+
424
+ city: str
425
+ """City for geolocation"""
426
+
427
+ client_timeout: float
428
+ """Client-side timeout in milliseconds"""
429
+
430
+ consent_header: bool
431
+ """Whether to automatically handle cookie consent headers"""
432
+
433
+ cookies: Union[Iterable[ExtractOptionsCookiesUnionMember0], str]
434
+ """Browser cookies as array of cookie objects"""
435
+
436
+ country: Literal[
437
+ "AD",
438
+ "AE",
439
+ "AF",
440
+ "AG",
441
+ "AI",
442
+ "AL",
443
+ "AM",
444
+ "AO",
445
+ "AQ",
446
+ "AR",
447
+ "AS",
448
+ "AT",
449
+ "AU",
450
+ "AW",
451
+ "AX",
452
+ "AZ",
453
+ "BA",
454
+ "BB",
455
+ "BD",
456
+ "BE",
457
+ "BF",
458
+ "BG",
459
+ "BH",
460
+ "BI",
461
+ "BJ",
462
+ "BL",
463
+ "BM",
464
+ "BN",
465
+ "BO",
466
+ "BQ",
467
+ "BR",
468
+ "BS",
469
+ "BT",
470
+ "BV",
471
+ "BW",
472
+ "BY",
473
+ "BZ",
474
+ "CA",
475
+ "CC",
476
+ "CD",
477
+ "CF",
478
+ "CG",
479
+ "CH",
480
+ "CI",
481
+ "CK",
482
+ "CL",
483
+ "CM",
484
+ "CN",
485
+ "CO",
486
+ "CR",
487
+ "CU",
488
+ "CV",
489
+ "CW",
490
+ "CX",
491
+ "CY",
492
+ "CZ",
493
+ "DE",
494
+ "DJ",
495
+ "DK",
496
+ "DM",
497
+ "DO",
498
+ "DZ",
499
+ "EC",
500
+ "EE",
501
+ "EG",
502
+ "EH",
503
+ "ER",
504
+ "ES",
505
+ "ET",
506
+ "FI",
507
+ "FJ",
508
+ "FK",
509
+ "FM",
510
+ "FO",
511
+ "FR",
512
+ "GA",
513
+ "GB",
514
+ "GD",
515
+ "GE",
516
+ "GF",
517
+ "GG",
518
+ "GH",
519
+ "GI",
520
+ "GL",
521
+ "GM",
522
+ "GN",
523
+ "GP",
524
+ "GQ",
525
+ "GR",
526
+ "GS",
527
+ "GT",
528
+ "GU",
529
+ "GW",
530
+ "GY",
531
+ "HK",
532
+ "HM",
533
+ "HN",
534
+ "HR",
535
+ "HT",
536
+ "HU",
537
+ "ID",
538
+ "IE",
539
+ "IL",
540
+ "IM",
541
+ "IN",
542
+ "IO",
543
+ "IQ",
544
+ "IR",
545
+ "IS",
546
+ "IT",
547
+ "JE",
548
+ "JM",
549
+ "JO",
550
+ "JP",
551
+ "KE",
552
+ "KG",
553
+ "KH",
554
+ "KI",
555
+ "KM",
556
+ "KN",
557
+ "KP",
558
+ "KR",
559
+ "KW",
560
+ "KY",
561
+ "KZ",
562
+ "LA",
563
+ "LB",
564
+ "LC",
565
+ "LI",
566
+ "LK",
567
+ "LR",
568
+ "LS",
569
+ "LT",
570
+ "LU",
571
+ "LV",
572
+ "LY",
573
+ "MA",
574
+ "MC",
575
+ "MD",
576
+ "ME",
577
+ "MF",
578
+ "MG",
579
+ "MH",
580
+ "MK",
581
+ "ML",
582
+ "MM",
583
+ "MN",
584
+ "MO",
585
+ "MP",
586
+ "MQ",
587
+ "MR",
588
+ "MS",
589
+ "MT",
590
+ "MU",
591
+ "MV",
592
+ "MW",
593
+ "MX",
594
+ "MY",
595
+ "MZ",
596
+ "NA",
597
+ "NC",
598
+ "NE",
599
+ "NF",
600
+ "NG",
601
+ "NI",
602
+ "NL",
603
+ "NO",
604
+ "NP",
605
+ "NR",
606
+ "NU",
607
+ "NZ",
608
+ "OM",
609
+ "PA",
610
+ "PE",
611
+ "PF",
612
+ "PG",
613
+ "PH",
614
+ "PK",
615
+ "PL",
616
+ "PM",
617
+ "PN",
618
+ "PR",
619
+ "PS",
620
+ "PT",
621
+ "PW",
622
+ "PY",
623
+ "QA",
624
+ "RE",
625
+ "RO",
626
+ "RS",
627
+ "RU",
628
+ "RW",
629
+ "SA",
630
+ "SB",
631
+ "SC",
632
+ "SD",
633
+ "SE",
634
+ "SG",
635
+ "SH",
636
+ "SI",
637
+ "SJ",
638
+ "SK",
639
+ "SL",
640
+ "SM",
641
+ "SN",
642
+ "SO",
643
+ "SR",
644
+ "SS",
645
+ "ST",
646
+ "SV",
647
+ "SX",
648
+ "SY",
649
+ "SZ",
650
+ "TC",
651
+ "TD",
652
+ "TF",
653
+ "TG",
654
+ "TH",
655
+ "TJ",
656
+ "TK",
657
+ "TL",
658
+ "TM",
659
+ "TN",
660
+ "TO",
661
+ "TR",
662
+ "TT",
663
+ "TV",
664
+ "TW",
665
+ "TZ",
666
+ "UA",
667
+ "UG",
668
+ "UM",
669
+ "US",
670
+ "UY",
671
+ "UZ",
672
+ "VA",
673
+ "VC",
674
+ "VE",
675
+ "VG",
676
+ "VI",
677
+ "VN",
678
+ "VU",
679
+ "WF",
680
+ "WS",
681
+ "XK",
682
+ "YE",
683
+ "YT",
684
+ "ZA",
685
+ "ZM",
686
+ "ZW",
687
+ "ALL",
688
+ ]
689
+ """Country code for geolocation and proxy selection"""
690
+
691
+ device: Literal["desktop", "mobile", "tablet"]
692
+ """Device type for browser emulation"""
693
+
694
+ disable_ip_check: bool
695
+ """Whether to disable IP address validation"""
696
+
697
+ driver: Literal["vx6", "vx8", "vx8-pro", "vx10", "vx10-pro", "vx12", "vx12-pro"]
698
+ """Browser driver to use"""
699
+
700
+ dynamic_parser: Dict[str, object]
701
+ """Custom parser configuration as a key-value map"""
702
+
703
+ expected_status_codes: Iterable[int]
704
+ """Expected HTTP status codes for successful requests"""
705
+
706
+ export_userbrowser: bool
707
+ """Whether to export the userbrowser session"""
708
+
709
+ format: Literal["json", "html", "csv", "raw", "json-lines", "markdown"]
710
+ """Response format"""
711
+
712
+ headers: Dict[str, Union[str, SequenceNotStr[str], None]]
713
+ """Custom HTTP headers to include in the request"""
714
+
715
+ http2: bool
716
+ """Whether to use HTTP/2 protocol"""
717
+
718
+ ip6: bool
719
+ """Whether to use IPv6 for the request"""
720
+
721
+ is_xhr: bool
722
+ """Whether to emulate XMLHttpRequest behavior"""
723
+
724
+ locale: Literal[
725
+ "aa-DJ",
726
+ "aa-ER",
727
+ "aa-ET",
728
+ "af",
729
+ "af-NA",
730
+ "af-ZA",
731
+ "ak",
732
+ "ak-GH",
733
+ "am",
734
+ "am-ET",
735
+ "an-ES",
736
+ "ar",
737
+ "ar-AE",
738
+ "ar-BH",
739
+ "ar-DZ",
740
+ "ar-EG",
741
+ "ar-IN",
742
+ "ar-IQ",
743
+ "ar-JO",
744
+ "ar-KW",
745
+ "ar-LB",
746
+ "ar-LY",
747
+ "ar-MA",
748
+ "ar-OM",
749
+ "ar-QA",
750
+ "ar-SA",
751
+ "ar-SD",
752
+ "ar-SY",
753
+ "ar-TN",
754
+ "ar-YE",
755
+ "as",
756
+ "as-IN",
757
+ "asa",
758
+ "asa-TZ",
759
+ "ast-ES",
760
+ "az",
761
+ "az-AZ",
762
+ "az-Cyrl",
763
+ "az-Cyrl-AZ",
764
+ "az-Latn",
765
+ "az-Latn-AZ",
766
+ "be",
767
+ "be-BY",
768
+ "bem",
769
+ "bem-ZM",
770
+ "ber-DZ",
771
+ "ber-MA",
772
+ "bez",
773
+ "bez-TZ",
774
+ "bg",
775
+ "bg-BG",
776
+ "bho-IN",
777
+ "bm",
778
+ "bm-ML",
779
+ "bn",
780
+ "bn-BD",
781
+ "bn-IN",
782
+ "bo",
783
+ "bo-CN",
784
+ "bo-IN",
785
+ "br-FR",
786
+ "brx-IN",
787
+ "bs",
788
+ "bs-BA",
789
+ "byn-ER",
790
+ "ca",
791
+ "ca-AD",
792
+ "ca-ES",
793
+ "ca-FR",
794
+ "ca-IT",
795
+ "cgg",
796
+ "cgg-UG",
797
+ "chr",
798
+ "chr-US",
799
+ "crh-UA",
800
+ "cs",
801
+ "cs-CZ",
802
+ "csb-PL",
803
+ "cv-RU",
804
+ "cy",
805
+ "cy-GB",
806
+ "da",
807
+ "da-DK",
808
+ "dav",
809
+ "dav-KE",
810
+ "de",
811
+ "de-AT",
812
+ "de-BE",
813
+ "de-CH",
814
+ "de-DE",
815
+ "de-LI",
816
+ "de-LU",
817
+ "dv-MV",
818
+ "dz-BT",
819
+ "ebu",
820
+ "ebu-KE",
821
+ "ee",
822
+ "ee-GH",
823
+ "ee-TG",
824
+ "el",
825
+ "el-CY",
826
+ "el-GR",
827
+ "en",
828
+ "en-AG",
829
+ "en-AS",
830
+ "en-AU",
831
+ "en-BE",
832
+ "en-BW",
833
+ "en-BZ",
834
+ "en-CA",
835
+ "en-DK",
836
+ "en-GB",
837
+ "en-GU",
838
+ "en-HK",
839
+ "en-IE",
840
+ "en-IN",
841
+ "en-JM",
842
+ "en-MH",
843
+ "en-MP",
844
+ "en-MT",
845
+ "en-MU",
846
+ "en-NA",
847
+ "en-NG",
848
+ "en-NZ",
849
+ "en-PH",
850
+ "en-PK",
851
+ "en-SG",
852
+ "en-TT",
853
+ "en-UM",
854
+ "en-US",
855
+ "en-VI",
856
+ "en-ZA",
857
+ "en-ZM",
858
+ "en-ZW",
859
+ "eo",
860
+ "es",
861
+ "es-419",
862
+ "es-AR",
863
+ "es-BO",
864
+ "es-CL",
865
+ "es-CO",
866
+ "es-CR",
867
+ "es-CU",
868
+ "es-DO",
869
+ "es-EC",
870
+ "es-ES",
871
+ "es-GQ",
872
+ "es-GT",
873
+ "es-HN",
874
+ "es-MX",
875
+ "es-NI",
876
+ "es-PA",
877
+ "es-PE",
878
+ "es-PR",
879
+ "es-PY",
880
+ "es-SV",
881
+ "es-US",
882
+ "es-UY",
883
+ "es-VE",
884
+ "et",
885
+ "et-EE",
886
+ "eu",
887
+ "eu-ES",
888
+ "fa",
889
+ "fa-AF",
890
+ "fa-IR",
891
+ "ff",
892
+ "ff-SN",
893
+ "fi",
894
+ "fi-FI",
895
+ "fil",
896
+ "fil-PH",
897
+ "fo",
898
+ "fo-FO",
899
+ "fr",
900
+ "fr-BE",
901
+ "fr-BF",
902
+ "fr-BI",
903
+ "fr-BJ",
904
+ "fr-BL",
905
+ "fr-CA",
906
+ "fr-CD",
907
+ "fr-CF",
908
+ "fr-CG",
909
+ "fr-CH",
910
+ "fr-CI",
911
+ "fr-CM",
912
+ "fr-DJ",
913
+ "fr-FR",
914
+ "fr-GA",
915
+ "fr-GN",
916
+ "fr-GP",
917
+ "fr-GQ",
918
+ "fr-KM",
919
+ "fr-LU",
920
+ "fr-MC",
921
+ "fr-MF",
922
+ "fr-MG",
923
+ "fr-ML",
924
+ "fr-MQ",
925
+ "fr-NE",
926
+ "fr-RE",
927
+ "fr-RW",
928
+ "fr-SN",
929
+ "fr-TD",
930
+ "fr-TG",
931
+ "fur-IT",
932
+ "fy-DE",
933
+ "fy-NL",
934
+ "ga",
935
+ "ga-IE",
936
+ "gd-GB",
937
+ "gez-ER",
938
+ "gez-ET",
939
+ "gl",
940
+ "gl-ES",
941
+ "gsw",
942
+ "gsw-CH",
943
+ "gu",
944
+ "gu-IN",
945
+ "guz",
946
+ "guz-KE",
947
+ "gv",
948
+ "gv-GB",
949
+ "ha",
950
+ "ha-Latn",
951
+ "ha-Latn-GH",
952
+ "ha-Latn-NE",
953
+ "ha-Latn-NG",
954
+ "ha-NG",
955
+ "haw",
956
+ "haw-US",
957
+ "he",
958
+ "he-IL",
959
+ "hi",
960
+ "hi-IN",
961
+ "hne-IN",
962
+ "hr",
963
+ "hr-HR",
964
+ "hsb-DE",
965
+ "ht-HT",
966
+ "hu",
967
+ "hu-HU",
968
+ "hy",
969
+ "hy-AM",
970
+ "id",
971
+ "id-ID",
972
+ "ig",
973
+ "ig-NG",
974
+ "ii",
975
+ "ii-CN",
976
+ "ik-CA",
977
+ "is",
978
+ "is-IS",
979
+ "it",
980
+ "it-CH",
981
+ "it-IT",
982
+ "iu-CA",
983
+ "iw-IL",
984
+ "ja",
985
+ "ja-JP",
986
+ "jmc",
987
+ "jmc-TZ",
988
+ "ka",
989
+ "ka-GE",
990
+ "kab",
991
+ "kab-DZ",
992
+ "kam",
993
+ "kam-KE",
994
+ "kde",
995
+ "kde-TZ",
996
+ "kea",
997
+ "kea-CV",
998
+ "khq",
999
+ "khq-ML",
1000
+ "ki",
1001
+ "ki-KE",
1002
+ "kk",
1003
+ "kk-Cyrl",
1004
+ "kk-Cyrl-KZ",
1005
+ "kk-KZ",
1006
+ "kl",
1007
+ "kl-GL",
1008
+ "kln",
1009
+ "kln-KE",
1010
+ "km",
1011
+ "km-KH",
1012
+ "kn",
1013
+ "kn-IN",
1014
+ "ko",
1015
+ "ko-KR",
1016
+ "kok",
1017
+ "kok-IN",
1018
+ "ks-IN",
1019
+ "ku-TR",
1020
+ "kw",
1021
+ "kw-GB",
1022
+ "ky-KG",
1023
+ "lag",
1024
+ "lag-TZ",
1025
+ "lb-LU",
1026
+ "lg",
1027
+ "lg-UG",
1028
+ "li-BE",
1029
+ "li-NL",
1030
+ "lij-IT",
1031
+ "lo-LA",
1032
+ "lt",
1033
+ "lt-LT",
1034
+ "luo",
1035
+ "luo-KE",
1036
+ "luy",
1037
+ "luy-KE",
1038
+ "lv",
1039
+ "lv-LV",
1040
+ "mag-IN",
1041
+ "mai-IN",
1042
+ "mas",
1043
+ "mas-KE",
1044
+ "mas-TZ",
1045
+ "mer",
1046
+ "mer-KE",
1047
+ "mfe",
1048
+ "mfe-MU",
1049
+ "mg",
1050
+ "mg-MG",
1051
+ "mhr-RU",
1052
+ "mi-NZ",
1053
+ "mk",
1054
+ "mk-MK",
1055
+ "ml",
1056
+ "ml-IN",
1057
+ "mn-MN",
1058
+ "mr",
1059
+ "mr-IN",
1060
+ "ms",
1061
+ "ms-BN",
1062
+ "ms-MY",
1063
+ "mt",
1064
+ "mt-MT",
1065
+ "my",
1066
+ "my-MM",
1067
+ "nan-TW",
1068
+ "naq",
1069
+ "naq-NA",
1070
+ "nb",
1071
+ "nb-NO",
1072
+ "nd",
1073
+ "nd-ZW",
1074
+ "nds-DE",
1075
+ "nds-NL",
1076
+ "ne",
1077
+ "ne-IN",
1078
+ "ne-NP",
1079
+ "nl",
1080
+ "nl-AW",
1081
+ "nl-BE",
1082
+ "nl-NL",
1083
+ "nn",
1084
+ "nn-NO",
1085
+ "nr-ZA",
1086
+ "nso-ZA",
1087
+ "nyn",
1088
+ "nyn-UG",
1089
+ "oc-FR",
1090
+ "om",
1091
+ "om-ET",
1092
+ "om-KE",
1093
+ "or",
1094
+ "or-IN",
1095
+ "os-RU",
1096
+ "pa",
1097
+ "pa-Arab",
1098
+ "pa-Arab-PK",
1099
+ "pa-Guru",
1100
+ "pa-Guru-IN",
1101
+ "pa-IN",
1102
+ "pa-PK",
1103
+ "pap-AN",
1104
+ "pl",
1105
+ "pl-PL",
1106
+ "ps",
1107
+ "ps-AF",
1108
+ "pt",
1109
+ "pt-BR",
1110
+ "pt-GW",
1111
+ "pt-MZ",
1112
+ "pt-PT",
1113
+ "rm",
1114
+ "rm-CH",
1115
+ "ro",
1116
+ "ro-MD",
1117
+ "ro-RO",
1118
+ "rof",
1119
+ "rof-TZ",
1120
+ "ru",
1121
+ "ru-MD",
1122
+ "ru-RU",
1123
+ "ru-UA",
1124
+ "rw",
1125
+ "rw-RW",
1126
+ "rwk",
1127
+ "rwk-TZ",
1128
+ "sa-IN",
1129
+ "saq",
1130
+ "saq-KE",
1131
+ "sc-IT",
1132
+ "sd-IN",
1133
+ "se-NO",
1134
+ "seh",
1135
+ "seh-MZ",
1136
+ "ses",
1137
+ "ses-ML",
1138
+ "sg",
1139
+ "sg-CF",
1140
+ "shi",
1141
+ "shi-Latn",
1142
+ "shi-Latn-MA",
1143
+ "shi-Tfng",
1144
+ "shi-Tfng-MA",
1145
+ "shs-CA",
1146
+ "si",
1147
+ "si-LK",
1148
+ "sid-ET",
1149
+ "sk",
1150
+ "sk-SK",
1151
+ "sl",
1152
+ "sl-SI",
1153
+ "sn",
1154
+ "sn-ZW",
1155
+ "so",
1156
+ "so-DJ",
1157
+ "so-ET",
1158
+ "so-KE",
1159
+ "so-SO",
1160
+ "sq",
1161
+ "sq-AL",
1162
+ "sq-MK",
1163
+ "sr",
1164
+ "sr-Cyrl",
1165
+ "sr-Cyrl-BA",
1166
+ "sr-Cyrl-ME",
1167
+ "sr-Cyrl-RS",
1168
+ "sr-Latn",
1169
+ "sr-Latn-BA",
1170
+ "sr-Latn-ME",
1171
+ "sr-Latn-RS",
1172
+ "sr-ME",
1173
+ "sr-RS",
1174
+ "ss-ZA",
1175
+ "st-ZA",
1176
+ "sv",
1177
+ "sv-FI",
1178
+ "sv-SE",
1179
+ "sw",
1180
+ "sw-KE",
1181
+ "sw-TZ",
1182
+ "ta",
1183
+ "ta-IN",
1184
+ "ta-LK",
1185
+ "te",
1186
+ "te-IN",
1187
+ "teo",
1188
+ "teo-KE",
1189
+ "teo-UG",
1190
+ "tg-TJ",
1191
+ "th",
1192
+ "th-TH",
1193
+ "ti",
1194
+ "ti-ER",
1195
+ "ti-ET",
1196
+ "tig-ER",
1197
+ "tk-TM",
1198
+ "tl-PH",
1199
+ "tn-ZA",
1200
+ "to",
1201
+ "to-TO",
1202
+ "tr",
1203
+ "tr-CY",
1204
+ "tr-TR",
1205
+ "ts-ZA",
1206
+ "tt-RU",
1207
+ "tzm",
1208
+ "tzm-Latn",
1209
+ "tzm-Latn-MA",
1210
+ "ug-CN",
1211
+ "uk",
1212
+ "uk-UA",
1213
+ "unm-US",
1214
+ "ur",
1215
+ "ur-IN",
1216
+ "ur-PK",
1217
+ "uz",
1218
+ "uz-Arab",
1219
+ "uz-Arab-AF",
1220
+ "uz-Cyrl",
1221
+ "uz-Cyrl-UZ",
1222
+ "uz-Latn",
1223
+ "uz-Latn-UZ",
1224
+ "uz-UZ",
1225
+ "ve-ZA",
1226
+ "vi",
1227
+ "vi-VN",
1228
+ "vun",
1229
+ "vun-TZ",
1230
+ "wa-BE",
1231
+ "wae-CH",
1232
+ "wal-ET",
1233
+ "wo-SN",
1234
+ "xh-ZA",
1235
+ "xog",
1236
+ "xog-UG",
1237
+ "yi-US",
1238
+ "yo",
1239
+ "yo-NG",
1240
+ "yue-HK",
1241
+ "zh",
1242
+ "zh-CN",
1243
+ "zh-HK",
1244
+ "zh-Hans",
1245
+ "zh-Hans-CN",
1246
+ "zh-Hans-HK",
1247
+ "zh-Hans-MO",
1248
+ "zh-Hans-SG",
1249
+ "zh-Hant",
1250
+ "zh-Hant-HK",
1251
+ "zh-Hant-MO",
1252
+ "zh-Hant-TW",
1253
+ "zh-SG",
1254
+ "zh-TW",
1255
+ "zu",
1256
+ "zu-ZA",
1257
+ "auto",
1258
+ ]
1259
+ """Locale for browser language and region settings"""
1260
+
1261
+ markdown: bool
1262
+ """Whether to return response in Markdown format"""
1263
+
1264
+ metadata: ExtractOptionsMetadata
1265
+ """Structured metadata about the request execution context"""
1266
+
1267
+ method: Literal["GET", "POST", "PUT", "PATCH", "DELETE"]
1268
+ """HTTP method for the request"""
1269
+
1270
+ native_mode: Literal["requester", "apm", "direct"]
1271
+ """Native execution mode"""
1272
+
1273
+ network_capture: Iterable[ExtractOptionsNetworkCapture]
1274
+ """Filters for capturing network traffic"""
1275
+
1276
+ no_html: bool
1277
+ """Whether to exclude HTML from the response"""
1278
+
1279
+ no_userbrowser: bool
1280
+ """Whether to disable browser-based rendering"""
1281
+
1282
+ os: Literal["windows", "mac os", "linux", "android", "ios"]
1283
+ """Operating system to emulate"""
1284
+
1285
+ parse: bool
1286
+ """Whether to parse the response content"""
1287
+
1288
+ parse_options: ExtractOptionsParseOptions
1289
+ """Configuration options for parsing behavior"""
1290
+
1291
+ parser: Union[Dict[str, object], str]
1292
+ """Custom parser configuration as a key-value map"""
1293
+
1294
+ proxy_provider: Literal[
1295
+ "brightdata",
1296
+ "oxylabs",
1297
+ "smartproxy",
1298
+ "proxit",
1299
+ "proxit_preprod",
1300
+ "local",
1301
+ "rayobyte",
1302
+ "always",
1303
+ "oculusproxies",
1304
+ "froxy",
1305
+ "packetstream",
1306
+ "911proxy",
1307
+ "direct911proxy",
1308
+ "thesocialproxy",
1309
+ "thesocialproxy2",
1310
+ "nimble-isp",
1311
+ "nimble-isp-mobile",
1312
+ "proxit-linux",
1313
+ "proxit-macos",
1314
+ "proxit-windows",
1315
+ "proxit-rental",
1316
+ "ipfoxy",
1317
+ "brightup",
1318
+ "research",
1319
+ ]
1320
+ """Proxy provider to use for the request"""
1321
+
1322
+ proxy_providers: Dict[str, float]
1323
+ """Weighted distribution of proxy providers"""
1324
+
1325
+ query_template: ExtractOptionsQueryTemplate
1326
+ """Query template configuration for structured data extraction"""
1327
+
1328
+ raw_headers: bool
1329
+ """Whether to return raw HTTP headers in response"""
1330
+
1331
+ referrer_type: Literal["random", "no-referer", "same-origin", "google", "bing", "facebook", "twitter", "instagram"]
1332
+ """Referrer policy for the request"""
1333
+
1334
+ render: bool
1335
+ """Whether to render JavaScript content using a browser"""
1336
+
1337
+ render_flow: Iterable[Dict[str, object]]
1338
+ """Array of actions to perform during browser rendering"""
1339
+
1340
+ render_options: ExtractOptionsRenderOptions
1341
+
1342
+ request_timeout: float
1343
+ """Request timeout in milliseconds"""
1344
+
1345
+ return_response_headers_as_header: bool
1346
+ """Whether to return response headers in HTTP headers"""
1347
+
1348
+ save_userbrowser: bool
1349
+ """Whether to save the userbrowser session for reuse"""
1350
+
1351
+ session: ExtractOptionsSession
1352
+
1353
+ skill: Union[str, SequenceNotStr[str]]
1354
+ """Skills or capabilities required for the request"""
1355
+
1356
+ skip_ubct: bool
1357
+ """Whether to skip userbrowser creation template processing"""
1358
+
1359
+ state: Literal[
1360
+ "AL",
1361
+ "AK",
1362
+ "AS",
1363
+ "AZ",
1364
+ "AR",
1365
+ "CA",
1366
+ "CO",
1367
+ "CT",
1368
+ "DE",
1369
+ "DC",
1370
+ "FL",
1371
+ "GA",
1372
+ "GU",
1373
+ "HI",
1374
+ "ID",
1375
+ "IL",
1376
+ "IN",
1377
+ "IA",
1378
+ "KS",
1379
+ "KY",
1380
+ "LA",
1381
+ "ME",
1382
+ "MD",
1383
+ "MA",
1384
+ "MI",
1385
+ "MN",
1386
+ "MS",
1387
+ "MO",
1388
+ "MT",
1389
+ "NE",
1390
+ "NV",
1391
+ "NH",
1392
+ "NJ",
1393
+ "NM",
1394
+ "NY",
1395
+ "NC",
1396
+ "ND",
1397
+ "MP",
1398
+ "OH",
1399
+ "OK",
1400
+ "OR",
1401
+ "PA",
1402
+ "PR",
1403
+ "RI",
1404
+ "SC",
1405
+ "SD",
1406
+ "TN",
1407
+ "TX",
1408
+ "UT",
1409
+ "VT",
1410
+ "VA",
1411
+ "VI",
1412
+ "WA",
1413
+ "WV",
1414
+ "WI",
1415
+ "WY",
1416
+ ]
1417
+ """US state for geolocation (only valid when country is US)"""
1418
+
1419
+ tag: str
1420
+ """User-defined tag for request identification"""
1421
+
1422
+ template: ExtractOptionsTemplate
1423
+ """Userbrowser creation template configuration"""
1424
+
1425
+ type: str
1426
+ """Type of query or scraping template"""
1427
+
1428
+ userbrowser_creation_template_rendered: ExtractOptionsUserbrowserCreationTemplateRendered
1429
+ """Pre-rendered userbrowser creation template configuration"""