@apifreaks/openapi-specs 0.1.0 → 0.1.2

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 (108) hide show
  1. package/dist/index.cjs +133 -2
  2. package/dist/index.d.cts +140 -3
  3. package/dist/index.d.ts +140 -3
  4. package/dist/index.js +131 -2
  5. package/dist/specs/commodity/commodity-fluctuation.yaml +225 -0
  6. package/dist/specs/commodity/commodity-prices.yaml +236 -0
  7. package/dist/specs/commodity/commodity-symbols.yaml +159 -0
  8. package/dist/specs/commodity/commodity-time-series.yaml +238 -0
  9. package/dist/specs/commodity/historical-commodity-prices.yaml +208 -0
  10. package/dist/specs/currency/currency-converter.yaml +193 -0
  11. package/dist/specs/currency/currency-fluctuation.yaml +211 -0
  12. package/dist/specs/currency/currency-historical-data-limit.yaml +112 -0
  13. package/dist/specs/currency/currency-rate.yaml +173 -0
  14. package/dist/specs/currency/currency-supported.yaml +176 -0
  15. package/dist/specs/currency/currency-symbols.yaml +115 -0
  16. package/dist/specs/currency/currency-time-series.yaml +232 -0
  17. package/dist/specs/currency/geolocalized-currency-conversion.yaml +214 -0
  18. package/dist/specs/currency/historical-currency-converter.yaml +195 -0
  19. package/dist/specs/currency/historical-currency-rate.yaml +180 -0
  20. package/dist/specs/dns/bulk-dns-lookup.yaml +484 -0
  21. package/dist/specs/dns/dns-history-lookup.yaml +451 -0
  22. package/dist/specs/dns/dns-lookup.yaml +360 -0
  23. package/dist/specs/dns/reverse-dns-lookup.yaml +338 -0
  24. package/dist/specs/domain/bulk-domain-checker.yaml +198 -0
  25. package/dist/specs/domain/domain-search-with-suggestions.yaml +196 -0
  26. package/dist/specs/domain/domain-search.yaml +149 -0
  27. package/dist/specs/domain/subdomain-lookup.yaml +251 -0
  28. package/dist/specs/email-validation/bulk-email-validation.yaml +403 -0
  29. package/dist/specs/email-validation/email-checker.yaml +451 -0
  30. package/dist/specs/financial/bulk-vat-rates-country.yaml +250 -0
  31. package/dist/specs/financial/financial-apis-supported-countries.yaml +152 -0
  32. package/dist/specs/financial/iban-validation.yaml +270 -0
  33. package/dist/specs/financial/swift-code-finder.yaml +146 -0
  34. package/dist/specs/financial/swift-code-lookup.yaml +156 -0
  35. package/dist/specs/financial/vat-number-validation.yaml +205 -0
  36. package/dist/specs/financial/vat-rates-by-ip.yaml +200 -0
  37. package/dist/specs/financial/vat-rates-country.yaml +212 -0
  38. package/dist/specs/general/usage-credits.yaml +188 -0
  39. package/dist/specs/geocoding/forward-geocoding.yaml +292 -0
  40. package/dist/specs/geocoding/reverse-geocoding.yaml +237 -0
  41. package/dist/specs/geodb/administrative-units-details.yaml +180 -0
  42. package/dist/specs/geodb/administrative-units-levels.yaml +140 -0
  43. package/dist/specs/geodb/administrative-units.yaml +168 -0
  44. package/dist/specs/geodb/cities.yaml +209 -0
  45. package/dist/specs/geodb/countries-details.yaml +207 -0
  46. package/dist/specs/geodb/countries.yaml +199 -0
  47. package/dist/specs/geodb/flags-supported.yaml +119 -0
  48. package/dist/specs/geodb/flags.yaml +170 -0
  49. package/dist/specs/geodb/regions.yaml +76 -0
  50. package/dist/specs/geodb/subregions.yaml +158 -0
  51. package/dist/specs/ip-intelligence/bulk-ip-lookup.yaml +895 -0
  52. package/dist/specs/ip-intelligence/bulk-ip-threat-intelligence.yaml +310 -0
  53. package/dist/specs/ip-intelligence/ip-locator.yaml +708 -0
  54. package/dist/specs/ip-intelligence/ip-threat-intelligence.yaml +230 -0
  55. package/dist/specs/other/astronomy-data.yaml +632 -0
  56. package/dist/specs/pdf/delete-pdf-page.yaml +193 -0
  57. package/dist/specs/pdf/linearize-pdf.yaml +187 -0
  58. package/dist/specs/pdf/merge-pdf.yaml +193 -0
  59. package/dist/specs/pdf/pdf-compress.yaml +208 -0
  60. package/dist/specs/pdf/pdf-decrypt.yaml +202 -0
  61. package/dist/specs/pdf/pdf-encrypt.yaml +213 -0
  62. package/dist/specs/pdf/pdf-extract-pages.yaml +199 -0
  63. package/dist/specs/pdf/pdf-file-status.yaml +148 -0
  64. package/dist/specs/pdf/pdf-file.yaml +136 -0
  65. package/dist/specs/pdf/pdf-files.yaml +85 -0
  66. package/dist/specs/pdf/pdf-resource-download.yaml +117 -0
  67. package/dist/specs/pdf/pdf-resource-upload-binary.yaml +152 -0
  68. package/dist/specs/pdf/pdf-resource-upload.yaml +163 -0
  69. package/dist/specs/pdf/pdf-restrict.yaml +246 -0
  70. package/dist/specs/pdf/pdf-split-pages.yaml +208 -0
  71. package/dist/specs/pdf/pdf-task-status.yaml +187 -0
  72. package/dist/specs/pdf/pdf-to-image.yaml +844 -0
  73. package/dist/specs/pdf/pdf-unrestrict.yaml +221 -0
  74. package/dist/specs/pdf/rotate-pdf-pages.yaml +207 -0
  75. package/dist/specs/phone-validation/bulk-phone-number-validation.yaml +374 -0
  76. package/dist/specs/phone-validation/phone-number-validation.yaml +344 -0
  77. package/dist/specs/scraper/web-scraper.yaml +479 -0
  78. package/dist/specs/screenshot/bulk-screenshot.yaml +728 -0
  79. package/dist/specs/screenshot/website-screenshot.yaml +822 -0
  80. package/dist/specs/ssl/ssl-certificate-chain-lookup.yaml +593 -0
  81. package/dist/specs/ssl/ssl-certificate-lookup.yaml +478 -0
  82. package/dist/specs/timezone/timezone-converter.yaml +249 -0
  83. package/dist/specs/timezone/timezone-lookup.yaml +712 -0
  84. package/dist/specs/user-agent/bulk-user-agent-parser.yaml +340 -0
  85. package/dist/specs/user-agent/user-agent-parser.yaml +271 -0
  86. package/dist/specs/weather/air-quality.yaml +590 -0
  87. package/dist/specs/weather/bulk-live-weather.yaml +654 -0
  88. package/dist/specs/weather/flood-forecast.yaml +519 -0
  89. package/dist/specs/weather/historical-weather.yaml +842 -0
  90. package/dist/specs/weather/live-weather.yaml +633 -0
  91. package/dist/specs/weather/marine-weather.yaml +806 -0
  92. package/dist/specs/weather/time-series-weather.yaml +821 -0
  93. package/dist/specs/weather/weather-forecast.yaml +935 -0
  94. package/dist/specs/whois/asn-lookup.yaml +618 -0
  95. package/dist/specs/whois/bulk-whois-lookup.yaml +827 -0
  96. package/dist/specs/whois/domain-whois-history-lookup.yaml +445 -0
  97. package/dist/specs/whois/reverse-whois.yaml +566 -0
  98. package/dist/specs/whois/whois-domain-lookup.yaml +537 -0
  99. package/dist/specs/whois/whois-ip-lookup.yaml +1123 -0
  100. package/dist/specs/zip-code/bulk-zip-code-lookup.yaml +232 -0
  101. package/dist/specs/zip-code/zip-code-api.yaml +216 -0
  102. package/dist/specs/zip-code/zip-code-distance-match.yaml +239 -0
  103. package/dist/specs/zip-code/zip-code-distance.yaml +233 -0
  104. package/dist/specs/zip-code/zip-codes-by-city.yaml +201 -0
  105. package/dist/specs/zip-code/zip-codes-by-region.yaml +200 -0
  106. package/dist/specs/zip-code/zip-codes-radius-search.yaml +262 -0
  107. package/package.json +6 -2
  108. package/specs/pdf/merge-pdf.json +2 -2
