All options
Every public parameter, its type, default and limits.
144 parameters. Unknown parameters are rejected with request_not_valid rather than silently ignored, so a typo fails immediately instead of producing a subtly wrong capture.
Essentials
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | — | Public HTTP or HTTPS URL to capture. |
html | string | — | Inline HTML to render instead of a URL. POST only. |
markdown | string | — | Inline Markdown rendered through a deterministic template. POST only. |
format | enum | jpg | Output format. Defaults to `jpg` on /take and `mp4` on /animate. png · jpeg · jpg · webp · gif · jp2 · tiff · avif · heif · pdf · html · markdown · text · mp4 · mov · avi · webm |
response_type not cached | enum | by_format | How the result is returned: raw bytes, a JSON envelope, or an empty acknowledgement. by_format · json · empty |
selector | string | — | Capture only the element matching this CSS selector. |
selector_algorithm | enum | default | How the element is captured: `default` uses the browser element API, `clip` converts the bounding box into a clip rectangle. The selector is always CSS. default · clip |
selector_scroll_into_view | boolean | true | Scroll the selected element into view before capturing. |
capture_beyond_viewport | boolean | true | Allow the capture to extend past the viewport bounds. |
scroll_into_view | string | — | Scroll this selector into view before capturing the viewport. |
scroll_into_view_adjust_top | integer -10000–10000 | 0 | Pixel offset applied after `scroll_into_view`, to clear sticky headers. |
request_gpu_rendering gpu | boolean | false | Route the job to the GPU-backed pool. |
include_shadow_dom | boolean | false | Traverse open shadow roots when resolving selectors and serializing HTML. |
attachment_name not cached | string | — | Sets Content-Disposition so browsers download the result under this name. |
external_identifier not cached | string | — | Your own correlation id, echoed in logs, JSON responses and webhooks. |
| Parameter | Type | Default | Description |
|---|---|---|---|
pdf_print_background | boolean | false | Print CSS backgrounds. |
pdf_fit_one_page | boolean | false | Fit the whole document onto a single custom-sized page. |
pdf_landscape | boolean | false | Landscape orientation. |
pdf_paper_format | enum | — | Paper size. Ignored when `pdf_fit_one_page` is set. a0 · a1 · a2 · a3 · a4 · a5 · a6 · letter · legal · tabloid · ledger |
pdf_margin | number 0–10 | — | Margin on all sides, in inches. |
pdf_margin_top | number 0–10 | — | Top margin in inches. Overrides `pdf_margin`. |
pdf_margin_right | number 0–10 | — | Right margin in inches. |
pdf_margin_bottom | number 0–10 | — | Bottom margin in inches. |
pdf_margin_left | number 0–10 | — | Left margin in inches. |
pdf_header_template | string | — | HTML rendered in the PDF header. Supports Chromium's date, title, url, pageNumber and totalPages classes. |
pdf_footer_template | string | — | HTML rendered in the PDF footer. Supports Chromium's date, title, url, pageNumber and totalPages classes. |
Vision
| Parameter | Type | Default | Description |
|---|---|---|---|
openai_api_key secret | string | — | Your own OpenAI key. Used once, never stored, redacted from every log. |
vision_prompt | string | — | Prompt sent along with the rendered image. |
vision_max_tokens | integer 1–4096 | 512 | Token ceiling for the vision response. |
Clip
| Parameter | Type | Default | Description |
|---|---|---|---|
clip_x | integer 0–100000 | — | Clip origin X, in CSS pixels. On /animate this applies to GIF only. |
clip_y | integer 0–100000 | — | Clip origin Y, in CSS pixels. On /animate this applies to GIF only. |
clip_width | integer 1–100000 | — | Clip width, in CSS pixels. On /animate this applies to GIF only. |
clip_height | integer 1–100000 | — | Clip height, in CSS pixels. On /animate this applies to GIF only. |
Full page
| Parameter | Type | Default | Description |
|---|---|---|---|
full_page | boolean | false | Capture the entire scrollable document. |
full_page_scroll scrolling screenshots | boolean | false | Scroll through the page first so lazy content loads. |
full_page_scroll_delay | integer 0–10000 | 400 | Milliseconds to wait after each scroll step. |
full_page_scroll_by | integer 0–20000 | 0 | Pixels per scroll step. 0 uses the viewport height. |
full_page_max_height | integer 1–60000 | — | Stop the capture at this document height. |
full_page_slices | boolean | false | Return the page as several stitched slices instead of one image. |
full_page_slice_height | integer 1–16000 | 4000 | Height of each slice. |
full_page_slice_overlap_height | integer 0–2000 | 0 | Overlap between consecutive slices. |
full_page_algorithm | enum | default | Full-page strategy: one capture of the whole document, or section-by-section for very tall pages. default · by_sections |
Viewport and device
| Parameter | Type | Default | Description |
|---|---|---|---|
viewport_device | string | — | Device preset id. Sets width, height, scale, touch, mobile and user agent together. |
viewport_width | integer 50–7680 | 1280 | Viewport width in CSS pixels. |
viewport_height | integer 50–7680 | 1024 | Viewport height in CSS pixels. |
device_scale_factor | number 1–5 | 1 | Pixel density multiplier (2 = retina). |
viewport_mobile | boolean | false | Emulate a mobile browser. |
viewport_has_touch | boolean | false | Advertise touch support. |
viewport_landscape | boolean | false | Swap width and height of the selected device preset. |
Image
| Parameter | Type | Default | Description |
|---|---|---|---|
image_quality | integer 1–100 | 80 | Encoder quality for lossy formats. |
image_width | integer 1–20000 | — | Resize output width. Aspect ratio is preserved when height is omitted. |
image_height | integer 1–20000 | — | Resize output height. |
omit_background | boolean | false | Render with a transparent background where the format supports alpha. |
Emulation
| Parameter | Type | Default | Description |
|---|---|---|---|
dark_mode | boolean | false | Emulate `prefers-color-scheme: dark`. |
reduced_motion | boolean | false | Emulate `prefers-reduced-motion: reduce`. |
media_type | enum | screen | CSS media type to emulate. screen · print |
Page customization
| Parameter | Type | Default | Description |
|---|---|---|---|
hide_selectors | string[] | — | Selectors to hide before capturing. |
scripts | string[] | — | JavaScript executed in the page context, in order. |
scripts_wait_until | enum | load | Navigation state to reach before running scripts. load · domcontentloaded · networkidle |
styles | string[] | — | CSS injected into the page. |
click | string | — | Selector clicked before capturing. |
hover | string | — | Selector hovered before capturing. |
error_on_selector_not_found | boolean | false | Fail when the capture, hide or wait selector does not match, instead of skipping it. |
error_on_click_selector_not_found | boolean | true | Fail when the `click` selector does not match. |
error_on_hover_selector_not_found | boolean | true | Fail when the `hover` selector does not match. |
bypass_csp | boolean | false | Bypass the page Content Security Policy. Opt-in and recorded. |
Blocking
| Parameter | Type | Default | Description |
|---|---|---|---|
block_cookie_banners | boolean | false | Remove consent banners using known rules. |
block_banners_by_heuristics | boolean | false | Also try a heuristic pass for banners with no known rule. |
block_chats | boolean | false | Remove live chat widgets. |
block_ads | boolean | false | Block ad networks. |
block_trackers | boolean | false | Block analytics and tracking requests. |
block_requests | string[] | — | Glob patterns or domains to block. |
block_resources | string[] | — | Resource types to block. document · stylesheet · image · media · font · script · texttrack · xhr · fetch · eventsource · websocket · manifest · other |
Geolocation
| Parameter | Type | Default | Description |
|---|---|---|---|
geolocation_latitude | number -90–90 | — | Latitude reported to the Geolocation API. |
geolocation_longitude | number -180–180 | — | Longitude reported to the Geolocation API. |
geolocation_accuracy | number 0–100000 | — | Accuracy in metres. |
Request and context
| Parameter | Type | Default | Description |
|---|---|---|---|
ip_country_code ip location | enum | — | Country the managed proxy pool exits from. The catalog is served at /v1/regions. us · ca · mx · br · pe · gb · ie · is · de · fr · it · es · cn · jp · kr · in · au · nz |
proxy secret | string | — | Your own proxy, as `http://user:pass@host:port`. |
proxy_bypass_hosts | string[] | — | Hosts that skip the proxy. |
user_agent | string | — | Custom User-Agent header. |
authorization secret | string | — | Authorization header sent to the target. |
cookies secret | string[] | — | Cookies as `name=value; Domain=…; Path=…` strings. |
headers secret | string[] | — | Extra request headers as `Name: value` strings. |
time_zone | string | UTC | IANA time zone for the browser context. |
Navigation and waiting
| Parameter | Type | Default | Description |
|---|---|---|---|
wait_until | enum | load | Navigation state to wait for. `networkidle0` waits for zero in-flight requests, `networkidle2` for at most two. load · domcontentloaded · networkidle0 · networkidle2 |
delay | integer 0–30 | 0 | Extra seconds to wait after the navigation state. |
timeout | integer 1–90 | 60 | Total budget for the capture, in seconds. |
navigation_timeout | integer 1–30 | 30 | Budget for navigation alone, in seconds. |
wait_for_selector | string | — | Wait until this CSS selector appears. |
wait_for_selector_algorithm | enum | at_least_one | How many nodes satisfy the wait: the first visible match, or every match currently rendering. The selector is always CSS. at_least_one · at_least_by_count |
Cache
| Parameter | Type | Default | Description |
|---|---|---|---|
cache not cached | boolean | false | Serve and store this capture from the cache. Cache hits are never charged. |
cache_ttl not cached | integer 14400–2592000 | 14400 | Cache lifetime in seconds. Minimum and default 4 hours, maximum 30 days. |
cache_key not cached | string | — | Custom cache key, scoped to your organization. |
Storage
| Parameter | Type | Default | Description |
|---|---|---|---|
store not cached | boolean | false | Upload the result to your own bucket. |
storage_config_id not cached | string | — | Use a storage configuration saved in the dashboard instead of inline credentials. |
storage_path not cached | string | — | Object key template. Supports {request_id}, {timestamp}, {external_identifier}, {format}, {organization_id}. |
storage_endpoint not cached | string | — | S3-compatible endpoint. |
storage_access_key_id secretnot cached | string | — | Access key id for the destination bucket. |
storage_secret_access_key secretnot cached | string | — | Secret access key for the destination bucket. |
storage_bucket not cached | string | — | Destination bucket. |
storage_class not cached | string | — | Storage class applied to the uploaded object. |
storage_acl not cached | string | — | ACL applied to the uploaded object. |
storage_return_location not cached | boolean | false | Include the stored object location in the JSON response. |
Metadata
| Parameter | Type | Default | Description |
|---|---|---|---|
metadata_image_size | boolean | false | Include the rendered image dimensions. |
metadata_fonts | boolean | false | Include the fonts the page actually used. |
metadata_icon | boolean | false | Include the favicon URL. |
metadata_open_graph | boolean | false | Include Open Graph tags. |
metadata_page_title | boolean | false | Include the page title. |
metadata_content | boolean | false | Include the rendered page content. |
metadata_content_format | enum | text | Format of the returned content. text · html · markdown |
metadata_http_response_status_code | boolean | false | Include the main response status code. |
metadata_http_response_headers | boolean | false | Include allow-listed response headers. Set-Cookie and auth headers are always removed. |
Async and webhooks
| Parameter | Type | Default | Description |
|---|---|---|---|
async not cached | boolean | false | Return 202 immediately and process in the background. |
webhook_url not cached | string | — | HTTPS endpoint notified when the capture finishes. |
webhook_sign not cached | boolean | false | Sign the webhook body with HMAC-SHA256. |
webhook_errors not cached | boolean | true | Also send the webhook when the capture fails. |
Failure policy
| Parameter | Type | Default | Description |
|---|---|---|---|
ignore_host_errors | boolean | false | Capture the page even when it responds with 4xx or 5xx. |
fail_if_request_failed | string[] | — | Fail if a request matching any of these patterns fails. |
fail_if_content_missing | string[] | — | Fail if the rendered page is missing any of these strings. |
fail_if_content_contains | string[] | — | Fail if the rendered page contains any of these strings. |
fail_if_gpu_rendering_fails | boolean | false | Fail instead of falling back to CPU when GPU rendering is unavailable. |
Animation
| Parameter | Type | Default | Description |
|---|---|---|---|
scenario | enum | default | What the recording does: hold the page, or scroll through it. default · scroll |
duration | integer 1–30 | 5 | Recording length in seconds. |
width | integer 100–3840 | — | Output width in pixels. Defaults to the viewport width. |
height | integer 100–2160 | — | Output height in pixels. Defaults to the viewport height. |
aspect_ratio | enum | — | Derive the missing dimension from this ratio. 16:9 · 4:3 · 1:1 · 9:16 · 3:4 |
scroll_delay | integer 0–10000 | 500 | Milliseconds between scroll steps. |
scroll_duration | integer 100–30000 | 1500 | Duration of each scroll step, in milliseconds. |
scroll_by | integer 0–20000 | 1000 | Pixels per scroll step. 0 uses the viewport height. |
scroll_start_immediately | boolean | true | Start scrolling as soon as recording begins. |
scroll_start_delay | integer 0–20000 | 0 | Milliseconds to hold at the top before scrolling. |
scroll_back | boolean | true | Return to the top when the scroll finishes. |
scroll_back_algorithm | enum | once | `once` returns to the top a single time, `repeat` loops down and back for the whole recording. once · repeat |
scroll_back_after_duration | integer 0–30000 | — | Milliseconds into the recording at which the return to the top starts. Defaults to when the scroll ends. |
scroll_complete | boolean | true | Hold the recording for the full `duration` even when the scroll finishes earlier. |
scroll_stop_after_duration | integer 0–30000 | — | Milliseconds of scrolling before it stops, regardless of how much page is left. |
scroll_easing | enum | ease_in_out_quint | Easing applied to scroll motion. linear · ease_in_sine · ease_out_sine · ease_in_out_sine · ease_in_quad · ease_out_quad · ease_in_out_quad · ease_in_cubic · ease_out_cubic · ease_in_out_cubic · ease_in_quart · ease_out_quart · ease_in_out_quart · ease_in_quint · ease_out_quint · ease_in_out_quint |
scroll_try_navigate | boolean | false | Look for a link matching `scroll_navigate_link_hints` and follow it mid-recording, producing a site tour. |
scroll_navigate_after | integer 0–30000 | — | Milliseconds into the recording at which navigation happens. Defaults to half the duration. |
scroll_navigate_to_url | string | — | Navigate to this URL instead of following a hinted link. Subject to the same egress policy as `url`. |
scroll_navigate_link_hints | string[] | pricing,about,customers | Link text fragments the tour looks for when `scroll_try_navigate` is set. |
scroll_till_selector | string | — | Stop the scroll when this CSS selector is reached. |
scroll_till_selector_adjust_top | integer -10000–10000 | 0 | Pixel offset applied to the `scroll_till_selector` stop position. |
scroll_to_end_after | integer 0–30000 | — | Milliseconds after which the scroll jumps straight to the bottom of the page. |
Run this without writing code
These tools call the endpoint documented on this page. Whatever you configure there carries into the playground with you.
An A4 PDF rendered by Chromium, with your own stylesheet and print rules applied.
A typeset A4 PDF. The same Markdown always produces the same document.
A PNG rendered by Chromium at the width you pick, as tall as your markup, with your own CSS applied.
A JPEG rendered by Chromium at the width and quality you pick, as tall as your markup.
A lossless PNG at the density you pick, with the alpha channel preserved when you ask for it.
A standalone HTML document: CommonMark plus GitHub tables and task lists, with the template stylesheet inlined.
A paginated PDF where the text is text — searchable, selectable and copyable.
Markdown extracted from the rendered DOM, with navigation and boilerplate dropped.
A working request plus cURL, TypeScript and Python. Credentials and external delivery stay code-only until you use your own key.