Website Screenshots in Bulk, Desktop and Mobile avatar

Website Screenshots in Bulk, Desktop and Mobile

Pricing

$4.00 / 1,000 result rows

Go to Apify Store
Website Screenshots in Bulk, Desktop and Mobile

Website Screenshots in Bulk, Desktop and Mobile

Bulk screenshots of public websites. One stored screenshot per successful page and viewport, with final URL, HTTP status, page title and capture time. Failures are not result rows.

Pricing

$4.00 / 1,000 result rows

Rating

0.0

(0)

Developer

US Tech Automations

US Tech Automations

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

This tool takes bulk screenshots: a website screenshot of each public page you list, on a desktop or mobile screen.

Paste public page addresses. Each address is opened in a headless browser (no window on a screen). You get one result row per address and viewport that produced an image, with the final address, the HTTP status, the page title, and the time of the capture. The image itself is stored beside the row. A page that fails is not a result row.

Input

FieldWhat it does
Page addressesOne or more public http or https addresses. Private-network addresses are refused.
Viewportsdesktop is 1366 by 768. mobile is 390 by 844. Default is desktop only. Pick one or both.
Full pageOn by default. The image is the whole loaded page. Off keeps only the viewport.
Image formatpng (default) or jpeg.
Seconds to wait after loadDefault 2. Maximum 15.
Maximum screenshotsHard ceiling on captures, counting each viewport separately. Default 50. Maximum 5,000.
Proxy configurationOptional Apify proxy. Off by default, including on a local run.

Pricing

Pay per result. $0.004 per stored screenshot. No start fee.

Every row in the results is one charged result. Failed inputs are not rows; they are listed in the run log and the RUN_SUMMARY record, and cost nothing. A run that stores no image adds no result rows. Maximum screenshots is the spend cap.

Output (one row per capture)

One example row from a real local run on 2026-09-22 against https://example.com/ (desktop, full page, png, 2 second wait):

{
"url": "https://example.com/",
"final_url": "https://example.com/",
"http_status": 200,
"page_title": "Example Domain",
"viewport": "desktop",
"full_page": true,
"image_key": "screenshot-0001-desktop.png",
"image_bytes": 18800,
"captured_at": "2026-09-22T19:28:53Z",
"status": "ok"
}

The image for that row was a PNG, 1366 by 768 pixels, 18,800 bytes. It is stored in the run's key-value store under image_key, not inside the row.

FieldWhat it holds
urlThe address you pasted
final_urlThe address after redirects. Empty only if the browser did not report one
http_statusThe HTTP status the browser received. Empty only if the browser did not report one
page_titleThe page title. Empty if the page had none. An email or phone number in the title is replaced with [redacted]
viewportdesktop or mobile
full_pageTrue when the whole page was requested
image_keyName of the PNG or JPEG in the key-value store
image_bytesSize of that image in bytes
captured_atWhen this row was written, in UTC
statusok on every result row

A failed address is not in this table. The run log and the RUN_SUMMARY record list each failed address and the reason. RUN_SUMMARY also has rows_pushed and failures.

What this does not do

  • It does not log in, send cookies, or solve a CAPTCHA. You get what a signed-out visitor gets. If a CAPTCHA page loads, the image is that page, and this tool does not try to get past it.
  • It does not open a page whose robots.txt disallows that path. That failure is in the run log and RUN_SUMMARY, not in the results.
  • It does not invent a title, status, or image when the page could not be opened.
  • It does not grant a licence to copy a site's design or words. A screenshot is a copy of what the page showed. The site's own terms still apply.
  • It does not decide that you are allowed to use a page. It only reads robots.txt.
  • It does not open addresses on a private network.
  • It does not open a visible browser window.
  • It does not promise how fast a run will be, or that every site will answer.

Limits

  • maxItems is 1 to 5,000 (default 50). Each viewport counts as its own capture.
  • waitSeconds is 0 to 15 (default 2).
  • Only desktop (1366x768) and mobile (390x844).
  • Only png and jpeg.
  • A failed address is not a result row. Other addresses in the same run still run.
  • On a short page, a full-page image can be the same height as the viewport. That is what happened for example.com in the run above.

Refunds and support

Refunds: if a run returns zero rows for a valid input, email operations@ustechautomations.com within 7 days and we refund that run. Support: same address, replies within 2 business days.