API Documentation
Integrate url2video into your application. Create recordings programmatically.
Authentication
Include your API key in the Authorization header:
Authorization: Bearer sk_live_your_api_keyCreate Recording
POST https://api.url2video.app/v1/recordings
Content-Type: application/json
Authorization: Bearer sk_live_your_api_key
{
"url": "https://example.com",
"viewport": { "width": 1920, "height": 1080 },
"recording": {
"stay_on_first_screen_s": 2,
"scroll_behavior": "smooth",
"scroll_step_px": 600,
"scroll_pause_s": 1.2,
"stay_on_last_screen_s": 2
}
}Response
{
"recording": {
"id": "rec_abc123",
"status": "processing",
"url": "https://example.com",
"width": 1920,
"height": 1080,
"created_at": "2026-05-14T10:30:00Z"
}
}Get Recording
GET https://api.url2video.app/v1/recordings/rec_abc123
Authorization: Bearer sk_live_your_api_keyResponse (completed)
{
"recording": {
"id": "rec_abc123",
"status": "completed",
"url": "https://example.com",
"video_url": "https://cdn.url2video.app/recordings/rec_abc123/video.mp4",
"screenshot_url": "https://cdn.url2video.app/recordings/rec_abc123/screenshot.jpg",
"thumbnail_url": "https://cdn.url2video.app/recordings/rec_abc123/thumbnail.jpg",
"duration_seconds": 18.4,
"file_size_bytes": 2480000,
"paid": true,
"created_at": "2026-05-14T10:30:00Z",
"completed_at": "2026-05-14T10:30:28Z"
}
}Webhooks
Set a webhook_url when creating a recording to receive a POST when it completes.
// Webhook payload (POST to your webhook_url)
{
"recording_id": "rec_abc123",
"status": "completed",
"video_url": "https://cdn.url2video.app/recordings/rec_abc123/video.mp4",
"duration_seconds": 18.4,
"file_size_bytes": 2480000
}Rate Limits
| Plan | Limit |
|---|---|
| Free (anonymous) | 3 recordings/day per IP |
| Pro ($19/mo) | 50 recordings/month |
| Scale ($49/mo) | 500 recordings/month |