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.