Skip to main content
POST

Authorizations

X-API-Key
string
header
required

Programmatic auth for the /v1/screenshots and /v1/usage endpoints. Create a key from the dashboard (POST /v1/keys); the plaintext value is shown once at creation.

Body

application/json
url
string<uri>
required

The page to capture.

Example:

"https://example.com"

format
enum<string>
default:png

Output image format. webp is Pro-only.

Available options:
png,
jpeg,
webp
width
integer

Viewport width in pixels. Defaults to 1920, capped to the plan's maximum (Free 1920, Pro 3840).

Required range: x >= 1
height
integer

Viewport height in pixels. Defaults to 1080, capped to the plan's maximum (Free 1080, Pro 2160).

Required range: x >= 1
full_page
boolean
default:false

Capture the full scrollable page instead of just the viewport. Available on Free and Pro.

quality
integer
default:80

Compression quality for jpeg/webp output.

Required range: 1 <= x <= 100
fresh
boolean
default:false

Bypass the response cache and force a new render. Pro-only.

Response

Screenshot captured (or served from cache).

image_url
string<uri>
required

Hosted URL of the captured image.

cached
boolean
required

True if this response was served from the ~15-minute result cache rather than a fresh render.

expires_at
string<date-time>
required

When the image is purged per the plan's retention window (Free 7 days, Pro 30 days).

quota
object
required
id
integer | null

Present only when the capture is backed by a listable/deletable database row (Pro plan). Free-plan captures still return an image_url but omit id — there is nothing to pass to DELETE /v1/screenshots/{id} or expect back from GET /v1/screenshots.