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/animate
curl "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

ParameterDefaultDescription
formatmp4mp4 (H.264), webm (VP9) or gif.
duration5Length in seconds, 1–15.
scenarioscrollscroll scrolls through the whole page; default records the page as it is, e.g. an animation or a loading sequence.
scroll_easingease_in_outease_in_out, linear, ease_in or ease_out.
scroll_backfalseScroll back up to the top at the end.
scroll_start_delay500Milliseconds to show the top of the page before scrolling (0–5000).
fps30Frames per second, 5–30 (GIF default 10).
gif_width640GIF 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.