Website Screenshot API — Full Page, Mobile & PDF avatar

Website Screenshot API — Full Page, Mobile & PDF

Pricing

from $8.00 / 1,000 screenshots

Go to Apify Store
Website Screenshot API — Full Page, Mobile & PDF

Website Screenshot API — Full Page, Mobile & PDF

Screenshot any URL: full-page or viewport, desktop, tablet or mobile, JPEG, PNG or PDF. Hides cookie banners, loads lazy images, captures single elements. Returns a public image link per URL. Pay only for successful screenshots.

Pricing

from $8.00 / 1,000 screenshots

Rating

0.0

(0)

Developer

Erich Michal Sikora

Erich Michal Sikora

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Share

Turn any list of URLs into full-page screenshots (PNG, JPEG) or PDFs. Desktop, tablet or mobile. Cookie banners hidden. You pay only for screenshots that succeed.

You giveYou get, per URL
["apify.com", "https://example.com/pricing"]A public link to the image or PDF, plus page title, HTTP status, page height and file size — in one table you can export to CSV, Excel or JSON

What it's for

  • Visual monitoring: schedule it daily and keep a visual history of your pages, competitors' pricing pages or landing pages.
  • Reports and audits: attach screenshots of client websites to SEO, design or accessibility reports.
  • Mobile checks: see how a page renders on a phone or tablet without owning one.
  • Archiving and evidence: save a page as PDF or PNG with a timestamp (capturedAt).
  • AI agents: give your agent eyes — call this Actor via the Apify API or MCP and pass screenshotUrl to a vision model.

Why this one

  • ✅ Pay per successful screenshot. Timeouts, 404s, blocked pages and invalid URLs cost you nothing. No surprise compute bills.
  • ✅ Full page, done right. Scrolls the page first so lazy-loaded images actually appear, then captures the whole length.
  • ✅ Cookie banners hidden (OneTrust, Cookiebot, Didomi, Usercentrics and custom ones) with CSS — nothing is clicked or accepted.
  • ✅ Desktop, Desktop HD, tablet and mobile presets, custom viewport, dark mode.
  • ✅ PNG, JPEG or PDF. Screenshot a single element with a CSS selector (e.g. .pricing-table).
  • ✅ Hide anything you don't want in the picture: chat widgets, sticky headers, ads.
  • ✅ Parallel: 4 pages at a time by default, up to 20.

How to use

  1. Paste your URLs (one per line — bare domains like apify.com work too).
  2. Pick format and device. Defaults: JPEG, desktop 1280 px, full page.
  3. Click Start. Open the Screenshots tab to see thumbnails, or download the table.

Via API (JavaScript):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('<username>/website-screenshot').call({
urls: ['https://apify.com', 'https://example.com'],
device: 'mobile',
format: 'jpeg',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((i) => i.screenshotUrl));

Output

One row per URL:

{
"url": "https://apify.com/",
"finalUrl": "https://apify.com/",
"httpStatus": 200,
"title": "Apify: Marketplace of ready-to-run tools for AI",
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/.../records/apify-com-e99c9a65d70a.jpg",
"format": "jpeg",
"device": "desktop",
"fullPage": true,
"viewportWidth": 1280,
"pageWidth": 1280,
"pageHeight": 10036,
"bytes": 312804,
"captureMs": 262,
"consentWall": false,
"error": null,
"capturedAt": "2026-09-23T14:03:11.402Z"
}

Failed pages get a row too, with error filled in (e.g. page returned HTTP 404) — and no charge.

Files are stored in the run's key-value store. They are kept according to your Apify data retention settings; download them if you need them longer.

Pricing

$8 per 1,000 successful screenshots ($0.008 each) plus $0.005 per run for starting the browser. Only screenshots that were actually produced are charged.

Example: a daily run with 20 pages for a month = 600 screenshots + 30 runs ≈ $4.95.

Set Maximum cost per run in the run options and the Actor stops cleanly when it's reached.

Input options

OptionDefaultWhat it does
urls—Pages to capture
formatjpegjpeg, png or pdf
devicedesktopdesktop (1280×800), desktop-hd (1920×1080), tablet (820×1180), mobile (412×915)
fullPagetrueWhole page, or only the visible viewport
scrollToBottomtrueScroll first so lazy images load
hideCookieBannerstrueHide cookie/consent pop-ups with CSS
delayMs1000Extra wait before capture
waitUntilloadload, domcontentloaded or networkidle
waitForSelector—Wait for an element before capturing
elementSelector—Capture just one element
hideSelectors—Elements to hide
darkModefalseRequest the dark color scheme
viewportWidth / viewportHeightdeviceCustom size
quality80JPEG quality
timeoutSecs60Per-page timeout
maxHeight20000Cut full-page screenshots at this height (px)
maxConcurrency4Pages in parallel

Limitations — read before you buy

  • Public pages only. No logins, no cookies you supply.
  • We respect website rules. Pages disallowed by the site's robots.txt and pages that refuse automated access (HTTP 401/403/429) are reported as errors and not charged. The Actor never tries to get around CAPTCHAs or bot checks — if a site shows one instead of its content, that is what the screenshot shows.
  • "Accept or subscribe" walls are not removed. Some publishers (e.g. many European news sites) require you to accept tracking or pay before showing content. That is a condition of access, so the Actor leaves it visible and sets consentWall: true so you can filter those rows.
  • Full-page screenshots are cut at 20,000 px by default (maxHeight, up to 50,000). Endless-scroll feeds are captured as far as they have loaded.
  • Videos are not loaded (they don't show in a still image anyway).

FAQ

Is there a free alternative? Apify's own "Website Screenshot Generator" has no Actor fee, but you pay the compute time — which depends on how slow each page is, and failed or timed-out pages cost the same. Here the price is fixed upfront, failures are free, and you get mobile/tablet views, PDF, element screenshots and cookie-banner hiding.

Can I use it from an AI agent? Yes. It's a plain pay-per-event Actor with a small input, so it works through the Apify MCP server and API.

Something doesn't look right? Open an issue on the Actor's Issues tab with the URL and settings.