Screenshot API

Take screenshots of any website.

Try it

Examples

Click to try:

URL Generator

Configure options and copy the generated API URL.

API Reference

Screenshots

GET /api?url=... & [options]
ParameterDescription
urlURL to screenshot
htmlRaw HTML to render (alternative to url)
formatpng, jpeg, webp, pdf
response_typejson = base64 in JSON response
viewport_width, viewport_heightViewport size (default 1280×720)
device_scale_factor1–5 (Retina: 2)
viewport_deviceiphone_13, ipad, pixel_5, desktop_1920
full_pagetrue = full page screenshot
full_page_scrollScroll before full page (lazy load)
omit_backgroundtrue = transparent PNG
time_zonee.g. Europe/Berlin, America/New_York
selectorCSS selector for element only
clip_x, clip_y, clip_width, clip_heightClip region
delaySeconds to wait before screenshot
block_ads, block_cookie_bannersBlock unwanted content
dark_modetrue = prefers-color-scheme: dark
styles, scriptsInject CSS/JS
click, hoverSelector to interact before shot
Caching
cachetrue = enable CDN caching (Vercel Edge). Saves cost, faster on repeat requests.
cache_ttlCache TTL in seconds (default 14400 = 4h, max 2592000 = 30d).
cache_keyOptional custom key for different cached versions of the same screenshot.

Without cache=true, screenshots are rendered on-demand and not stored (maximum privacy). With cache, the response includes x-cache-url header and cache_url in JSON—a shareable direct link served from CDN until TTL expires.

Animated Screenshots (GIF)

GET /api/animate?url=... & [options]

Generate animated GIFs: record sites as-is (default scenario) or scroll through pages (scroll scenario). Supports block_ads, block_cookie_banners, dark_mode, viewport, and most screenshot options.

ParameterDescription
scenariodefault = record page as-is (for sites with CSS/JS animations). scroll = scroll down the page (default).
durationMax recording duration in seconds (1–30, default 5).
frame_delayDisplay duration per frame in ms (default 200).
Scroll scenario options
scroll_delayDelay in ms between scroll steps (default 500).
scroll_durationDuration in ms of one smooth scroll step (default 1500). Higher = slower, smoother scroll.
scroll_byPixels per scroll step (default: viewport height, max 1000).
scroll_start_delayWait time in ms before starting scroll (default 0).
scroll_start_immediatelyStart scrolling immediately (default true).
scroll_backScroll back to top at end (default true).
scroll_completeStop when page fully scrolled (default true). Use false to record for full duration.
scroll_stop_after_durationStop scrolling after this many ms. Use with scroll_complete=false.
scroll_till_selectorScroll until this CSS selector is visible (optional).
clip_x, clip_y, clip_width, clip_heightClip region of the GIF.
cache, cache_ttl, cache_keySame as screenshots—enables CDN caching.
Also: viewport_width, viewport_height, viewport_device, dark_mode, block_ads, block_cookie_banners, delay, styles, scripts, etc.

Examples: /api/animate?url=https://tailwindcss.com&scenario=scroll · /api/animate?url=https://handwrytten.com&scenario=default&duration=5