Website Screenshot API: Full Page, Bulk & PDF avatar

Website Screenshot API: Full Page, Bulk & PDF

Pricing

from $3.00 / 1,000 screenshots

Go to Apify Store
Website Screenshot API: Full Page, Bulk & PDF

Website Screenshot API: Full Page, Bulk & PDF

Website screenshot API for bulk, true full-page captures from URLs or sitemaps: lazy images loaded, sticky headers and cookie banners removed. PNG/JPEG/WebP/PDF, change detection. No subscription: $0.004 per screenshot, under half the entry-plan rate of ScreenshotOne and Urlbox. Failed URLs free.

Pricing

from $3.00 / 1,000 screenshots

Rating

0.0

(0)

Developer

Tobby Tools

Tobby Tools

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

6 days ago

Last modified

Share

Full-page website screenshots that are actually complete: in bulk, from URLs or a sitemap, for $0.004 each with no subscription.

Proof
Won a 30-site head-to-head on Apify (18 Oct 2026)24 / 30 complete and visually correct, vs 19 and 18 for two other screenshot Actors (how we tested)
Price$0.004 per screenshot, less than half the per-screenshot price of the entry plans at ScreenshotOne, Urlbox and ScreenshotAPI.net (price table)
Failed URLsFree. A page that can't be captured comes back as an error item with a fix, not as a picture of a bot wall
Open examplesCopy-paste curl, Node.js, Python, n8n, Google Sheets and GitHub Actions examples: github.com/tobbytools/website-screenshot-examples

Take a website screenshot of any public page, or bulk screenshots of thousands of URLs or a whole sitemap, in one run. You get a true full page screenshot: lazy-loaded images are scrolled into view, sticky and fixed headers are not repeated down the page, cookie banners are dismissed, and emoji and Chinese/Japanese/Korean text render correctly. Export to PNG, JPEG, WebP or PDF and use it as a screenshot API from Make, Zapier, n8n, Google Sheets or your own code.

No monthly subscription: $0.004 per screenshot, and you pay only for screenshots delivered. That is less than half the per-screenshot price of the entry plans at ScreenshotOne ($0.0085), Urlbox ($0.0098) and ScreenshotAPI.net ($0.009) (list prices checked 18 Oct 2026, see the price comparison).

What this website screenshot tool does

  • Full page screenshots that are actually complete. The page is scrolled so lazy images load. Tall pages up to 30,000 px are captured in slices without the blank blocks, cut-offs or repeated headers other tools leave. Every result says whether the page was captured completely (fullPageComplete).
  • Bulk screenshots. Paste a list of URLs, or give a sitemap.xml and every page is captured. Runs in parallel with automatic retries.
  • Devices. Desktop (1440 px), Full HD, laptop, tablet (iPad) and mobile (iPhone), or set your own viewport width, height and pixel ratio.
  • Formats. PNG, JPEG, WebP and PDF (A4/Letter, screen or print CSS), alone or together.
  • Element screenshots. Capture just one element with a CSS selector, such as a pricing table, chart or tweet embed.
  • Waiting. Wait for a selector to appear, add a delay, or choose the load event.
  • Clean shots. Cookie and consent banners are blocked or accepted, ad slots are collapsed, chat widgets and pop-ups are hidden. You can hide your own selectors, click elements first, or inject CSS.
  • Dark mode, reduced motion, locale, time zone, cookies, custom user agent, plus optional Apify Proxy.
  • Visual change detection. Give the run a monitor name and every run is compared with the previous one. You get the % of pixels changed, a changed flag over your threshold, and a red-highlighted diff image. Schedule it to watch competitors, landing pages or regressions.
  • Clear errors, never charged. A URL that cannot be captured (DNS failure, 404, timeout, bot wall) comes back as an error item that says what went wrong and how to fix it, and you are not charged for it.
  • Google Sheets-friendly output. Every row has a ready-made =IMAGE("…") formula and a flat "Sheets" dataset view. A GALLERY.html report shows every screenshot on one page.

Use cases

  • Competitor and landing-page monitoring. Schedule a run with changeDetectionName; you get the % of pixels changed, a changed flag and a red-highlighted diff image when a page moves.
  • Visual QA after a deploy. Capture every page in your sitemap.xml on desktop and mobile and compare with the last run.
  • Client and SEO reports. Export the "Sheets" view: every row has a ready-made =IMAGE() formula, and GALLERY.html shows all shots on one page.
  • Archiving and evidence. Full-height PNG/JPEG or PDF of a page as it looked today, with fullPageComplete telling you whether the whole page was captured.
  • Page images for AI agents and automations. Call it from n8n, Make, Zapier, the Apify API, or Apify's MCP server so an agent can "look" at a page.

Quick start: how to take a full page screenshot

  1. Add one or more URLs (or a sitemap URL).
  2. Pick devices and formats. The defaults are desktop, JPEG, full page.
  3. Click Start. Each screenshot is in the Output tab and the key-value store. Open GALLERY.html for a visual overview.

To call it as a screenshot API, run the Actor synchronously and read the dataset:

curl -X POST "https://api.apify.com/v2/acts/tobbyb~website-screenshot/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls":["https://stripe.com"],"devices":["desktop","mobile"],"formats":["png"]}'

Input example

