cURL — every query parameter
curl -G "https://api.snapshotflow.com/screenshot" \
-H "X-Api-Key: $API_KEY" \
--data-urlencode "url=https://stripe.com" \
--data-urlencode "width=1440" \
--data-urlencode "height=900" \
--data-urlencode "device_scale_factor=2" \
--data-urlencode "viewport_mobile=false" \
--data-urlencode "format=jpeg" \
--data-urlencode "quality=90" \
--data-urlencode "full_page=true" \
--data-urlencode "omit_background=false" \
--data-urlencode "selector=main" \
--data-urlencode "clip_x=0" \
--data-urlencode "clip_y=0" \
--data-urlencode "clip_width=1440" \
--data-urlencode "clip_height=900" \
--data-urlencode "image_width=720" \
--data-urlencode "image_height=450" \
--data-urlencode "delay=500" \
--data-urlencode "wait_until=networkidle0" \
--data-urlencode "wait_for_selector=#app" \
--data-urlencode "dark_mode=true" \
--data-urlencode "reduced_motion=true" \
--data-urlencode "media_type=screen" \
--data-urlencode "timezone=Europe/Paris" \
--data-urlencode "geolocation_latitude=48.8566" \
--data-urlencode "geolocation_longitude=2.3522" \
--data-urlencode "geolocation_accuracy=50" \
--data-urlencode "user_agent=SnapshotFlowBot/1.0" \
--data-urlencode 'headers={"Authorization":"Bearer token123"}' \
--data-urlencode 'cookies=[{"name":"session","value":"abc","domain":"stripe.com"}]' \
--data-urlencode "scripts=document.body.classList.add('snap')" \
--data-urlencode "styles=.cookie-banner{display:none}" \
--data-urlencode "hide_selectors=.intercom-launcher,.ad-slot" \
--data-urlencode "click=#accept-cookies" \
--data-urlencode "block_ads=true" \
--data-urlencode "block_trackers=true" \
--data-urlencode "block_cookie_banners=true" \
--data-urlencode "block_requests=*.hotjar.com,*/analytics.js" \
--data-urlencode "extract_content=true" \
--data-urlencode "content_format=markdown" \
--data-urlencode "metadata=true" \
--data-urlencode "cache=true" \
--data-urlencode "response_type=base64"
URL — every query parameter
https://api.snapshotflow.com/screenshot?api_key=e2e_your_key_here&url=https://apple.com&width=1440&height=900&device_scale_factor=2&viewport_mobile=false&format=jpeg&quality=90&full_page=true&omit_background=false&selector=main&clip_x=0&clip_y=0&clip_width=1440&clip_height=900&image_width=720&image_height=450&delay=500&wait_until=networkidle0&wait_for_selector=main&dark_mode=true&reduced_motion=true&media_type=screen&timezone=Europe/Paris&geolocation_latitude=48.8566&geolocation_longitude=2.3522&geolocation_accuracy=50&user_agent=SnapshotFlowBot/1.0&headers=%7B%22Authorization%22%3A%22Bearer%20token123%22%7D&cookies=%5B%7B%22name%22%3A%22session%22%2C%22value%22%3A%22abc%22%2C%22domain%22%3A%22apple.com%22%7D%5D&scripts=document.body.classList.add%28%27snap%27%29&styles=.cookie-banner%7Bdisplay%3Anone%7D&hide_selectors=.intercom-launcher,.ad-slot&click=button&block_ads=true&block_trackers=true&block_cookie_banners=true&block_requests=*.hotjar.com,*/analytics.js&extract_content=true&content_format=markdown&metadata=true&cache=true&response_type=base64&pdf_print_background=true&pdf_landscape=true&pdf_paper_format=a4&async=true&webhook_url=https://yourapp.com/hooks&external_identifier=order-42&webhook_errors=true
Node SDK — every option (camelCase)
const result = await client.takeJson({
// Source
url: "https://stripe.com", // or html: "<h1>Hi</h1>"
// Viewport
width: 1440,
height: 900,
deviceScaleFactor: 2,
viewportMobile: false,
// Capture
format: "jpeg", // png | jpeg | webp | pdf
quality: 90,
fullPage: true,
omitBackground: false,
selector: "main",
clipX: 0, clipY: 0, clipWidth: 1440, clipHeight: 900,
imageWidth: 720, imageHeight: 450,
// Timing
delay: 500,
waitUntil: "networkidle0",
waitForSelector: "#app",
// Emulation
darkMode: true,
reducedMotion: true,
mediaType: "screen", // screen | print
timezone: "Europe/Paris",
geolocationLatitude: 48.8566,
geolocationLongitude: 2.3522,
geolocationAccuracy: 50,
userAgent: "SnapshotFlowBot/1.0",
// Injection & interaction
headers: { Authorization: "Bearer token123" },
cookies: [{ name: "session", value: "abc", domain: "stripe.com" }],
scripts: "document.body.classList.add('snap')",
styles: ".cookie-banner{display:none}",
hideSelectors: [".intercom-launcher", ".ad-slot"],
click: "#accept-cookies",
// Blocking
blockAds: true,
blockTrackers: true,
blockCookieBanners: true,
blockRequests: ["*.hotjar.com", "*/analytics.js"],
// Content & metadata
extractContent: true,
contentFormat: "markdown", // html | markdown | text
metadata: true,
// Cache & response
cache: true,
responseType: "base64", // image | json | base64 | url
});
console.log(result.metadata?.title, result.content?.length);