Skip to main content
POST
Captures a full-page screenshot with headless Chromium: navigates to the URL, waits for the network to settle, scrolls to trigger lazy-loaded content and reveal animations, then encodes the result. The finished image is written to temporary storage and its filename returned — fetch the actual bytes from the download path described below.
2 credits per call

Body parameters

string
required
The page to capture. https:// is assumed if the scheme is omitted.
string
default:"png"
Output image format: png, jpeg, or webp.
string
default:"desktop"
Viewport to render at: desktop or mobile.
string
default:"light"
Emulated prefers-color-scheme while rendering: light or dark. Affects any site that themes off this media query.

Response

boolean
required
string
required
Name of the generated file. Download it from /api/uploads/<filename> on the same host — the file is temporary and removed after roughly 5 minutes.
integer
required
Size of the encoded image.
string
required
Echoes the requested format.
string
required
File extension for the download (jpg for the jpeg format, otherwise matches format).
boolean
required
true if the page was taller than the capture cap and the image was clipped rather than capturing the full height.
integer
required
Total server-side time for the capture.

Response headers

In addition to the standard headers, this endpoint sends:
string
HIT if served from the short-lived result cache without touching Chrome, otherwise MISS.
string
Mirrors clipped in the body.
string
Per-stage breakdown (queue, page, nav, net, scroll, settle, encode, total, all in ms) — renders as a waterfall in your browser’s devtools Network panel.

Errors

See the full error reference for the platform-level codes (401, 402, 429) that apply to every endpoint.