Website Screenshot & PDF avatar

Website Screenshot & PDF

Pricing

from $2.50 / 1,000 screenshots

Go to Apify Store
Website Screenshot & PDF

Website Screenshot & PDF

Take screenshots of web pages, or save them as PDF. Full page or visible area, desktop, tablet or phone size, PNG, JPEG or WebP. Hide elements by CSS selector, scroll first so lazy images load. One file and one result row per page.

Pricing

from $2.50 / 1,000 screenshots

Rating

0.0

(0)

Developer

Sanira Botheju

Sanira Botheju

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Share

What does Website Screenshot & PDF do?

Website Screenshot & PDF opens each web page you list in a real browser (headless Chrome) and saves it as an image (PNG, JPEG or WebP) or a PDF. You get one file and one result row per page, with a link to the file, the HTTP status of the page, its title, and the size of the file.

  • Full page from top to bottom, or only the part you see without scrolling
  • Desktop, tablet or phone screen, with your own width and height for desktop, and a pixel density of 1 to 3
  • Scrolls down the page once before capturing, so images that load only when you reach them are in the picture
  • Hides the elements you name by CSS selector, for example a banner, a chat bubble or a pop-up
  • Waits for the page to load, for the network to go quiet, or for a time you set
  • A page that is slow, missing or blocked becomes a result with a clear error code instead of stopping the run

What data do you get?

FieldExample
Page (url)https://crawlee.dev
Final address (finalUrl)https://crawlee.dev/
HTTP status (httpStatus)200
Title (title)Crawlee · Build reliable crawlers. Fast.
File link (fileUrl) and name (fileKey)002-crawlee.dev.png
Format, width and heightpng, 1280 x 2874 pixels
Size of the file (bytes)321952
Time (timeMs)6269
Warnings and error[], null

The files are saved in the run's key-value store under readable names such as 001-apify.com.png, in the order of your list.

How to take a screenshot of a web page

  1. Under Web addresses, add the pages, paste a list with Bulk edit, or link a text file that lists them.
  2. Choose the File format and whether to capture the whole page.
  3. Press Start.
  4. Open the Captured pages table, click the link in the File column, or download all files from the key-value store.

How much does it cost to take screenshots?

You pay per page: $3.50 per 1,000 screenshots. Apify subscribers on the Silver plan pay $3.00 and on the Gold plan $2.50 per 1,000. Each run also has a start fee of $0.00005 per GB of memory ($0.0001 at the default 2 GB). The price does not depend on how tall the page is or how long it takes.

PagesCost
10$0.035
100$0.35
1,000$3.50
10,000$35.00

Every page in your list counts as one result, including a page that could not be captured: the result then holds the error. Duplicate addresses in your list are captured, and paid, once. Apify's free plan includes $5 of credit each month, which covers about 1,400 screenshots. Set a maximum cost for the run in Apify Console and the tool stops there and keeps what it has captured.

Input

Only Web addresses is required. The other settings:

FieldWhat it does
formatpng (default), jpeg, webp or pdf
fullPageWhole page (default) or only the visible area; PDFs always hold the whole page
devicedesktop (uses your width and height, default 1280 x 800), tablet (820 x 1180) or mobile (390 x 844)
deviceScaleFactorPixel density 1 to 3; empty uses the screen's own (1 for desktop, 2 for tablet and phone)
waitUntilload (default), domcontentloaded (faster) or networkidle2 (waits until the page stops fetching data)
delayMsExtra wait in milliseconds before capturing
scrollToLoadScroll through the page first so lazy images load (default on)
blockTrackersSkip well-known analytics and advertising hosts (default on, see the FAQ)
hideSelectorsCSS selectors of elements to hide
qualityJPEG and WebP quality, 1 to 100 (default 80)
pdfFormat, printBackgroundPDF paper size (A4 or Letter) and whether backgrounds are printed
maxHeightCuts a full-page image at this height in pixels (default 16,000)
timeoutSecsHow long to wait for a page to load (default 45)
concurrencyPages at the same time, 1 to 5 (default 2)
{
"urls": [{ "url": "https://crawlee.dev" }],
"format": "jpeg",
"fullPage": true,
"device": "mobile",
"hideSelectors": ["#cookie-banner", ".chat-widget"],
"quality": 85
}

Output example

One record per page:

