Website Screenshot & PDF - Reliable Capture avatar

Website Screenshot & PDF - Reliable Capture

Pricing

$20.00 / 1,000 screenshot / pdf captureds

Go to Apify Store
Website Screenshot & PDF - Reliable Capture

Website Screenshot & PDF - Reliable Capture

Capture full-page or viewport screenshots (PNG/JPEG) and PDFs of any URL. Waits for the page to settle, dismisses cookie banners, supports device presets and custom waits. Pay only for successful captures.

Pricing

$20.00 / 1,000 screenshot / pdf captureds

Rating

0.0

(0)

Developer

Constantine

Constantine

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

a day ago

Last modified

Share

Capture full-page or viewport screenshots (PNG/JPEG) and PDFs of any URL β€” with the waiting and cookie-banner handling that make captures actually look right.

A lot of screenshot tools fire too early and hand you a half-loaded page, a spinner, or a giant cookie banner covering the content. This actor waits for the page to settle, dismisses common consent banners, and lets you wait for a specific element before it captures. You pay only for captures that succeed.


Why this actor

This actorBare screenshot tools
Page readinessWaits for networkidle (or your rule) + optional selectorOften captures before content loads
Cookie bannersAuto-dismisses common consent bannersLeft covering the page
FormatsPNG, JPEG, and paginated PDFUsually PNG only
DevicesDesktop + mobile presets, or custom viewportFixed size
BillingPay per successful capture; failures are freeCharged regardless

Features

  • πŸ–Ό PNG, JPEG, or PDF. Full-page or viewport screenshots, or a paginated A4 PDF of the page.
  • ⏳ Smart waiting. Choose load, domcontentloaded, or networkidle, and optionally wait for a CSS selector (a chart, a main element) before capturing.
  • πŸͺ Cookie-banner dismissal. Best-effort auto-close of common consent/cookie dialogs so they don't cover your shot.
  • πŸ“± Device presets. Desktop 1920/1366, iPhone, iPad, or a custom width/height.
  • πŸ”’ Authenticated pages. Pass cookies to capture pages behind a login (stored encrypted).
  • πŸ’¬ Actionable errors. Timeouts, unreachable hosts, and missing selectors come back as clear codes, not stack traces.
  • πŸ’Έ Fair pricing. One charge per successful capture. Navigation errors and timeouts cost nothing.

Input

FieldRequiredDescription
urlβœ…Page to capture (include https://).
formatpng (default), jpeg, or pdf.
fullPageCapture the whole scrollable page (PNG/JPEG). Default true.
devicedesktop_1920 (default), desktop_1366, iphone, ipad, or custom.
width / heightViewport size when device = custom.
waitUntilload, domcontentloaded, or networkidle (default).
waitForSelectorOptional CSS selector to wait for before capturing.
delayMsExtra wait after ready, for late animations (max 30000).
dismissCookieBannersAuto-close consent banners. Default true.
jpegQuality1–100, for format = jpeg.
headers / cookiesOptional custom headers / auth cookies.

Example β€” full-page PNG

{ "url": "https://news.ycombinator.com", "format": "png", "fullPage": true }

Example β€” mobile screenshot, wait for content

{
"url": "https://example.com/report",
"format": "jpeg",
"device": "iphone",
"waitForSelector": "#report-ready"
}

Example β€” PDF (A4 print output)

{ "url": "https://example.com/invoice", "format": "pdf" }

PDF uses Chromium's print rendering (paginated A4), not a device-sized screenshot.

Output

The captured file is stored in the run's key-value store (key OUTPUT), and a report is pushed to the dataset:

{
"type": "capture_report",
"status": "SUCCEEDED",
"url": "https://example.com",
"format": "png",
"assetUrl": "https://api.apify.com/v2/key-value-stores/.../records/OUTPUT.png",
"widthPx": 1920,
"heightPx": 1063,
"bytes": 84213,
"durationMs": 3120
}

Error reference

CodeMeaning
INVALID_URLURL missing or not http(s)
SSRF_BLOCKEDTarget is a private/internal address (blocked by default)
NAVIGATION_TIMEOUTPage didn't finish loading in 60s
DNS_OR_UNREACHABLEHost couldn't be reached
SELECTOR_TIMEOUTwaitForSelector never appeared
OUTPUT_TOO_LARGEFull-page height over the limit (raise maxFullPageHeightPx)
HTTP_ERRORPage returned 4xx/5xx and failOnHttpError is on
RENDER_FAILED / NAVIGATION_FAILEDRendering or navigation error

Pricing

One pay-per-event charge per successful capture. Failed captures (timeouts, unreachable hosts) are free.

FAQ

The screenshot is missing content that loads late β€” what do I do? Use waitUntil: networkidle (the default), add a waitForSelector for the element you care about, or a small delayMs.

Can it capture pages behind a login? Yes β€” pass session cookies (Playwright format). They're stored as a secret.

Full-page or viewport? fullPage: true captures the entire scrollable page; set it to false for just the visible viewport.