API ReferenceRecordings

Create a scrolling recording

Always async — returns 202. Poll via GET /v1/recordings/{id}.

POST
/v1/recordings

Authorization

AuthorizationRequiredBearer <token>

API key. Obtain from POST /v1/account/api-keys.

In: header

Request Body

application/jsonRequired
urlRequiredstring
Format: "uri"
formatstring
Default: "mp4"Value in: "mp4" | "webm" | "gif" | "mov"
scenariostring
Default: "scroll"Value in: "scroll" | "static" | "navigate"
durationinteger

Duration in seconds. GIF max is 15s.

Default: 5Minimum: 1Maximum: 30
devicestring
Default: "desktop"Value in: "desktop" | "mobile"
viewportobject
Default: null
output_widthinteger | null
Default: nullMinimum: 1
output_heightinteger | null
Default: nullMinimum: 1
qualityinteger
Default: 80Minimum: 1Maximum: 100
block_adsboolean
Default: true
block_cookie_bannersboolean
Default: true
wait_untilstring
Default: "load"Value in: "load" | "domcontentloaded" | "networkidle"
wait_for_selectorstring | null
Default: null
delay_msinteger
Default: 0Minimum: 0Maximum: 10000
scrollobject
headersobject
Default: {}
cookiesarray<object>
Default: []
dark_modeboolean
Default: false
countrystring
Default: "US"Pattern: "^[A-Z]{2}$"
languagestring | null
Default: null
timezonestring | null
Default: null
clipobject
Default: null
metadataobject

Arbitrary key-value metadata. Max 4096 bytes when JSON-serialized.

curl -X POST "https://api.bytekit.com/v1/recordings" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "http://example.com",
    "format": "mp4",
    "scenario": "scroll",
    "duration": 5,
    "device": "desktop",
    "viewport": null,
    "output_width": null,
    "output_height": null,
    "quality": 80,
    "block_ads": true,
    "block_cookie_banners": true,
    "wait_until": "load",
    "wait_for_selector": null,
    "delay_ms": 0,
    "scroll": {
      "speed": 3,
      "delay_ms": 0,
      "complete": true,
      "scroll_back": "none",
      "scroll_back_delay_ms": 500,
      "scroll_to_selector": null,
      "stop_after_ms": null,
      "jump_to_end_after_ms": null,
      "start_immediately": true,
      "start_delay_ms": 0
    },
    "headers": {},
    "cookies": [],
    "dark_mode": false,
    "country": "US",
    "language": null,
    "timezone": null,
    "clip": null,
    "metadata": {}
  }'

Recording accepted.

{
  "id": "rec_01j9abc123",
  "status": "pending",
  "url": "string",
  "format": "mp4",
  "scenario": "scroll",
  "duration_requested": 0,
  "video_url": "string",
  "thumbnail_url": "string",
  "page_title": "string",
  "duration_actual_ms": 0,
  "file_size_bytes": 0,
  "credits_charged": 0,
  "error_code": "string",
  "error_message": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "completed_at": "2019-08-24T14:15:22Z",
  "expires_at": "2019-08-24T14:15:22Z",
  "poll_url": "string"
}