Authenticated pages
Screenshot pages that require a login
Dashboards, admin panels and per-customer views — captured with the same session your user would have.
authenticated page screenshot api · request and resultPAGECAPTURE / 01
TypeScript
const response = await fetch("https://api.pagecapture.dev/v1/take", {
method: "POST", // always POST when a credential is involved
headers: {
"X-Access-Key": process.env.PAGECAPTURE_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({
url: "https://app.example.com/reports/42",
cookies: ["session=abc123; Domain=.example.com; Path=/; Secure"],
authorization: "Bearer eyJhbGciOi...",
wait_for_selector: "[data-report-ready]",
format: "png",
}),
});Capture result
succeededhttps://example.com
Noma
Shop nowNEW COLLECTION
Objects for slower mornings.
Thoughtful essentials, made in small batches from natural materials.
Explore the collectionOur materials
No. 01 · Hinoki
PLANT-BASEDMADE IN SMALL BATCHESREFILLABLE
- Artifact
- PNG · 1440×900
- Billing
- 1 credit
- Engine
- stable
Cookies, headers, Authorization
Sent exactly as you specify. Without an explicit Domain, a cookie is anchored to the URL you are capturing.
Encrypted and destroyed
Credentials are separated before storage, encrypted with AES-256-GCM, decrypted only in the worker and destroyed with the job.
Never in a log
They do not appear in the request log, the normalized options, or any error message.
Cached without leaking
The cache key includes a hash of your credentials, so two sessions never share a result — and the values stay out of the key.
Pricing
One credit per successful capture. Failures and cache hits are free.