Capture a screenshot

Sync by default (holds up to 28s). Pass `?async=true` to return 202 immediately. Poll via GET /v1/screenshots/{id}.

POST
/v1/screenshots

Authorization

AuthorizationRequiredBearer <token>

API key. Manage keys from the dashboard at app.bytekit.com.

In: header

Request Body

application/jsonRequired
urlRequiredstring
Format: "uri"
devicestring
Default: "desktop"Value in: "desktop" | "mobile"
viewportobject
Default: null
full_pageboolean
Default: false
formatstring
Default: "jpeg"Value in: "jpeg" | "png"
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
scrollboolean
Default: true
clipobject
Default: null
headersobject
Default: {}
cookiesarray<object>
Default: []
dark_modeboolean
Default: false
device_scale_factorinteger | null
Default: nullValue in: 1 | 2 | null
include_htmlboolean
Default: false
countrystring
Default: "US"Pattern: "^[A-Z]{2}$"
languagestring | null
Default: null
metadataobject

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

Query Parameters

asyncboolean
Default: false
curl -X POST https://api.bytekit.com/v1/screenshots \
  -H "Authorization: Bearer sk_live_your_api_key_here"

Screenshot completed (sync mode).

{
  "id": "ss_01j9abc123",
  "status": "pending",
  "url": "string",
  "image_url": "string",
  "page_title": "string",
  "image_width": 0,
  "image_height": 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"
}