{
"url": "https://crawlee.dev",
"position": 1,
"finalUrl": "https://crawlee.dev/",
"httpStatus": 200,
"title": "Crawlee · Build reliable crawlers. Fast.",
"fileKey": "001-crawlee.dev.png",
"fileUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/001-crawlee.dev.png",
"format": "png",
"width": 1280,
"height": 2874,
"pages": null,
"bytes": 321952,
"truncated": false,
"skippedTrackers": 2,
"timeMs": 3105,
"capturedAt": "2026-10-16T08:30:00.000Z",
"warnings": [],
"error": null
}

A page that could not be captured has error with a code such as DNS_NOT_FOUND, CONNECTION_REFUSED, TIMEOUT, TLS_CERTIFICATE_EXPIRED, TOO_MANY_REDIRECTS, NOT_A_WEB_PAGE (a file download) or BLOCKED_ADDRESS, and no file. A page that answers with an error status, such as 404 or 500, is captured: the screenshot shows what a visitor sees, httpStatus holds the status and warnings says so. For a PDF, pages holds the number of pages and width and height are empty.

What can you use it for?

  • Visual archives: keep a picture of a page as it was on a given day, for records or evidence
  • Monitoring layouts: put the tool on a schedule in Apify Console and compare the pictures of your own pages over time
  • Thumbnails and previews of pages in a directory, a report or a dashboard
  • Saving pages as PDF: articles, invoices, receipts and documentation
  • Checking how a page looks on a desktop, a tablet and a phone before and after a release

Use it from the API

curl -X POST "https://api.apify.com/v2/acts/cyber1nj3ct0r~website-screenshot/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls": [{"url": "https://apify.com"}], "format": "png", "fullPage": false}'

The same works from Python, JavaScript, Make, Zapier and n8n through Apify's integrations. The result rows hold fileUrl; the files can also be fetched from the run's key-value store by fileKey.

FAQ

Does it capture the whole page?

With Capture the whole page on, the image runs from the top of the page to its end, at the width of the screen, up to Maximum page height (16,000 pixels by default) and about 50 million pixels in total. A taller page is cut off and the result says truncated: true. A web app that scrolls inside a fixed-height area may come out only as tall as the window, because the page itself does not scroll. PDFs hold up to 200 pages.

A site blocks the tool or shows a robot check. What can I do?

The tool opens pages the way a visitor's browser does, says who it is in its User-Agent (Chrome's own name plus the tool's name and address), and does not try to get round blocks: no stealth tricks, no solving of CAPTCHAs, no proxies. If a site refuses it, you get the picture of what the site showed, often with httpStatus 403, or an error. Only capture pages you are allowed to open, and if the page is yours, allow the tool in your firewall.

The tool never clicks, accepts or declines anything on a page. To keep a banner out of the picture, give its CSS selector under Hide these elements. With Skip ads and trackers on, some banners and widgets may not appear at all, because tag managers add them; that is a side effect, not something the tool aims at.

What does "Skip ads and trackers" do, and when should I turn it off?

It stops requests to well-known analytics, tag-manager and advertising hosts, such as Google Analytics, Google Tag Manager, Segment, Facebook and LinkedIn pixels and ad networks. They draw little a screenshot needs and on many sites they use more processing than the rest of the page, so pages capture faster. The page can look a little different: ad slots stay empty, and in one test a star counter that a tag manager adds to a documentation site's home page was missing. Turn it off to load the page exactly as a visitor's browser does. The list is short and written by hand; it does not catch every tracker.

Why does the picture look different from my own browser?

The browser runs without a screen on a server: it is not signed in, it has no cookies or saved settings, it may show the light colour scheme, and it has a basic set of fonts. A page that picks its layout by User-Agent instead of by screen width shows its desktop version even with the phone or tablet screen, because the tool does not pretend to be a phone browser. Videos are captured as a still image.

How do I capture pages behind a login?

You cannot: the tool opens public pages and has no way to log in or send cookies.

No. Only the addresses you list are opened, once each, with whatever each page loads to display itself.

How much memory does it need?

The default of 2 GB is meant for 2 to 5 pages at a time. In tests on a Windows PC with large pages, 2 pages at a time peaked at about 0.8 to 1.3 GB and 5 pages at about 1.1 to 1.8 GB. Very tall pages, a high pixel density or a PDF of a long page need more. If pages come back with the error BROWSER_CRASHED, give the run more memory or lower Pages at the same time.

Is it allowed to take screenshots of web pages?

The tool opens each page once, like a visitor. You are responsible for capturing only pages you are allowed to, and for what you do with the pictures. It does not open private network addresses, such as localhost or 192.168.x.x; those pages get the error BLOCKED_ADDRESS.

Something does not work

Open an issue on the Issues tab with the address of the page and your settings. Every report is read and answered.