Scrolling videos
Record a page for a few seconds, scrolling from top to bottom by default, as MP4, WebM or GIF. For product demos, social posts, landing-page previews and showing a bug in motion. 5 credits per video.
GET | POST
/v1/animatecurl "https://shotlane.dev/v1/animate?url=astro.build&duration=6&format=mp4" \ -H "X-API-Key: $SHOTLANE_API_KEY" -o astro.mp4
The response is the video. With response_type=json you get a 24-hour link instead. Page options from screenshots work too: device, width/height (up to 1920×1080), dark_mode, hide_cookie_banners, block_ads, cookies, wait_for_selector, click, css…
Options
| Parameter | Default | Description |
|---|---|---|
format | mp4 | mp4 (H.264), webm (VP9) or gif. |
duration | 5 | Length in seconds, 1–15. |
scenario | scroll | scroll scrolls through the whole page; default records the page as it is, e.g. an animation or a loading sequence. |
scroll_easing | ease_in_out | ease_in_out, linear, ease_in or ease_out. |
scroll_back | false | Scroll back up to the top at the end. |
scroll_start_delay | 500 | Milliseconds to show the top of the page before scrolling (0–5000). |
fps | 30 | Frames per second, 5–30 (GIF default 10). |
gif_width | 640 | GIF width in pixels (200–1280); GIFs get large quickly. |
Examples
A phone-sized scroll for social media
curl "https://shotlane.dev/v1/animate?url=stripe.com&device=iphone&duration=8&hide_cookie_banners=true" \ -H "X-API-Key: $SHOTLANE_API_KEY" -o stripe.mp4
A GIF for a README
curl "https://shotlane.dev/v1/animate?url=your-app.com&format=gif&duration=4&width=1000&height=700&gif_width=800" \ -H "X-API-Key: $SHOTLANE_API_KEY" -o demo.gif
Videos take longer than screenshots: about 2× the duration plus page load. One video is recorded at a time per server; if another is in progress you get a 503 to retry. Failed recordings and bot-protection pages are refunded.