Website Screenshot API & URL to PDF Converter avatar

Website Screenshot API & URL to PDF Converter

Pricing

from $2.00 / 1,000 screenshot or pdfs

Go to Apify Store
Website Screenshot API & URL to PDF Converter

Website Screenshot API & URL to PDF Converter

Website screenshot API and URL to PDF converter. Capture any web page as PNG, JPEG or PDF: full-page with lazy-load scrolling, mobile and retina modes, hidden cookie banners, wait for elements. Bulk URLs, public file links.

Pricing

from $2.00 / 1,000 screenshot or pdfs

Rating

0.0

(0)

Developer

Aditya Sapra

Aditya Sapra

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Share

Website Screenshot API turns any list of web addresses into clean screenshots or PDFs, each with a public link to the file. It is a screenshot API and URL to PDF converter in one, built for monitoring, reports, link previews, archiving and design review.

It uses a real Chrome browser, so pages look the way a visitor sees them: scripts run, fonts load, lazy images appear.

What is it good for?

  • Monitoring and archiving: capture pages on a schedule and compare them over time.
  • Reports and decks: full-page screenshots and PDFs of any public page, in bulk.
  • Link previews and thumbnails: desktop, mobile and retina captures.
  • QA and design review: see how a page looks on a phone or in dark mode.

Try it in 30 seconds

  1. Press Start: the input is prefilled with real examples.
  2. Open the Output tab and download JSON, CSV or Excel.
  3. Replace the examples with your own and run again. You pay about $2.00 per 1,000 pages.

A taste of the output

PageResultFormatSize
Wikipediacapturedpng123 KB

The full record has more fields; see the example output further down.

What does Website Screenshot API do?

  • PNG, JPEG or PDF for every address, with a public link to the file in the results
  • Full-page screenshots with automatic scrolling, so lazy-loaded images are not blank (pages are cut at 20,000 px)
  • Mobile and tablet modes with real device profiles, retina (2x, 3x) and dark mode
  • Cookie banners hidden (best effort) and your own CSS selectors to hide chat widgets or promo bars
  • Wait for an element or a fixed delay before capturing, for charts and animations
  • Batch input: hundreds of addresses in one run, several captured in parallel
  • Page title, final address after redirects, HTTP status and file size in every result

How do I take a screenshot of a website?

  1. Paste addresses, one per line (example.com works as well as https://example.com).
  2. Pick the format and options, then run it.
  3. Open the Captures table for the links, or read the results through the API.

How do I convert a URL or webpage to PDF?

Set the format to PDF. Pick the paper size (A4 or Letter) and portrait or landscape; long pages paginate normally.

How do I take a full page screenshot of a website?

Turn on Full page. The Actor scrolls through the page first so lazy-loaded images and sections are rendered before the capture.

Example input

{
"urls": ["https://example.com", "https://www.wikipedia.org"],
"format": "png",
"fullPage": true,
"device": "desktop",
"deviceScaleFactor": 2,
"hideCookieBanners": true
}

What does the output look like?

One record per address:

{
"url": "https://www.wikipedia.org",
"finalUrl": "https://www.wikipedia.org/",
"title": "Wikipedia",
"httpStatus": 200,
"format": "png",
"device": "desktop",
"fullPage": false,
"fileUrl": "file:///Users/adityasapra/Library/Application%20Support/Claude/scratch-workspaces/e31d7d78-5186-4a87-a5ef-20d108034ba8/bf94f31b-4d5c-45a6-8bd2-bde9e516ef80/scratch-2026-10-04-194370/portfolio/build/website-screenshot-pdf/storage/key_value_stores/default/capture-76f543ed53b5.png",
"fileKey": "capture-76f543ed53b5.png",
"bytes": 126437,
"pageHeight": 1104,
"status": "ok",
"error": null
}

fileUrl is a link to the finished file. Files are stored in the run's storage, so they stay available as long as your Apify storage retention allows.

How much does it cost to take screenshots?

You pay per page captured: $0.002 per screenshot or PDF, about $2.00 per 1,000 pages, plus a tiny fixed fee per run. Apify bills the platform compute on top (the Actor starts with 2 GB of memory, which suits most pages; heavy pages use more compute). The run also stops if it reaches the maximum charge you set in the run options. The Pricing tab always shows the current rate.

Am I charged for failed pages?

No. You are charged only for pages that were captured. Addresses that fail (unreachable, blocked, timed out) or answer with an error page (404, 500) are reported with the reason and not charged. Turn on Capture error pages if you want those captured too.

How do I call the screenshot API from code?

Yes. Like every Apify Actor it can be started from code, scheduled in the Apify Console, or connected to Make, Zapier, n8n, Google Sheets and webhooks through Apify integrations, for example to capture a page every day and compare the results.

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run_input = {
"urls": [
"https://example.com"
],
"format": "png",
"fullPage": True
}
run = client.actor("cyborg_cell/website-screenshot-pdf").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const input = {
"urls": [
"https://example.com"
],
"format": "png",
"fullPage": true
};
const run = await client.actor('cyborg_cell/website-screenshot-pdf').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL

curl -X POST "https://api.apify.com/v2/acts/cyborg_cell~website-screenshot-pdf/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://example.com"], "format": "png", "fullPage": true}'

FAQ

Can it capture pages behind a login?

No. Public pages only. Pages behind a login are not supported, and addresses that point to private or internal networks (localhost, 192.168.x.x, cloud metadata addresses, .local names) are refused.

What about sites that block automated browsers?

Some sites block automated browsers or show a bot check. Those pages may come back as a blocked-page screenshot or fail; this Actor does not try to bypass such protection.

It covers the most common consent tools. An unusual banner may remain: add its selector under Also hide these elements.

Is there a size limit for full-page screenshots?

Very long pages are cut at 20,000 px tall in full-page image mode. PDFs paginate normally.

Is it allowed to capture any website?

Capture only pages you are allowed to capture, and respect the terms of the sites you capture. The Actor opens each page once and keeps nothing besides the files it produces for you.

A page renders wrongly, or I need an option that is missing. What now?

Open an issue on the Actor page with the address and we will look at it.

Other Actors by the same author