browser
query enum(chrome, firefox, brave) Optional Example: chrome
Browser to use for screenshot (chrome, firefox, or brave)
/screenshot/create Request a screenshot
Options are grouped for easier scanning, similar to parameter-focused docs.
browserenum(chrome, firefox, brave) Optional Example: chrome
Browser to use for screenshot (chrome, firefox, or brave)
countrystring[] Optional Example: us
ISO 3166-1 alpha-2 country code(s) for IP geolocation. Defaults to "us" when omitted. Can specify multiple countries to test from different locations.
Two-letter country code for routing the browser through a target country. Use this when validating localization, legal notices, pricing, and geo-specific rendering.
delayinteger Optional Example: 5
Seconds to wait after page load for JavaScript execution
hide_adsboolean Optional Example: false
Block ads using network filtering (disabled for Brave)
Enable ad filtering for cleaner captures and visual diffs. On some browser targets, behavior may vary depending on native filtering support.
hide_popupsboolean Optional Example: false
Hide popups and overlays
Attempt to hide cookie banners and popup overlays before capture so outputs focus on page content.
screen_heightinteger Optional Example: 1280
Browser viewport height in pixels
screen_widthinteger Optional Example: 1024
Browser viewport width in pixels
sizeenum(screen, page) Optional Example: screen
Screenshot size mode: viewport ('screen') or full page ('page')
urlstring[] Required URL(s) of the page(s) to screenshot. Can specify multiple URLs.
cookiestring Optional Cookies as semicolon-separated key=value pairs
headerstring[] Optional Custom HTTP headers. Each item should be a JSON object string. Can specify multiple header sets.
post_datastring Optional POST data for form submission (URL-encoded)
refererstring Optional Custom HTTP Referer header
user_agentstring Optional Custom User-Agent header to use for HTTP requests
max_waitinteger Optional Example: 0
Maximum seconds to wait for page load (0 = disabled)
scriptstring[] Optional URL(s) of JavaScript file(s) to execute after page load. Can specify multiple scripts that will be executed in order.
script_inlinestring Optional Inline JavaScript code to execute after page load
trackerobject[] Optional Alternative trackers array notation (tracker[0][id], tracker[0][name], etc.). Cannot be used with trackers.
trackersobject[] Optional Array of trackers to capture metrics during screenshot execution
darkboolean Optional Example: false
Enable dark mode rendering
strict_sslboolean Optional Example: false
Enforce strict SSL certificate validation
stepobject[] Optional Alternative steps array notation (step[0][command], step[0][value], etc.). Cannot be used with steps.
stepsobject[] Optional Array of automation commands to execute before/after screenshot
JSON-encoded automation steps executed before capture. Use steps to click, type, wait, scroll, and stabilize dynamic UIs before image/PDF/video output is generated.
cacheinteger Optional Example: 86400
Cache duration in seconds. 0 = always fresh, 86400 = 24 hours
max_heightinteger Optional Example: 0
Maximum screenshot height in pixels. 0 = unlimited
shot_intervalinteger Optional Example: 5
Seconds between sequential shots
shotsinteger Optional Example: 1
Number of sequential screenshots
tagstring[] Optional Tags for organizing screenshots. Can specify multiple tags as tag=one&tag=two or comma-separated as tag=one,two
targetstring Optional CSS selector. If provided, take a screenshot of the element. If not found within 30 seconds or max_wait, fall back to page/window screenshot.
CSS selector of the element to capture. If provided, capture is scoped to the matched element instead of the full viewport/page.
appsstring[] Optional App IDs (user-defined) to run after the screenshot is finished
htmlboolean Optional Example: false
Save rendered HTML
geo_enableboolean Optional Example: false
Enable geolocation emulation in the browser for this request
geo_latitudenumber Optional Override latitude for geolocation (decimal degrees)
geo_longitutenumber Optional Override longitude for geolocation (decimal degrees)
languagestring Optional Override language/locale for the screenshot job (e.g., en-US, fr-FR)
timezonestring Optional Override timezone for geolocation (e.g., America/New_York)
device_landscapeboolean Optional Use landscape orientation for device emulation (used with screen_width/screen_height when device_name is not set)
device_mobileboolean Optional Enable mobile emulation (used with screen_width/screen_height when device_name is not set)
device_namestring Optional Device name to emulate (e.g., iphone_15_pro or iphone_15_pro_landscape). If provided and found, other device_* parameters are ignored.
Named device profile for viewport and input emulation. Prefer this when reproducing mobile/tablet rendering for specific real-world devices.
device_scalenumber Optional Device scale factor (used with screen_width/screen_height when device_name is not set)
device_touchboolean Optional Enable touch input for device emulation (used with screen_width/screen_height when device_name is not set)
pdfboolean Optional Example: false
Save rendered PDF
Set to true to generate a PDF artifact in addition to the screenshot. Retrieve the output later from the PDF endpoint.
pdf_backgroundboolean Optional Example: false
Include background graphics in PDF
pdf_formatenum(a4, letter, legal) Optional Example: letter
PDF paper format
pdf_landscapeboolean Optional Example: false
Render PDF in landscape mode
pdf_margininteger Optional Example: 0
Default PDF margin in pixels
pdf_margin_bottominteger Optional Example: 0
PDF bottom margin in pixels
pdf_margin_leftinteger Optional Example: 0
PDF left margin in pixels
pdf_margin_rightinteger Optional Example: 0
PDF right margin in pixels
pdf_margin_topinteger Optional Example: 0
PDF top margin in pixels
pdf_one_pageboolean Optional Example: false
Fit rendered page on a single PDF page
videoboolean Optional Example: false
Save a screencast video of the page loading
Set to true to generate a video recording of the page flow. Combine with `video_format`, `video_quality`, and `video_speed` for control over output.
video_durationinteger Optional Example: 15
Screencast recording duration in seconds (0 = no minimum recording time)
video_formatenum(webm, mp4, gif) Optional Example: webm
Screencast output format
video_qualityinteger Optional Example: 30
Screencast quality (0-63, lower is better quality)
video_speednumber Optional Example: 1
Screencast playback speed multiplier
200 Screenshot request accepted
{
"success": true,
"data": [
{
"id": 12345678,
"status": "processing",
"url": "https://example.com",
"final_url": "https://example.com",
"cost": 1,
"tag": [],
"created_at": "2026-02-06T05:34:02.730Z",
"finished_at": "",
"country": "us",
"region": "America",
"language": "en-US",
"timezone": "America/New_York",
"geo_enable": false,
"geo_latitude": 40.7128,
"geo_longitude": -74.006,
"size": "screen",
"cache": 86400,
"delay": 5,
"screen_width": 1024,
"screen_height": 1280,
"priority": 2,
"referer": "",
"post_data": "",
"cookie": "",
"script": "",
"html": false,
"pdf": false,
"pdf_background": false,
"pdf_one_page": false,
"pdf_landscape": false,
"pdf_format": "letter",
"pdf_margin": 0,
"pdf_margin_top": 0,
"pdf_margin_bottom": 0,
"pdf_margin_left": 0,
"pdf_margin_right": 0,
"video": false,
"video_format": "webm",
"video_quality": 30,
"video_speed": 1,
"video_duration": 15,
"max_wait": 0,
"header": "",
"hide_popups": false,
"hide_ads": false,
"dark": false,
"shots": 1,
"shot_interval": 5,
"strict_ssl": false,
"max_height": 0,
"target": "",
"device_name": "",
"device_scale": 3,
"device_touch": true,
"device_landscape": false
},
{
"id": 12345679,
"status": "processing",
"url": "https://example.org",
"final_url": "https://example.org",
"cost": 1,
"tag": [],
"created_at": "2026-02-06T05:34:02.730Z",
"finished_at": "",
"country": "us",
"region": "America",
"language": "en-US",
"timezone": "America/New_York",
"geo_enable": false,
"geo_latitude": 40.7128,
"geo_longitude": -74.006,
"size": "screen",
"cache": 86400,
"delay": 5,
"screen_width": 1024,
"screen_height": 1280,
"priority": 2,
"referer": "",
"post_data": "",
"cookie": "",
"script": "",
"html": false,
"pdf": false,
"pdf_background": false,
"pdf_one_page": false,
"pdf_landscape": false,
"pdf_format": "letter",
"pdf_margin": 0,
"pdf_margin_top": 0,
"pdf_margin_bottom": 0,
"pdf_margin_left": 0,
"pdf_margin_right": 0,
"video": false,
"video_format": "webm",
"video_quality": 30,
"video_speed": 1,
"video_duration": 15,
"max_wait": 0,
"header": "",
"hide_popups": false,
"hide_ads": false,
"dark": false,
"shots": 1,
"shot_interval": 5,
"strict_ssl": false,
"max_height": 0,
"target": "",
"device_name": "",
"device_scale": 3,
"device_touch": true,
"device_landscape": false
}
]
} 400 Invalid request parameters
{
"error": "Request validation failed",
"code": "VALIDATION_ERROR",
"fields": {
"url": [
"URL is required"
],
"country": [
"Country code must be ISO 3166-1 alpha-2"
]
}
} 401 Invalid or missing API key
{
"success": false,
"error": "Invalid API key",
"code": "INVALID_API_KEY",
"details": {
"request_id": "req_123456"
}
} 403 Insufficient balance or account limitations
{
"error": "Insufficient credit balance",
"status": "error",
"code": "INSUFFICIENT_BALANCE"
} 429 Rate limit exceeded
{
"error": "Rate limit exceeded",
"code": "RATE_LIMIT_EXCEEDED",
"retry_after": 60
} 500 Server error
{
"success": false,
"error": "Invalid API key",
"code": "INVALID_API_KEY",
"details": {
"request_id": "req_123456"
}
} 503 Service temporarily unavailable
{
"success": false,
"error": "Invalid API key",
"code": "INVALID_API_KEY",
"details": {
"request_id": "req_123456"
}
}