Skip to main content
POST
Create a capture

Authorizations

Authorization
string
header
required

Active sf_live_ API key with endpoint-specific scopes. Keep this credential server-side.

Headers

Idempotency-Key
string

Stable logical submission key. Reuse with identical configuration and the same API key.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9._-]+$

Query Parameters

mode
enum<string>

Optional asynchronous override.

Available options:
async

Body

application/json
url
string
required

Public HTTP or HTTPS target. Bare hostnames are normalized to HTTPS. Private network destinations are blocked by the hosted service.

Minimum string length: 1
viewport
object

CSS-pixel viewport and output density. A device preset takes precedence over an explicit viewport.

device
enum<string>

Supported preset identifier; takes precedence over viewport settings.

Available options:
desktop_standard,
desktop_hd,
desktop_2k,
desktop_4k,
iphone_15_pro,
iphone_15_pro_max,
iphone_17_pro_max,
pixel_8,
ipad_pro_11
full_page
boolean
default:false

Capture the scrollable page. Successful full-page images cost 2 credits.

full_page_algorithm
enum<string>
default:by_sections

Section capture is the default. Native uses the alternative full-page path.

Available options:
by_sections,
native
full_page_scroll_delay
integer

Delay between full-page scroll steps, in milliseconds.

Required range: 0 <= x <= 5000
full_page_scroll_by
integer

Full-page scroll step in CSS pixels.

Required range: 120 <= x <= 2160
reduce_motion
boolean
default:true

Reduce motion while capturing.

format
enum<string>
default:webp

Output format. Full-page by_sections PDFs package rendered pixels; native and viewport PDFs use browser PDF export. PDFs cost 3 credits and cannot be combined with selector.

Available options:
png,
jpeg,
webp,
pdf
quality
integer
default:90

JPEG or WebP encoding quality; does not control PNG encoding.

Required range: 1 <= x <= 100
delay
integer
default:0

Additional wait after page settlement, in milliseconds.

Required range: 0 <= x <= 30000
timeout
integer
default:30000

Capture/navigation time budget in milliseconds, independent of the synchronous HTTP wait budget.

Required range: 1000 <= x <= 60000
wait_for_selector
string

CSS readiness selector to wait for before capture.

wait_for_content
boolean
default:false

Enable content-readiness waiting for dynamic pages.

wait_for_idle
boolean
default:true

Enable additional network-idle settlement.

wait_until
enum<string>
default:load

Navigation milestone to wait for.

Available options:
load,
domcontentloaded,
networkidle
fail_if_incomplete
boolean
default:false

Reject detected incomplete or loading-shell captures.

fail_if_content_missing
string[]

Required text markers, trimmed before validation.

Maximum array length: 32
Required string length: 1 - 500
fail_if_content_contains
string[]

Disallowed text markers, trimmed before validation.

Maximum array length: 32
Required string length: 1 - 500
min_capture_height
integer

Minimum output height accepted by quality checks.

min_capture_bytes
integer

Minimum encoded output bytes accepted by quality checks.

dark_mode
boolean
default:false

Emulate a dark preference when color_scheme is not explicitly set.

color_scheme
enum<string>

Explicit browser color-scheme preference.

Available options:
light,
dark,
no-preference
locale
string

Browser locale; overrides the region locale if supplied.

timezone
string

IANA browser timezone; overrides the region timezone if supplied.

user_agent
string

Explicit browser user agent.

region
enum<string>

Country-aligned locale/timezone preset and expected egress country. Does not provision a managed proxy.

Available options:
us,
ca,
gb,
ie,
de,
fr,
es,
it,
nl,
sg,
au,
jp,
kr,
in,
br,
mx,
za,
ae
proxy
object

Caller-supplied public proxy endpoint and optional authentication.

verify_egress
boolean
default:true

Verify observed egress country when a region is requested.

block_ads
boolean
default:true

Enable ad filtering.

Enable cookie-banner filtering.

block_chats
boolean
default:true

Enable chat-widget filtering.

block_trackers
boolean
default:true

Enable tracker filtering.

selector
string

Capture the first matching visible element. Not supported with PDF.

hide_selectors
string[]

Suppress matching elements.

remove_selectors
string[]

Remove matching nodes; can affect layout.

custom_css
string

CSS injected into the target page.

custom_js
string

JavaScript executed in the target page.

headers
object

Headers sent to the target, not credentials for the ScreenshotAPI request. Keep target credentials private.

sync
boolean
default:true

Wait for immediate completion when true; a slow or queued capture still returns 202. The mode=async query overrides this field.

cache_ttl
integer
default:3600

Maximum capture reuse age in seconds. Zero requests a fresh capture; not a storage-lifetime guarantee.

Required range: x >= 0
store
boolean
default:false

Shared engine storage flag. Hosted REST output still requires a downloadable artifact.

inspect_page
boolean
default:false

Extract readable Markdown and accessibility text from this render (12,000 characters each). Untrusted page content; normal capture credits apply and image caches are bypassed.

webhook
object

Public HTTPS callback on port 443 with a 16–256 character signing secret. Delivered after terminal settlement.

Response

Completed capture. Download data.cdn_url.

ok
boolean
required
request_id
string
required
data
object
required