{
"urls": ["https://stripe.com", "https://www.theguardian.com/international"],
"sitemapUrls": [],
"devices": ["desktop", "mobile"],
"formats": ["jpeg", "pdf"],
"fullPage": true,
"waitForSelector": "",
"darkMode": false,
"changeDetectionName": "competitor-homepages",
"changeThresholdPercent": "1"
}

Output example (real result)

{
"status": "ok",
"url": "https://stripe.com/",
"title": "Stripe | Financial Infrastructure to Grow Your Revenue",
"device": "desktop",
"viewport": "1440x900@1x",
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/<store-id>/records/stripe-com-desktop-06a231.jpg?signature=…",
"format": "jpeg",
"imageWidth": 1440,
"imageHeight": 15455,
"fileSizeBytes": 2196536,
"captureMode": "full-page",
"pageHeight": 15455,
"capturedHeight": 15455,
"fullPageComplete": true,
"httpStatus": 200,
"stickyElementsFixed": 1,
"overlaysHidden": 1,
"lazyLoadScrollSteps": 2,
"totalTimeMs": 22246,
"sheetsImageFormula": "=IMAGE(\"https://api.apify.com/v2/key-value-stores/<store-id>/records/stripe-com-desktop-06a231.jpg?signature=…\")",
"change": null,
"charged": true
}

An error item (not charged):

{
"status": "error",
"url": "https://medium.com/",
"errorCode": "BLOCKED",
"errorTitle": "Blocked by a bot check",
"howToFix": "The site showed a CAPTCHA / \"verify you are human\" page. This Actor does not bypass bot protection. Try the proxy, capture a different page, or get permission from the site owner.",
"charged": false
}

How it compares

We captured the same 30 real pages (Stripe, the Guardian, BBC, Wikipedia, Vercel, emoji sites, Japanese Wikipedia, news sites with sticky headers and lazy-loaded feeds) with three Actors on the Apify platform, on 18 Oct 2026:

This ActorGeneric screenshot Actor ABudget screenshot API B
Complete & visually correct24 / 3019 / 3018 / 30
Full page captured (reachable pages)27 / 2825 / 2821 / 28
Colour emoji✅❌ (mono/boxes)✅
Consent / sign-in pop-ups left in the image143
Bot-blocked pagesfree error item with a fiximage of the block pageimage of the block page
Time for the 30 URLs652 smore than 2,488 s (stopped by us at 29 URLs)258 s

Evidence: side-by-side images of all 30 pages and every competitor run ID are in the example repo's benchmark folder. 13 of the 30 rows were judged on captured height vs. true page height only; the rest were inspected visually.

Price comparison with screenshot APIs

List prices from each provider's public pricing page, checked 18 Oct 2026, monthly billing. "Per screenshot" assumes you use the whole monthly quota; if you use less, a subscription costs more per screenshot. We compared prices only, not output quality.

Monthly feeIncludedPer screenshot1,000 screenshots/month costs
This Actornonepay per use$0.004$4
ScreenshotOne Basic$172,000$0.0085$17
Urlbox Hi-Fi$495,000$0.0098$49
ScreenshotAPI.net Essential$91,000$0.009$9
ApiFlash Lite$71,000$0.007$7

At higher volumes, bigger plans can cost less per screenshot than this Actor (for example ApiFlash Medium, $35 for 10,000 = $0.0035). Scraping APIs with a screenshot option can also be cheaper if you use the whole quota (ScrapingBee Hobby: $19 for 15,000 JavaScript-rendered screenshots). Urlbox's $19 Lo-Fi plan (2,000) is for sites you own and gives only thumbnails of other sites. ScreenshotOne and ApiFlash also have free tiers of 100 screenshots a month. Here, a full page screenshot counts as one screenshot, however tall it is, and failed URLs are free.

FAQ

How long can a full page screenshot be? Up to 30,000 px by default (maxHeight). Very tall pages are cut there and flagged with fullPageComplete: false and truncatedReason, so you always know.

Why is my screenshot missing content further down? Some sites load content only while you scroll. This happens automatically. If a part still loads slowly, add waitForSelector or a delayMs.

Can it capture pages behind a login? Pass session cookies for the site. Only capture pages you are allowed to access.

Does it bypass CAPTCHAs or bot protection? No. Blocked pages come back as a free error item with advice. You can try Apify Proxy.

Can I screenshot just one element? Yes. Set selector to a CSS selector.

How do I monitor a page for visual changes? Set changeDetectionName and schedule the Actor. Each run compares with the previous one and reports change.diffPercent, change.changed and a diff image.

How do I show screenshots in Google Sheets? Export the "Sheets" view, or use the sheetsImageFormula column directly. The image URLs are signed and keep working.

Is there a free trial? Apify's free plan includes monthly platform credit you can spend on this Actor. A run with the default input (one desktop JPEG of example.com) costs one screenshot, $0.004.

How do I call it from code? Use the run-sync-get-dataset-items endpoint shown in the quick start, or the apify-client package for Node.js or Python. Ready-to-run examples: github.com/tobbytools/website-screenshot-examples.

What am I charged for? $0.004 per screenshot file delivered (one URL × device × format). There is no subscription or start fee. Failed URLs and error items are free. You can cap spend with the run's maximum cost setting, and the run stops before going over it.

Is it legal to take screenshots of websites? Capturing public pages for monitoring, archiving, QA or research is common. Respect each site's terms and copyright, don't capture personal data you have no right to process, and don't republish screenshots in ways the rights holder hasn't allowed.