Website Screenshot - Full Page PNG at Any Viewport avatar

Website Screenshot - Full Page PNG at Any Viewport

Pricing

Pay per event

Go to Apify Store
Website Screenshot - Full Page PNG at Any Viewport

Website Screenshot - Full Page PNG at Any Viewport

Screenshot any list of URLs as PNG, at whatever viewport you choose, viewport-only or full page. Each image lands in the run's key-value store and every row carries a direct link to it.

Pricing

Pay per event

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Website Screenshot

PNG screenshots of any list of URLs, at whatever viewport you choose, viewport only or the whole scrollable page. Each image lands in the run's key-value store and every dataset row carries a direct link to it.

Paste addresses with or without https://. A bare example.com works.

Why the image is not in the table

A dataset is a table and a PNG is not. Putting the image into a column as base64 makes the table unreadable, makes every CSV export enormous, and makes the preview useless.

So the images go to the run's key-value store and each row carries image_url, a plain link anyone with access to the run can open or download. key is the same file's name in that store, which is prefixed with its position and the host so the store stays legible when you are looking at fifty of them.

Viewport

Viewport width is the single input that changes the most. A site lays itself out differently at 1280 than at 390, so capturing both is how you see the mobile layout. Viewport height sets the visible window and is ignored when Full page is on.

Full page has no natural end on some sites

Full page captures the whole scrollable document instead of the window. That is what you want for a landing page or an article.

On an infinite-scroll site there is no bottom: the page keeps loading as it is scrolled, so the capture is as tall as the renderer's patience rather than as tall as the content. Leave it off for those, and use a tall viewport instead.

This is the thing to know before you build on the output. A consent wall, a 404, an age gate and a login page all render perfectly well, and a capture of one is reported as a success because an image really was produced.

bytes is the most useful signal here: a wall is usually far smaller than the page behind it, and a set of captures that are all the same size is worth looking at before trusting any of them.

Errors

CodeMeaning
capture_failedThe page did not render after every attempt
bad_inputNo URL was given

Raise Attempts per URL for slow or heavy pages. Only images that exist are billed: a failed capture costs you nothing.

Run sizes

Parallel captures defaults to 3. Rendering is the expensive part of this job, so more parallelism finishes a long list sooner but each page still takes as long as it takes.

For the text of a page rather than a picture of it, see the markdown and crawling actors. For search results as images, see the SERP image actors.