Video and animated GIF
Scroll-through recordings from 1 to 30 seconds.
POST /v1/animate
{
"url": "https://example.com",
"scenario": "scroll",
"duration": 8,
"format": "mp4",
"width": 1280,
"aspect_ratio": "16:9",
"scroll_easing": "ease_in_out_quint",
"scroll_back": true
}
Formats: mp4, mov, avi, webm and animated gif. Duration is 1 to 30 seconds; the default is 5. format defaults to mp4 on this endpoint.
Scrolling is animated inside the page with requestAnimationFrame, not by stepping from outside — stepping across the protocol produces a visibly stuttering video.
Shaping the scroll
The scroll advances scroll_by pixels per step (default 1000, or the viewport height when set to 0), animating each step over scroll_duration milliseconds and pausing scroll_delay between them. scroll_easing picks from fifteen curves plus linear; the default is ease_in_out_quint.
Where it stops:
scroll_till_selector— stop when an element is reached, offset byscroll_till_selector_adjust_top;scroll_stop_after_duration— stop after a number of milliseconds regardless of how much page is left;scroll_to_end_after— abandon stepping and run straight to the bottom.
scroll_back returns to the top when the scroll ends, once or on repeat for the whole recording, optionally starting at scroll_back_after_duration. scroll_complete (default true) holds the recording for the full duration even when the scroll finishes early.
Site tour
scroll_try_navigate=true follows a link mid-recording to produce a tour. It looks for the first link whose text matches scroll_navigate_link_hints (default pricing, about, customers), or goes to scroll_navigate_to_url when you name one, at scroll_navigate_after milliseconds — half the duration by default.
The destination passes the same egress policy as the main URL. A link pointing at a private address is skipped, not followed.
Clipping
clip_x, clip_y, clip_width and clip_height crop the recording, and only for format=gif. The recording itself is always made at viewport size; the crop happens in the encoder.
A recording costs one credit, exactly like a static capture.
Video is available on Growth and above. If a format is unavailable on the pool that served you, the error says so explicitly instead of failing generically.