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_key

Create 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_key

Response (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

PlanLimit
Free (anonymous)3 recordings/day per IP
Pro ($19/mo)50 recordings/month
Scale ($49/mo)500 recordings/month