Request body
Essential fields
| Field |
Type |
Default |
Rules |
| url |
string |
Required |
Public HTTP/HTTPS URL, maximum 2,048 bytes, no embedded credentials |
| preset |
string |
desktop |
desktop or mobile; mutually exclusive with viewport |
| viewport |
object |
Preset dimensions |
width, height, and optional device_scale_factor |
| full_page |
boolean |
false |
Capture beyond the initial viewport, bounded by maximum page height |
| format |
string |
png |
png, jpeg, or webp |
| quality |
integer |
Provider default |
1–100; JPEG and WebP only |
Viewport
Presets and custom dimensions
| Configuration |
Width |
Height |
Scale |
| desktop preset |
1440 |
900 |
1 |
| mobile preset |
390 |
844 |
2 |
| custom viewport |
320–3840 |
240–2160 |
0.5–3 |
Custom viewport
json
{
"url": "https://example.com",
"viewport": {
"width": 1280,
"height": 720,
"device_scale_factor": 1.5
}
}
Timing
Page readiness
Prefer a deterministic lifecycle event first. Add a short delay only when the target genuinely needs time for client-rendered content; large fixed delays reduce throughput and do not guarantee correctness.
| Field |
Allowed values |
Default |
| wait_until |
load, domcontentloaded, networkidle |
load |
| delay_ms |
0–10,000 milliseconds |
0 |
Page cleanup
Common overlay blocking
| Field |
Type |
Default |
| block_ads |
boolean |
false |
| block_cookie_banners |
boolean |
false |
| block_chat_widgets |
boolean |
false |
Intentionally excluded
The MVP does not accept arbitrary JavaScript, customer-supplied proxies, CAPTCHA bypass, browser extensions, persistent sessions, or raw storage credentials.