Website Screenshot API: $2/1K, Full Page & PDF, No Login avatar

Website Screenshot API: $2/1K, Full Page & PDF, No Login

Pricing

from $2.00 / 1,000 captures

Go to Apify Store
Website Screenshot API: $2/1K, Full Page & PDF, No Login

Website Screenshot API: $2/1K, Full Page & PDF, No Login

$2 per 1,000 captures. Take full-page screenshots or PDFs of any list of URLs: PNG, JPEG, WebP or PDF, desktop, laptop, tablet or mobile, one element by CSS selector, lazy images loaded, cookie banners hidden. Each file gets a public link. Failed URLs are free.

Pricing

from $2.00 / 1,000 captures

Rating

0.0

(0)

Developer

Don Mangu

Don Mangu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

Website Screenshot API: Full Page, PDF, Bulk URLs

Website Screenshot API takes a full-page screenshot or a PDF of every URL you give it. Paste one URL or a few thousand, pick PNG, JPEG, WebP or PDF, pick a desktop, laptop, tablet or mobile screen, and get one file per page with a public link you can open, embed or download. You can capture the whole page, only the visible screen, or a single element by CSS selector. It costs $2 per 1,000 captures, and URLs that fail are free.

What can this website screenshot tool do?

  • Full-page screenshots of long pages, with lazy-loaded images scrolled into view first.
  • PNG, JPEG, WebP and PDF output. JPEG and WebP take a quality setting; PDF takes paper size, orientation and backgrounds.
  • Device presets: Desktop 1920x1080, Laptop 1366x768, Tablet 820x1180 at 2x, Mobile 390x844 at 3x, or a custom width, height and pixel density.
  • Element screenshots: capture only #pricing, .hero or any CSS selector.
  • Hide elements such as cookie banners, chat widgets and pop-ups before the capture.
  • Wait options: a delay, "wait for element", or wait until the network is quiet.
  • Dark mode for sites that support prefers-color-scheme: dark.
  • Bulk URLs with several pages in parallel and one dataset row per URL.

Typical uses: visual archives of competitor pages, social preview images, QA checks after a deploy, PDF copies of articles or invoices you are allowed to keep, and screenshots for reports and pitch decks.

How to take website screenshots in bulk

  1. Open the Actor and paste your URLs into URLs, one per line. A bare domain such as example.com works too.
  2. Choose a Format (PNG, JPEG, WebP or PDF) and a Device.
  3. Keep Full page on for the whole page, or turn it off for the visible screen only. To capture one part of the page, enter a CSS selector in Element.
  4. Optional: list cookie banners or pop-ups in Hide elements, and raise Delay for pages that animate in.
  5. Click Start. When the run ends, open the Screenshots tab to see previews, or download the dataset as JSON, CSV or Excel. Every row has a screenshotUrl link to the file.

You can also call the Actor from the Apify API, the Apify client for JavaScript or Python, Make, Zapier or n8n, and read the dataset when the run finishes.

How much does the Website Screenshot API cost?

The price is pay per event: $2.00 per 1,000 captures ($0.002 per file). A capture is one file saved: one PNG, JPEG, WebP or PDF. Rows for URLs that could not be captured (invalid URL, robots.txt does not allow the page, timeout, bot check, missing element) are free. A page that answers 404 or 500 still gives a file of what it shows, so it counts as a capture. Platform usage is included in the price.

Worked example: 5,000 product pages as full-page PNG. 4,900 load fine and 100 time out. You pay 4,900 x $0.002 = $9.80. The 100 timeouts cost nothing.

On the Apify free plan, the monthly free credit covers about 2,500 captures. You can set a spending limit on any run; the Actor stops opening new pages when the next capture would pass it.

Input example

{
"urls": ["https://example.com", "https://www.wikipedia.org"],
"format": "png",
"fullPage": true,
"device": "mobile",
"hideSelectors": ["#onetrust-banner-sdk"],
"delaySeconds": 1
}

Output example

Each URL gives one dataset row. The file itself sits in the run's key-value store, and screenshotUrl links to it.

{
"url": "https://example.com/",
"finalUrl": "https://example.com/",
"status": "ok",
"httpStatus": 200,
"pageTitle": "Example Domain",
"format": "png",
"device": "mobile",
"width": 1170,
"height": 2532,
"pageHeight": 844,
"truncated": false,
"fileSizeBytes": 61234,
"screenshotUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/00001-example.com.png",
"fileKey": "00001-example.com.png",
"capturedAt": "2026-09-27T09:00:00.000Z",
"warnings": [],
"error": null,
"charged": true
}

A failed URL looks the same with status set to the reason (for example timeout or robots_disallowed), error in plain words, no file and charged: false. A STATS record in the key-value store sums up the run.

  • Website Tech Stack Detector finds the CMS, analytics and hosting behind a list of websites.
  • For page text instead of images, search the Apify Store for "website content crawler" or "HTML to Markdown".

FAQ

Capturing a public web page is generally allowed, but what you do with the image can be limited by copyright, the site's terms and privacy law. Capture pages you have a right to use, and do not collect personal data with this tool. The Actor opens only public pages, sends no login or cookies, follows each site's robots.txt, identifies itself with a contact address in its User-Agent, and stops on a site that answers 401, 403 or 429 or shows a bot check. It never tries to solve a CAPTCHA.

What are the limits?

Full-page images stop at 16,000 pixels in height (5,333 CSS pixels on the 3x mobile preset); taller pages are cut there and marked truncated. Each page gets up to 120 seconds to load. Pages behind a login, a paywall or a bot check are not captured. Addresses on private networks are refused.

Why is my screenshot blank or missing content?

Some pages draw their content after the load event. Raise Delay, set Wait for element to something that appears last, or choose "Network quiet" in Page ready when. Cookie banners that cover the page can be removed with Hide elements.

How do I get more speed?

Give the run more memory and raise Parallel pages (default 4, up to 10). Memory sets a cap of one page per 512 MB above the first 512 MB: 1 GB opens one page at a time, 2 GB opens three, and 4 GB opens seven when Parallel pages is 7 or more.

Something does not work

Open an issue on the Issues tab with the run link and the URL. We aim to answer within a day.