Bulk Website Screenshot & PDF Generator — Full Page
Pricing
from $12.00 / 1,000 screenshot captureds
Bulk Website Screenshot & PDF Generator — Full Page
Pricing
from $12.00 / 1,000 screenshot captureds
Rating
0.0
(0)
Developer
Rashad Flet
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Capture real full-page screenshots (PNG/JPEG/WebP) and optional PDFs of many URLs at once with a headless Chromium browser, so the output is what a human would actually see. One charged event per screenshot captured; a URL that fails is not billed as a capture. Built by PAOE.
Each item is processed individually and charged as its own event, so you pay only for what the run actually delivers. Results are written to the run's dataset as one JSON object per item, ready to download as JSON, CSV or Excel, or to pull through the Apify API.
What it checks
For each URL: a real full-page screenshot captured by a headless Chromium browser (or just the viewport, if you prefer), in PNG, JPEG or WebP, at a viewport you choose. Each record carries the HTTP status, the page title, the file size, a link to the stored image, and how long the capture took. An optional A4 PDF of each page is produced alongside the image at no extra charge, and a failed PDF never invalidates the screenshot that was already captured.
Pricing
| Event | What it covers | Price |
|---|---|---|
screenshot-captured | screenshot captured (primary) | $0.02 per event |
Volume tiers reduce the price automatically on higher Apify plans: Bronze 15% off, Silver 25% off and Gold or above 40% off the listed free-tier price. The charge is per item processed, not per run.
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
urls | array | yes | ["https://example.com"] | One URL per line. Each captured screenshot is one charged event. |
maxUrls | integer | no | 100 | Hard cap on how many URLs are captured in one run. |
fullPage | boolean | no | True | Capture the entire scrollable page instead of just the viewport. |
format | string | no | png | png (lossless), jpeg or webp. |
width | integer | no | 1440 | Browser viewport width in pixels (320-3840). |
height | integer | no | 900 | Browser viewport height in pixels (240-4320). |
makePdf | boolean | no | False | Save an A4 PDF of each page alongside the screenshot. No extra charge. |
waitMs | integer | no | 0 | Additional time to wait after load, for animations or lazy content. |
Example input:
{"urls": ["https://example.com"],"maxUrls": 100,"fullPage": true,"format": "png","width": 1440,"height": 900,"makePdf": false,"waitMs": 0}
Output
One JSON object per item in the run's dataset. Every result carries the input it came from plus the fields this Actor measures, so the output can be joined back to your own data without guessing which row is which. The final dataset entry is a summary object with the run's totals.
Typical use cases
- Archive what a page looked like on a given date, for evidence.
- Capture a portfolio of sites or competitor pages in one run.
- Feed real page images into a review, a report or a QA process.
- Produce PDF copies of public pages alongside the screenshots.
Limitations
No. Each URL is fetched as an anonymous browser session, so a page behind authentication, a paywall or an aggressive bot wall returns a login page or a challenge rather than the protected content. Those URLs are reported with their HTTP status and are not billed as captures. The capture is a viewport-level render of what a browser receives, not a claim about the site's full behaviour; very tall pages are captured in one pass with a capped viewport so the run cannot exhaust memory.
Does it screenshot pages behind a login?
Every limitation above is reported per item in a findings entry with a level of fail, warn, info or ok, a machine-readable code and a concrete action. If something cannot be checked it is reported as such rather than assumed to be fine.
Can it run on a schedule?
Yes. Save a task from this Actor with your inputs, then set a schedule on the task. Scheduled runs recur with the same inputs, which is the intended way to use it for ongoing monitoring.
Am I charged for URLs that fail?
No. The charge event fires only after a screenshot is actually captured and stored, so a URL that times out, returns an error, or is blocked costs nothing. The run summary reports failed and withheld_unbilled separately so the counts reconcile.
Notes
If a site returns something unexpected, open an issue on the Actor's page with the URL and the input used, and it will be looked at.
Related Actors
Keywords
website screenshot, bulk screenshot, full page screenshot, url to image, screenshot api, webpage to pdf, website screenshot generator, capture website.