Video & GIF Recording
Record any webpage as a video: page load animations, interactions, or a smooth scroll from top to bottom. Returns MP4, WebM, or high-quality GIF.
Video recording is available on Growth plan and above.
Endpoint
POST
/v1/videoRequest body
{
"url": "https://stripe.com",
"format": "mp4",
"duration": 5,
"width": 1280,
"height": 720
}| Parameter | Type | Default | Description |
|---|
Response
Binary video file with appropriate Content-Type header (video/mp4, video/webm, or image/gif) and Content-Disposition: attachment.
Scrolling screenshot shortcut
Use GET /v1/scroll for a quick scrolling GIF/MP4 without a JSON body:
GET
/v1/scrollcurl "https://api.snapsharp.dev/v1/scroll?url=https://stripe.com&format=gif&duration=6" \
-H "Authorization: Bearer sk_live_..." \
-o scroll.gif| Parameter | Type | Default | Description |
|---|
Examples
cURL — Record as MP4
curl -X POST https://api.snapsharp.dev/v1/video \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"url":"https://stripe.com","format":"mp4","duration":5}' \
-o recording.mp4cURL — Scrolling GIF
curl -X POST https://api.snapsharp.dev/v1/video \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"url":"https://stripe.com","format":"gif","scroll":true,"duration":8,"scroll_speed":4}' \
-o scroll.gifNode.js
const fs = require('fs');
const response = await fetch('https://api.snapsharp.dev/v1/video', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_live_...',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://stripe.com',
format: 'mp4',
duration: 5,
width: 1280,
height: 720,
}),
});
const buffer = await response.arrayBuffer();
fs.writeFileSync('recording.mp4', Buffer.from(buffer));Python
import requests
response = requests.post(
'https://api.snapsharp.dev/v1/video',
headers={'Authorization': 'Bearer sk_live_...'},
json={
'url': 'https://stripe.com',
'format': 'gif',
'scroll': True,
'duration': 6,
'scroll_speed': 3,
},
)
with open('scroll.gif', 'wb') as f:
f.write(response.content)Plan limits
| Plan | Max Duration | Max FPS | Max Resolution |
|---|---|---|---|
| Free | ❌ | — | — |
| Starter | ❌ | — | — |
| Growth | 10s | 24 | 1280px |
| Business | 30s | 30 | 1920px |
| Enterprise | 60s | 30 | 1920px |