urlstring
The webpage URL to capture (a schemeless host like 'example.com' is accepted). Mutually exclusive with 'html' and 'markdown'.
htmlstring
Raw HTML to render and capture. Mutually exclusive with 'url' and 'markdown'. Great for invoices, social cards, email templates, OG images.
markdownstring
Markdown to render to an image or PDF. Mutually exclusive with 'url' and 'html'. The server converts it to HTML before rendering. Great for reports, release notes, README snapshots, documentation cards.
formatenum
Output format — png (lossless), jpeg (smaller), webp (smallest), or pdf (document). Use pdf for invoices, reports, archival.
fullPageboolean
Capture the full scrollable page instead of just the viewport
darkModeboolean
Emulate dark color scheme (prefers-color-scheme: dark)
widthinteger
Viewport width in pixels (320-3840)
heightinteger
Viewport height in pixels (240-2160)
qualityinteger
Image quality 1-100 (JPEG/WebP only, ignored for PNG/PDF)
delayinteger
Milliseconds to wait after page load before capture (useful for JS-rendered content)
blockAdsboolean
Block ads and trackers before capture
blockResourceTypesstring[]
Block specific resource types to speed up capture. E.g. ['font', 'image'] for text-only screenshots.
deviceScaleFactornumber
Device pixel ratio (1 = standard, 2 = retina). Defaults to 2× Retina.
deviceenum
Device preset that sets viewport, scale factor, and user agent in one shot. E.g. 'iphone_15' for a mobile screenshot. Overrides width/height/deviceScaleFactor/userAgent.
timeoutinteger
Maximum seconds to wait for page load (5-60). Cloudflare has a 60s hard cap.
waitUntilenum
Page readiness event. networkidle2 (default) is best for most sites. Use domcontentloaded for speed, networkidle0 for completeness.
waitForSelectorstring
CSS selector to wait for before capture. Essential for SPAs (e.g. '.main-content', '#app-loaded')
bestAttemptboolean
If true (default), capture whatever is rendered on timeout instead of failing. Set to false to get a hard error on timeout.
selectorstring
CSS selector of a specific element to capture instead of the full page. Useful for OG images, component extraction (e.g. '#hero', '.pricing-card')
hideSelectorsstring[]
CSS selectors to hide (display:none) before capture. E.g. ['.modal', '#newsletter-popup'] to remove overlays. Max 50 selectors.
blockCookieBannersboolean
Hide common cookie/consent walls (GDPR/CCPA banners) before capture. A curated selector list, lighter than custom hideSelectors.
resizeWidthinteger
Downscale the captured image to this width in pixels (16-3840). Aspect ratio is preserved if resizeHeight is omitted. Ignored for PDF.
resizeHeightinteger
Downscale the captured image to this height in pixels (16-2160). Aspect ratio is preserved if resizeWidth is omitted. Ignored for PDF.
cssstring
Custom CSS to inject into the page before capture. Hide cookie banners, add watermarks, override styles. Max 50KB.
jsstring
Custom JavaScript to execute in the page before capture. Runs in the browser sandbox. Max 50KB.
cookiesobject[]
Cookies to set before capture. Useful for authenticated pages. Max 50 cookies.
headersobject
Custom HTTP headers to send with the page request. Cannot override Host, Connection, Content-Length, or Transfer-Encoding.
userAgentstring
Override the browser user agent string.
pdfFormatenum
PDF page size. Only used when format='pdf'. Default: A4
pdfLandscapeboolean
PDF landscape orientation. Only used when format='pdf'.
pdfPrintBackgroundboolean
Print background colors/images in PDF. Default: true
pdfScalenumber
PDF scale factor (0.1-2). Default: 1
pdfMarginobject
PDF page margins. Only used when format='pdf'. Accepts CSS values.
dataobject
Key-value data object for Mustache templating. When provided, the 'html' or 'markdown' string is rendered as a logic-less Mustache template before capture — {{var}} inserts HTML-escaped, {{{var}}} inserts raw, {{#items}}...{{/items}} iterates arrays, {{a.b}} accesses nested fields. Not valid with 'url'. Max 256KB serialized.
geostring
ISO 3166-1 alpha-2 country code for geo-targeted capture (e.g., 'US', 'DE', 'JP'). Renders the page as seen from that country. Pro/Enterprise only. Note: CSS/JS injection, cookies, element capture, dark mode, and some other features are not available with geo-targeting.
geoCitystring
City for more precise geo-targeting (e.g., 'Berlin', 'New York'). Requires 'geo'.
geoStatestring
State or region for more precise geo-targeting (e.g., 'California'). Requires 'geo'.
expiresIninteger
Seconds until the signed URL expires (60–2592000). Defaults to the server's TTL.