@@ -0,0 +1,822 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: Website Screenshot API - Full-Page Captures, Scrolling Video & PDF Output
4
+ version: 1.0.0
5
+ description: Capture full-page screenshots and videos of websites with advanced options like device simulation, custom code injection, cookie banner blocking, and scrollable content recording. Supports multiple output formats including PNG, JPEG, WebP, PDF, MP4, GIF, and WebM. Returns a screenshot URL, timestamps, format metadata, and all echoed parameters. Returns a 400 error for an invalid or missing url, and a 408 error if the capture exceeds the configured timeout.
6
+ contact:
7
+ name: APIFreaks Support
8
+ url: https://apifreaks.com/contact
9
+ email: support@apifreaks.com
10
+ servers:
11
+ - url: https://api.apifreaks.com/v1.0
12
+ description: Website Screenshot API Server
13
+ paths:
14
+ /screenshot:
15
+ get:
16
+ tags:
17
+ - Screenshot APIs
18
+ summary: Build screenshots the way real users see the web — not just what fits on the screen.
19
+ description: |
20
+ Capture full-page screenshots and videos of websites with advanced options like device simulation, custom code injection, cookie banner blocking, and scrollable content recording.
21
+ Supports multiple output formats including JSON, image, GIF, MP4, and WebM.
22
+ operationId: websiteScreenshot
23
+ parameters:
24
+ - name: format
25
+ in: query
26
+ required: false
27
+ schema:
28
+ type: string
29
+ enum:
30
+ - json
31
+ default: json
32
+ description: 'Response format: ''json''.'
33
+ - name: output
34
+ in: query
35
+ required: false
36
+ schema:
37
+ type: string
38
+ enum:
39
+ - json
40
+ - image
41
+ description: Output format for screenshot results
42
+ - name: file_type
43
+ in: query
44
+ required: false
45
+ schema:
46
+ type: string
47
+ enum:
48
+ - PNG
49
+ - JPEG
50
+ - WEBP
51
+ - PDF
52
+ - mp4
53
+ - gif
54
+ - webm
55
+ description: File type for screenshot output
56
+ - name: url
57
+ in: query
58
+ required: true
59
+ schema:
60
+ type: string
61
+ description: URLs to capture screenshots of
62
+ - name: width
63
+ in: query
64
+ required: false
65
+ schema:
66
+ type: integer
67
+ description: Browser viewport width in pixels
68
+ - name: height
69
+ in: query
70
+ required: false
71
+ schema:
72
+ type: integer
73
+ description: Browser viewport height in pixels
74
+ - name: full_page
75
+ in: query
76
+ required: false
77
+ schema:
78
+ type: boolean
79
+ description: Capture a full-page screenshot
80
+ - name: fresh
81
+ in: query
82
+ required: false
83
+ schema:
84
+ type: boolean
85
+ description: Bypass cache and take a fresh screenshot
86
+ - name: no_cookie_banners
87
+ in: query
88
+ required: false
89
+ schema:
90
+ type: boolean
91
+ description: Remove cookie banners from the screenshot
92
+ - name: enable_caching
93
+ in: query
94
+ required: false
95
+ schema:
96
+ type: boolean
97
+ description: Enable caching for repeated requests
98
+ - name: block_ads
99
+ in: query
100
+ required: false
101
+ schema:
102
+ type: boolean
103
+ description: Block advertisements on the page
104
+ - name: block_chat_widgets
105
+ in: query
106
+ required: false
107
+ schema:
108
+ type: boolean
109
+ description: Block chat widget scripts from loading
110
+ - name: extract_text
111
+ in: query
112
+ required: false
113
+ schema:
114
+ type: boolean
115
+ description: Extract visible text from the page
116
+ - name: extract_html
117
+ in: query
118
+ required: false
119
+ schema:
120
+ type: boolean
121
+ description: Extract HTML content of the page
122
+ - name: destroy_screenshot
123
+ in: query
124
+ required: false
125
+ schema:
126
+ type: boolean
127
+ description: Auto-destroy screenshot after fetch
128
+ - name: lazy_load
129
+ in: query
130
+ required: false
131
+ schema:
132
+ type: boolean
133
+ description: Enable lazy-loading content before screenshot
134
+ - name: retina
135
+ in: query
136
+ required: false
137
+ schema:
138
+ type: boolean
139
+ description: Capture screenshot in high-DPI (Retina) mode
140
+ - name: dark_mode
141
+ in: query
142
+ required: false
143
+ schema:
144
+ type: boolean
145
+ description: Render page in dark mode
146
+ - name: block_tracking
147
+ in: query
148
+ required: false
149
+ schema:
150
+ type: boolean
151
+ description: Block common user-tracking scripts
152
+ - name: enable_incognito
153
+ in: query
154
+ required: false
155
+ schema:
156
+ type: boolean
157
+ description: Enable private/incognito mode for browser session
158
+ - name: omit_background
159
+ in: query
160
+ required: false
161
+ schema:
162
+ type: boolean
163
+ description: Omit background color (transparent background)
164
+ - name: thumbnail_width
165
+ in: query
166
+ required: false
167
+ schema:
168
+ type: integer
169
+ description: Thumbnail width in pixels
170
+ - name: adjust_top
171
+ in: query
172
+ required: false
173
+ schema:
174
+ type: integer
175
+ description: Adjust top in pixels
176
+ - name: wait_for_event
177
+ in: query
178
+ required: false
179
+ schema:
180
+ type: string
181
+ enum:
182
+ - load
183
+ - domcontentloaded
184
+ - networkidle
185
+ description: Wait for a specific load event before capturing the screenshot.
186
+ - name: grayscale
187
+ in: query
188
+ required: false
189
+ schema:
190
+ type: integer
191
+ description: Range:0 to 100 for grayscale filter
192
+ - name: delay
193
+ in: query
194
+ required: false
195
+ schema:
196
+ type: integer
197
+ description: How many milliseconds to wait before taking the screenshot
198
+ - name: timeout
199
+ in: query
200
+ required: false
201
+ schema:
202
+ type: integer
203
+ description: Maximum timeout in milliseconds. Defalut is `10,000`
204
+ - name: ttl
205
+ in: query
206
+ required: false
207
+ schema:
208
+ type: integer
209
+ description: Number of seconds the screenshot should be cached
210
+ - name: clip[x]
211
+ in: query
212
+ required: false
213
+ schema:
214
+ type: integer
215
+ description: X position of the clipping rectangle in pixels
216
+ - name: clip[y]
217
+ in: query
218
+ required: false
219
+ schema:
220
+ type: integer
221
+ description: Y position of the clipping rectangle in pixels
222
+ - name: clip[width]
223
+ in: query
224
+ required: false
225
+ schema:
226
+ type: integer
227
+ description: Width of the clipping rectangle in pixels
228
+ - name: clip[height]
229
+ in: query
230
+ required: false
231
+ schema:
232
+ type: integer
233
+ description: Height of the clipping rectangle in pixels
234
+ - name: css_url
235
+ in: query
236
+ required: false
237
+ schema:
238
+ type: string
239
+ description: URL to CSS file
240
+ - name: css
241
+ in: query
242
+ required: false
243
+ schema:
244
+ type: string
245
+ description: Your custom CSS code
246
+ - name: js_url
247
+ in: query
248
+ required: false
249
+ schema:
250
+ type: string
251
+ description: URL to JS file
252
+ - name: js
253
+ in: query
254
+ required: false
255
+ schema:
256
+ type: string
257
+ description: Your JS code
258
+ - name: block_js
259
+ in: query
260
+ required: false
261
+ schema:
262
+ type: boolean
263
+ description: Block Scripts
264
+ - name: block_stylesheets
265
+ in: query
266
+ required: false
267
+ schema:
268
+ type: boolean
269
+ description: Block Stylesheets
270
+ - name: block_images
271
+ in: query
272
+ required: false
273
+ schema:
274
+ type: boolean
275
+ description: Block Images
276
+ - name: block_media
277
+ in: query
278
+ required: false
279
+ schema:
280
+ type: boolean
281
+ description: Block Media
282
+ - name: block_font
283
+ in: query
284
+ required: false
285
+ schema:
286
+ type: boolean
287
+ description: Block Fonts
288
+ - name: block_text_track
289
+ in: query
290
+ required: false
291
+ schema:
292
+ type: boolean
293
+ description: Block Text Tracks
294
+ - name: block_xhr
295
+ in: query
296
+ required: false
297
+ schema:
298
+ type: boolean
299
+ description: Block XHR Requests
300
+ - name: block_fetch
301
+ in: query
302
+ required: false
303
+ schema:
304
+ type: boolean
305
+ description: Block Fetch Requests
306
+ - name: block_event_source
307
+ in: query
308
+ required: false
309
+ schema:
310
+ type: boolean
311
+ description: Block Event Source
312
+ - name: block_web_socket
313
+ in: query
314
+ required: false
315
+ schema:
316
+ type: boolean
317
+ description: Block Web Sockets
318
+ - name: block_manifest
319
+ in: query
320
+ required: false
321
+ schema:
322
+ type: boolean
323
+ description: Block Manifest
324
+ - name: block_specific_requests
325
+ in: query
326
+ required: false
327
+ schema:
328
+ type: string
329
+ description: 'Comma- or newline-separated list of specific requests to block. Each line and comma are treated as separate requests for processing. Example: https://example.com, https://example.js'
330
+ - name: blur_selector
331
+ in: query
332
+ required: false
333
+ style: form
334
+ explode: false
335
+ schema:
336
+ type: string
337
+ description: 'Comma-separated list of indexed CSS selectors to blur. Format: index:<selector>, e.g., 0:.banner,1:#ads.'
338
+ - name: remove_selector
339
+ in: query
340
+ required: false
341
+ style: form
342
+ explode: false
343
+ schema:
344
+ type: string
345
+ description: 'Comma-separated list of indexed CSS selectors to remove. Format: index:<selector>, e.g., 0:.banner,1:#ads.'
346
+ - name: result_file_name
347
+ in: query
348
+ required: false
349
+ schema:
350
+ type: string
351
+ description: Specify a meaningful and unique file name to easily identify the screenshot result. Avoid using spaces or special characters; use hyphens or underscores to separate words.
352
+ - name: scrolling_screenshot
353
+ in: query
354
+ required: false
355
+ schema:
356
+ type: boolean
357
+ description: '**`Scrolling Screenshot`**: Capture a long scrolling screenshot. When true, disable `fullPage` and `freshScreenshot`.'
358
+ - name: scroll_speed
359
+ in: query
360
+ required: false
361
+ schema:
362
+ type: string
363
+ enum:
364
+ - normal
365
+ - fast
366
+ - slow
367
+ description: Speed of scrolling during the screenshot.
368
+ - name: scroll_back
369
+ in: query
370
+ required: false
371
+ schema:
372
+ type: boolean
373
+ description: If true, the scroll will reverse back to the top after reaching the bottom.
374
+ - name: start_immediately
375
+ in: query
376
+ required: false
377
+ schema:
378
+ type: boolean
379
+ description: If true, the scrolling capture will start immediately upon page load.
380
+ - name: multiple_scrolling
381
+ in: query
382
+ required: false
383
+ schema:
384
+ type: boolean
385
+ description: If true, multiple scrolling screenshots will be taken at different viewport sizes.
386
+ - name: sizes
387
+ in: query
388
+ required: false
389
+ style: form
390
+ explode: false
391
+ schema:
392
+ type: string
393
+ description: 'Comma-separated list of viewport sizes in format index:XXw:YYh. Example: sizes=0:120w:300h,1:240w:500h'
394
+ - name: duration
395
+ in: query
396
+ required: false
397
+ schema:
398
+ type: number
399
+ minimum: 0
400
+ maximum: 60
401
+ description: Duration in seconds for the scrolling capture. Acceptable range is 0 to 60 seconds.
402
+ - name: fail_on_error
403
+ in: query
404
+ required: false
405
+ schema:
406
+ type: boolean
407
+ description: If true, returns an error when the target page responds with 4xx or 5xx status.
408
+ - name: longitude
409
+ in: query
410
+ required: false
411
+ schema:
412
+ type: number
413
+ description: Specify longitude for the browser Geolocation API.
414
+ - name: latitude
415
+ in: query
416
+ required: false
417
+ schema:
418
+ type: number
419
+ description: Specify latitude for the browser Geolocation API.
420
+ - name: proxy
421
+ in: query
422
+ required: false
423
+ schema:
424
+ type: string
425
+ description: 'Allows defining a proxy for the connection. Provide a JSON string with keys: server (include port number), username, and password.'
426
+ - name: headers
427
+ in: query
428
+ required: false
429
+ schema:
430
+ type: string
431
+ description: Custom HTTP headers to include as key=value pairs. Use a semicolon to separate multiple headers (e.g., key1=value1;key2=value2).
432
+ - name: cookies
433
+ in: query
434
+ required: false
435
+ schema:
436
+ type: string
437
+ description: 'Cookies to include in the request before rendering. Supports single or multiple cookies. Example: cookie=value; otherCookie=otherValue;'
438
+ - name: scroll_to_element
439
+ in: query
440
+ required: false
441
+ schema:
442
+ type: string
443
+ description: Scrolls the page to bring the specified CSS selector into view before capture.
444
+ - name: selector
445
+ in: query
446
+ required: false
447
+ schema:
448
+ type: string
449
+ description: CSS selector to capture a specific element. Only that element is rendered.
450
+ - name: selector_to_click
451
+ in: query
452
+ required: false
453
+ schema:
454
+ type: string
455
+ description: CSS selector for an element to click before capturing the screenshot.
456
+ - name: click_recursion
457
+ in: query
458
+ required: false
459
+ schema:
460
+ type: integer
461
+ description: 'Number of times to click the selector (when set via selector_to_click). Default: 1.'
462
+ - name: user_agent
463
+ in: query
464
+ required: false
465
+ schema:
466
+ type: string
467
+ description: Custom User-Agent string sent in the request headers.
468
+ - name: accept_languages
469
+ in: query
470
+ required: false
471
+ schema:
472
+ type: string
473
+ description: Sets the accepted languages for the HTTP request. Sent as the Accept-Language header.
474
+ - name: scroll_delay
475
+ in: query
476
+ required: false
477
+ schema:
478
+ type: integer
479
+ description: Delay in milliseconds between scroll steps when lazy_load is enabled.
480
+ - name: custom_html
481
+ in: query
482
+ required: false
483
+ schema:
484
+ type: string
485
+ description: Custom HTML to render instead of loading a URL. Overrides the url option.
486
+ - name: image_quality
487
+ in: query
488
+ required: false
489
+ schema:
490
+ type: integer
491
+ description: Compression level for JPEG output (0–100). Lower = smaller file, higher = better quality. Only applies to JPEG.
492
+ - name: extract_markdown
493
+ in: query
494
+ required: false
495
+ schema:
496
+ type: boolean
497
+ description: Extracts rendered page content as a structured .md (Markdown) file.
498
+ - name: get_image_urls
499
+ in: query
500
+ required: false
501
+ schema:
502
+ type: boolean
503
+ description: Extracts all image URLs from the rendered DOM and returns them in structured format.
504
+ responses:
505
+ '200':
506
+ description: Successful PDF response
507
+ content:
508
+ application/pdf:
509
+ schema:
510
+ type: string
511
+ format: binary
512
+ application/json:
513
+ schema:
514
+ $ref: '#/components/schemas/ScreenshotResponse'
515
+ examples:
516
+ success:
517
+ summary: Successful response
518
+ value:
519
+ screenshot: https://s3.eu-central-2.wasabisys.com/w.storage.apifreaks.com/example_com_e56fe7e60d8d.png
520
+ url: https://example.com
521
+ created_at: '2026-07-27T10:19:08.668Z'
522
+ format: json
523
+ ttl: '2026-08-26T10:19:05.486Z'
524
+ '400':
525
+ description: Bad Request — Invalid or missing parameters
526
+ content:
527
+ application/json:
528
+ examples:
529
+ InvalidUrl:
530
+ summary: Invalid URL
531
+ value:
532
+ timestamp: '2026-07-27T10:19:11.354Z'
533
+ status: 400
534
+ error: invalid_url
535
+ message: Your URL is incorrect
536
+ path: /v3/screenshot
537
+ missingUrl:
538
+ summary: Missing required url parameter
539
+ value:
540
+ error: Invalid Param Exception
541
+ message: please pass correct parameters
542
+ path: /v1.0/screenshot
543
+ status: 400
544
+ timestamp: '2026-07-27T10:19:11.922Z'
545
+ schema:
546
+ $ref: '#/components/schemas/ErrorResponse'
547
+ '408':
548
+ description: Request Timeout — Screenshot capture exceeded the configured timeout
549
+ content:
550
+ application/json:
551
+ examples:
552
+ RequestTimeout:
553
+ summary: Request timed out
554
+ value:
555
+ timestamp: '2026-07-27T10:19:25.676Z'
556
+ status: 408
557
+ error: timeout_error
558
+ message: The request took too long to complete. Please try again later.
559
+ path: /v3/screenshot
560
+ schema:
561
+ $ref: '#/components/schemas/ErrorResponse'
562
+ components:
563
+ securitySchemes:
564
+ ApiKeyAuthHeader:
565
+ type: apiKey
566
+ in: header
567
+ name: X-apiKey
568
+ description: Pass your API key via the X-apiKey request header.
569
+ ApiKeyAuthQuery:
570
+ type: apiKey
571
+ in: query
572
+ name: apiKey
573
+ description: Pass your API key via the apiKey query parameter.
574
+ schemas:
575
+ ScreenshotResponse:
576
+ type: object
577
+ description: Website screenshot response containing the screenshot URL and metadata.
578
+ required:
579
+ - screenshot
580
+ - url
581
+ - created_at
582
+ - format
583
+ - ttl
584
+ properties:
585
+ screenshot:
586
+ type: string
587
+ format: uri
588
+ description: URL of the captured screenshot image file.
589
+ url:
590
+ type: string
591
+ format: uri
592
+ description: The original URL that was captured.
593
+ created_at:
594
+ type: string
595
+ format: date-time
596
+ description: Timestamp when the screenshot was created (ISO 8601 format).
597
+ format:
598
+ type: string
599
+ description: Response format type.
600
+ ttl:
601
+ type: string
602
+ description: Time until the screenshot expires (ISO 8601 format).
603
+ file_type:
604
+ type: string
605
+ description: The file type of the output (e.g., PNG, JPEG).
606
+ width:
607
+ type: integer
608
+ description: Viewport width used for capture in pixels.
609
+ height:
610
+ type: integer
611
+ description: Viewport height used for capture in pixels.
612
+ fresh:
613
+ type: boolean
614
+ description: Whether a fresh render was performed.
615
+ full_page:
616
+ type: boolean
617
+ description: Whether full page capture was used.
618
+ lazy_load:
619
+ type: boolean
620
+ description: Whether lazy loading was triggered.
621
+ retina:
622
+ type: boolean
623
+ description: Whether retina capture was used.
624
+ dark_mode:
625
+ type: boolean
626
+ description: Whether dark mode was enabled.
627
+ enable_caching:
628
+ type: boolean
629
+ description: Whether caching was enabled.
630
+ omit_background:
631
+ type: boolean
632
+ description: Whether background was removed.
633
+ destroy_screenshot:
634
+ type: boolean
635
+ description: Whether the screenshot was destroyed after generation.
636
+ fail_on_error:
637
+ type: boolean
638
+ description: Whether the request failed on error.
639
+ block_ads:
640
+ type: boolean
641
+ description: Whether ads were blocked.
642
+ no_cookie_banners:
643
+ type: boolean
644
+ description: Whether cookie banners were blocked.
645
+ block_chat_widgets:
646
+ type: boolean
647
+ description: Whether chat widgets were blocked.
648
+ block_tracking:
649
+ type: boolean
650
+ description: Whether tracking scripts were blocked.
651
+ block_js:
652
+ type: boolean
653
+ description: Whether JavaScript was blocked.
654
+ block_stylesheets:
655
+ type: boolean
656
+ description: Whether stylesheets were blocked.
657
+ block_images:
658
+ type: boolean
659
+ description: Whether images were blocked.
660
+ block_media:
661
+ type: boolean
662
+ description: Whether media files were blocked.
663
+ block_font:
664
+ type: boolean
665
+ description: Whether fonts were blocked.
666
+ block_xhr:
667
+ type: boolean
668
+ description: Whether XHR requests were blocked.
669
+ block_fetch:
670
+ type: boolean
671
+ description: Whether Fetch API requests were blocked.
672
+ block_web_socket:
673
+ type: boolean
674
+ description: Whether WebSocket connections were blocked.
675
+ block_manifest:
676
+ type: boolean
677
+ description: Whether manifest files were blocked.
678
+ extract_text:
679
+ type: boolean
680
+ description: Whether text content was extracted.
681
+ extract_html:
682
+ type: boolean
683
+ description: Whether HTML content was extracted.
684
+ extract_markdown:
685
+ type: boolean
686
+ description: Whether markdown extraction was enabled.
687
+ get_image_urls:
688
+ type: boolean
689
+ description: Whether image URL extraction was enabled.
690
+ longitude:
691
+ type: number
692
+ format: float
693
+ description: The longitude value used for geolocation.
694
+ latitude:
695
+ type: number
696
+ format: float
697
+ description: The latitude value used for geolocation.
698
+ proxy:
699
+ type: string
700
+ description: The proxy configuration used for the request.
701
+ headers:
702
+ type: string
703
+ description: The custom headers that were included in the request.
704
+ cookies:
705
+ type: string
706
+ description: The cookies that were included in the request.
707
+ scroll_to_element:
708
+ type: string
709
+ description: The element that was scrolled to before rendering.
710
+ selector:
711
+ type: string
712
+ description: The element that was selected for rendering.
713
+ selector_to_click:
714
+ type: string
715
+ description: The CSS selector that was clicked before capture.
716
+ click_recursion:
717
+ type: integer
718
+ description: The number of times the selector was clicked.
719
+ blur_selector:
720
+ type: string
721
+ description: The elements that were blurred in the output.
722
+ remove_selector:
723
+ type: string
724
+ description: The elements that were removed from the output.
725
+ css:
726
+ type: string
727
+ description: The custom CSS that was injected into the page.
728
+ css_url:
729
+ type: string
730
+ format: uri
731
+ description: The external CSS URL that was loaded.
732
+ js:
733
+ type: string
734
+ description: The custom JavaScript that was injected.
735
+ js_url:
736
+ type: string
737
+ format: uri
738
+ description: The external JavaScript URL that was loaded.
739
+ user_agent:
740
+ type: string
741
+ description: The User-Agent string that was used.
742
+ accept_languages:
743
+ type: string
744
+ description: The Accept-Language header that was used.
745
+ delay:
746
+ type: integer
747
+ description: The delay duration that was applied in milliseconds.
748
+ thumbnail_width:
749
+ type: integer
750
+ description: The thumbnail width that was used in pixels.
751
+ output:
752
+ type: string
753
+ description: The output type that was used.
754
+ image_quality:
755
+ type: integer
756
+ description: The image quality level that was applied.
757
+ timeout:
758
+ type: integer
759
+ description: The actual timeout duration that was applied in milliseconds.
760
+ adjust_top:
761
+ type: integer
762
+ description: The vertical position that was scrolled to in pixels.
763
+ wait_for_event:
764
+ type: string
765
+ description: The event that triggered the rendering to start.
766
+ grayscale:
767
+ type: integer
768
+ description: The grayscale level that was applied (0-100).
769
+ scrolling_screenshot:
770
+ type: boolean
771
+ description: Whether scrolling screenshot mode was enabled.
772
+ multiple_scrolling:
773
+ type: boolean
774
+ description: Whether multiple scrolling captures were performed.
775
+ sizes:
776
+ type: array
777
+ items:
778
+ type: string
779
+ description: The dimensions used for each capture.
780
+ scroll_speed:
781
+ type: string
782
+ description: Scrolling speed that was used.
783
+ scroll_back:
784
+ type: boolean
785
+ description: Whether scroll back was enabled.
786
+ start_immediately:
787
+ type: boolean
788
+ description: Whether recording started immediately.
789
+ duration:
790
+ type: integer
791
+ description: Duration of scrolling capture in seconds.
792
+ result_file_name:
793
+ type: string
794
+ description: The final filename used for the output file.
795
+ enable_incognito:
796
+ type: boolean
797
+ description: Whether incognito mode was enabled.
798
+ ErrorResponse:
799
+ type: object
800
+ description: Standard error envelope returned by the API on failed requests.
801
+ required:
802
+ - message
803
+ properties:
804
+ error:
805
+ type: string
806
+ description: Short error category or exception type.
807
+ message:
808
+ type: string
809
+ description: Human-readable error message describing the failure.
810
+ path:
811
+ type: string
812
+ description: API endpoint path that produced the error.
813
+ status:
814
+ type: integer
815
+ description: HTTP status code returned with the error.
816
+ timestamp:
817
+ type: string
818
+ format: date-time
819
+ description: Timestamp when the error occurred (ISO 8601).
820
+ security:
821
+ - ApiKeyAuthHeader: []
822
+ - ApiKeyAuthQuery: []