URL Screenshot Generator avatar
URL Screenshot Generator

Pricing

Pay per event

Go to Apify Store
URL Screenshot Generator

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

JavaScript Room

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

5

Monthly active users

3 days ago

Last modified

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 topOffset and height.
  • Configurable viewport width, page waitUntil, delay, and timeout.

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.
  • format: string (required)

    • Allowed values: jpg (default), png
    • Description: Output image format. jpg uses a quality of 80.
  • waitUntil: string (required)

    • Allowed values: load (default), domcontentloaded, networkidle0
    • Description: Puppeteer page.goto waitUntil option; controls when the page is considered loaded.
  • 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 height to 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 proxyConfig to avoid IP blocks for large crawls. The schema pre-fills useApifyProxy: 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/height are provided.
  • JPG is generally smaller than PNG. Use png if you need lossless screenshots.