Take screenshots of any website.
Click to try:
Configure options and copy the generated API URL.
| Parameter | Description |
|---|---|
url | URL to screenshot |
html | Raw HTML to render (alternative to url) |
format | png, jpeg, webp, pdf |
response_type | json = base64 in JSON response |
viewport_width, viewport_height | Viewport size (default 1280×720) |
device_scale_factor | 1–5 (Retina: 2) |
viewport_device | iphone_13, ipad, pixel_5, desktop_1920 |
full_page | true = full page screenshot |
full_page_scroll | Scroll before full page (lazy load) |
omit_background | true = transparent PNG |
time_zone | e.g. Europe/Berlin, America/New_York |
selector | CSS selector for element only |
clip_x, clip_y, clip_width, clip_height | Clip region |
delay | Seconds to wait before screenshot |
block_ads, block_cookie_banners | Block unwanted content |
dark_mode | true = prefers-color-scheme: dark |
styles, scripts | Inject CSS/JS |
click, hover | Selector to interact before shot |
| Caching | |
cache | true = enable CDN caching (Vercel Edge). Saves cost, faster on repeat requests. |
cache_ttl | Cache TTL in seconds (default 14400 = 4h, max 2592000 = 30d). |
cache_key | Optional 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.
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.
| Parameter | Description |
|---|---|
scenario | default = record page as-is (for sites with CSS/JS animations). scroll = scroll down the page (default). |
duration | Max recording duration in seconds (1–30, default 5). |
frame_delay | Display duration per frame in ms (default 200). |
| Scroll scenario options | |
scroll_delay | Delay in ms between scroll steps (default 500). |
scroll_duration | Duration in ms of one smooth scroll step (default 1500). Higher = slower, smoother scroll. |
scroll_by | Pixels per scroll step (default: viewport height, max 1000). |
scroll_start_delay | Wait time in ms before starting scroll (default 0). |
scroll_start_immediately | Start scrolling immediately (default true). |
scroll_back | Scroll back to top at end (default true). |
scroll_complete | Stop when page fully scrolled (default true). Use false to record for full duration. |
scroll_stop_after_duration | Stop scrolling after this many ms. Use with scroll_complete=false. |
scroll_till_selector | Scroll until this CSS selector is visible (optional). |
clip_x, clip_y, clip_width, clip_height | Clip region of the GIF. |
cache, cache_ttl, cache_key | Same 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