Website Screenshot API & URL to PDF Converter
Pricing
from $2.00 / 1,000 screenshot or pdfs
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
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
- Press Start: the input is prefilled with real examples.
- Open the Output tab and download JSON, CSV or Excel.
- Replace the examples with your own and run again. You pay about $2.00 per 1,000 pages.
A taste of the output
| Page | Result | Format | Size |
|---|---|---|---|
| Wikipedia | captured | png | 123 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?
- Paste addresses, one per line (
example.comworks as well ashttps://example.com). - Pick the format and options, then run it.
- 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 ApifyClientclient = 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.
Does it hide cookie banners?
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
- ATS Job Scraper (Greenhouse, Lever, Ashby, Workday and four more platforms) and Remote Jobs Scraper (RemoteOK, Himalayas, Jobicy, Arbeitnow): structured job data from company career pages and remote job boards.
- Also by the same author: Email Validator, YouTube Transcript Scraper.