Endpoint
POST method accepts parameters in the request body. The GET method accepts all parameters as query strings and always returns a binary image.
Headers
Request body (POST)
string
required
The URL of the webpage to capture. Must be a valid URL.
string
Optional name for the screenshot (max 100 characters).
Capture options
Pass these inside theoptions object in the request body.
string
default:"png"
Output format. Options:
png, jpeg, webp, pdf.integer
default:"1280"
Viewport width in pixels (100–5000).
integer
default:"1024"
Viewport height in pixels (100–5000).
boolean
default:"false"
Capture the full scrollable page instead of just the viewport.
integer
default:"80"
Image quality for JPEG, WebP, and PDF (0–100). Ignored for PNG.
number
default:"1"
Device pixel ratio (1–3). Use
2 for retina-quality screenshots.boolean
default:"false"
Emulate a mobile device viewport.
boolean
default:"false"
Enable touch event support.
boolean
default:"false"
Use landscape orientation.
boolean
default:"false"
Block advertisements on the page.
boolean
default:"false"
Block cookie consent banners.
boolean
default:"false"
Block chat widgets (e.g., Intercom, Drift).
string
CSS selector of a specific element to capture instead of the full page (max 255 characters).
boolean
default:"true"
Automatically scroll the selected element into view before capturing.
boolean
default:"false"
Return an error if the specified selector is not found on the page.
string
CSS selector to wait for before capturing (max 255 characters). The capture starts once this element exists in the DOM.
integer
default:"0"
Milliseconds to wait after page load before capturing (0–10000).
integer
default:"60000"
Maximum time in milliseconds to wait for the page and screenshot process (1000–90000).
Maximum time in milliseconds to wait for page navigation (1000–30000).
string
default:"load"
When to consider navigation complete. Options:
load, domcontentloaded, networkidle0, networkidle2. Can also be an array of values.string
default:"by_format"
Controls the response format. Options:
by_format, json, empty.boolean
Emulate dark color scheme (
prefers-color-scheme: dark).boolean
default:"false"
Remove the default white background for transparent captures (PNG and WebP only).
boolean
Scroll through the page before capturing. Useful for triggering lazy-loaded content.
integer
default:"400"
Milliseconds to wait between scroll steps (0–5000).
integer
Number of pixels to scroll per step (0–5000).
integer
Maximum height in pixels for full-page captures (0–50000).
Response
The response format depends on theresponse_type option.
response_type: "by_format" (default)
Returns the screenshot as binary data with the appropriate Content-Type header (e.g., image/png, image/jpeg, application/pdf).
For POST requests, a Content-Disposition: attachment header is also included.
response_type: "json"
Returns 201 Created with a JSON response:
response_type: "empty"
Returns 200 OK with an empty body. Useful for fire-and-forget captures.
Error responses
See error codes for the full error response format.

