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 by scroll_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.

Run this without writing code

These tools call the endpoint documented on this page. Whatever you configure there carries into the playground with you.