URL Screenshot Generator
Pricing
Pay per event
URL Screenshot Generator
Generate screenshots for provided list of URLs and crop them on the go!
Pricing
Pay per event
Rating
0.0
(0)
Developer

JavaScript Room
Actor stats
0
Bookmarked
8
Total users
5
Monthly active users
3 days ago
Last modified
Categories
Share
This actor visits a list of websites and captures screenshots, then returns input urls with attached links to taken screenshots.
Features
- Capture full-page screenshots (JPG or PNG).
- Optional cropping via
topOffsetandheight. - Configurable viewport
width, pagewaitUntil,delay, andtimeout.
Inputs
-
urls: array (required)- Description: List of sources. Each item should be an object like
{ "url": "https://example.com" }. You can provide URLs manually, upload a file, or use a Google Sheet.
- Description: List of sources. Each item should be an object like
-
format: string (required)- Allowed values:
jpg(default),png - Description: Output image format.
jpguses a quality of 80.
- Allowed values:
-
waitUntil: string (required)- Allowed values:
load(default),domcontentloaded,networkidle0 - Description: Puppeteer
page.gotowaitUntiloption; controls when the page is considered loaded.
- Allowed values:
-
delay: number (required)- Unit: milliseconds
- Default:
500 - Description: Wait this long after navigation before taking the screenshot. Useful for client-side rendering or animations.
-
timeout: number (required)- Unit: milliseconds
- Default:
30000 - Description: Navigation timeout for
page.goto.
-
width: number (required)- Unit: pixels
- Default:
1280 - Description: Viewport width used when launching the browser.
-
height: number (optional)- Unit: pixels
- Description: When specified together with
topOffset, defines a rectangular crop height to extract from the full-page screenshot.
-
topOffset: number (optional)- Unit: pixels
- Description: How many pixels from the top to begin the crop. Combined with
heightto extract a portion of the page.
-
proxyConfig: object (optional, recommended)- Description: Proxy configuration for crawling. Use Apify Proxy (recommended) or custom proxies to avoid throttling and geo-based blocks.
Required fields
The schema marks the following fields as required: urls, format, timeout, delay, width, waitUntil.
Example input
Example JSON you can paste into the actor input panel:
{"urls": [ { "url": "https://example.com" }, { "url": "https://roomjs.com" } ],"format": "jpg","waitUntil": "load","delay": 500,"timeout": 30000,"width": 1280,"topOffset": 0,"height": 800,"proxyConfig": { "useApifyProxy": true }}
Adjust or remove topOffset / height if you want full-page screenshots instead of a cropped fragment.
Output
- Screenshots are saved into the default Key-Value Store (
Actor.setValue). Each image record key is generated from the page URL and a timestamp. - For every stored screenshot the actor pushes a dataset record with the shape:
{"url": "https://example.com","screenshotUrl": "https://api.apify.com/v2/key-value-stores/<STORE_ID>/records/<KEY>"}
Notes & Tips
- Use the
proxyConfigto avoid IP blocks for large crawls. The schema pre-fillsuseApifyProxy: true. - If you need a very tall viewport for full-length screenshots, the actor takes a full-page screenshot and then extracts a portion when
topOffset/heightare provided. - JPG is generally smaller than PNG. Use
pngif you need lossless screenshots.

