Website Screenshot & PDF Capture - Full Page, Any Viewport
Pricing
from $4.00 / 1,000 item processeds
Website Screenshot & PDF Capture - Full Page, Any Viewport
Capture any web page as a PNG, JPEG or PDF. Full-page or viewport, custom size and scale, wait-for-selector support for pages that load late.
Pricing
from $4.00 / 1,000 item processeds
Rating
0.0
(0)
Developer
Sam S
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Capture any web page as a PNG, JPEG or PDF. Full-page or viewport, custom size and scale, wait-for-selector support for pages that load late.
What you get
Every row contains:
inputurlformatfileUrlfileKeyfullPagetimestamp
{"input": "https://apify.com","url": "https://apify.com","format": "png","fileUrl": "https://api.apify.com/v2/key-value-stores/smoke/records/https___apify_com_1787659722333.png","fileKey": "https___apify_com_1787659722333.png","fullPage": true,"timestamp": "2026-08-25T12:08:42.333Z"}
Input
| Field | Type | Required | Description |
|---|---|---|---|
urls | array | yes | List of web page URLs to screenshot or convert to PDF. You can paste one or many. |
format | string | no | Choose PNG or JPEG for an image, or PDF to save the page as a document. Default: "png". |
fullPage | boolean | no | When on, captures the entire scrollable page instead of just the visible area. Ignored for PDF (PDFs always paginate the full page). Default: true. |
waitUntil | string | no | How the browser decides the page has started loading before it looks for extra readiness signals. 'domcontentloaded' works for almost all sites. Default: "domcontentloaded". |
waitForNetworkIdle | boolean | no | After the page loads, wait a bit longer for background requests (images, fonts, analytics) to settle down before capturing. Recommended for most sites. Default: true. |
networkIdleTimeout | integer | no | Maximum time to wait for the network to go quiet before capturing anyway. Prevents the run from hanging on pages with constant background activity. Default: 12000. |
waitForSelector | string | no | Optional. If the page loads content dynamically, give a CSS selector (e.g. '#main-content') and the capture will wait until it appears. Default: "". |
extraWaitMs | integer | no | Optional extra pause after all other waiting, useful for slow animations or lazy-loaded images. Default: 0. |
viewportWidth | integer | no | Width of the simulated browser window used for the capture. Default: 1280. |
viewportHeight | integer | no | Height of the simulated browser window used for the capture. Default: 800. |
timeout | integer | no | Maximum time to wait for the page to load before giving up on that URL. Default: 30000. |
pdfFormat | string | no | Paper size to use when the output format is PDF. Default: "A4". |
landscape | boolean | no | When on, PDF pages are generated in landscape orientation instead of portrait. Default: false. |
omitBackground | boolean | no | When on, removes the default white background — useful for PNG screenshots of elements with transparency. Has no effect on JPEG or PDF. Default: false. |
proxyConfiguration | object | no | Requests go out through this proxy. The datacenter pool stalled on page loads in testing, so residential is the default; clear it entirely if you would rather use Apify own IPs. Default: {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}. |
Use cases
- Visual regression checks — capture the same pages on a schedule and diff them.
- Archiving evidence of what a page looked like on a given date.
- Generating preview images for link cards, reports or dashboards.
Pricing
$4.00 per 1,000 results. You are charged once per record written to the dataset, and never for a result you do not receive — validation failures and duplicates are dropped before billing.
The first 3 items of every run are free, so you can check that the output has the fields you need before paying for any of it.
Notes
- Full-page or viewport capture, PNG, JPEG or PDF, with custom width, height and device scale.
waitForSelectorandextraWaitMshandle pages that render late — use them before blaming the capture.- Files are written to the run's key-value store and the record carries a direct
fileUrl.
Support
Open an issue on this Actor if a field stops populating or a run returns nothing. Selector drift is a bug, not a fact of life — these parsers are re-tested weekly against the live site.