For bulk URL screenshots on AWS Lambda, use a job pipeline: validate the submitted URLs, create one task per URL, and process those tasks with bounded-concurrency Lambda workers running headless Chromium through Puppeteer. Store images in S3 and track each URL’s status independently. A single invocation can work for a small batch, but a job queue or fan-out workflow is more reliable for production because it supports retries, progress tracking, and partial success.
Choose a workflow that fits the batch
Small prototype: one invocation
A single Lambda invocation can process a modest list sequentially if the entire batch—including browser startup, navigation, capture, and uploads—fits within the function’s timeout and resource limits. This is simple to build, but a slow or problematic page can consume time needed for later URLs, and the caller has to wait for the batch.
As an Amazon Associate I earn from qualifying purchases.
Production: one task per URL
For larger or less predictable batches, accept the list, create a job record, and enqueue a separate task for every URL. A fan-out function or queue-driven workflow dispatches tasks to screenshot workers. Each worker launches Chromium, captures one page, uploads the result to S3, and records that URL’s outcome. AWS’s example demonstrates a fan-out Lambda invoking a Puppeteer screenshot function that writes images to S3: AWS parallel-processing architecture example.
For a long-running batch, return a job ID rather than keeping an HTTP connection open until every page is done. The caller can then poll for status or receive completion through a mechanism you build. AWS documents different payload limits and retry behavior for synchronous and asynchronous invocation: Lambda invocation types.
#1 Best Overall
- PORTABLE SCANNER FOR USE ON-THE-GO — The fastest and lightest mobile single-sheet-fed compact document scanner in its class¹
- QUICK DOCUMENT SCANNING ― This Epson ultra-fast scanner scans a single page as quickly as 5.5 seconds²; Windows and Mac compatible
- VERSATILE PAPER HANDLING ― Portable scanner scans documents up to 8.5 x 72 in; Also easily digitizes receipts and ID cards to make accounting, bookkeeping, and organizing simpler
- INTUITIVE, HIGH-SPEED SOFTWARE — Epson ScanSmart Software³ is a smart tool allowing you to easily scan, review, and save; Stay organized easily with the help of this Epson scanner
- EASY SETUP — USB-powered connect to your computer for quick and simple scanning; No batteries or external power supply required to operate portable document scanner; Standard Connectivity: USB 2.0
Plan the capture behavior and deployment
Define what counts as a screenshot
Before implementing the worker, decide whether each result is a viewport or full-page capture; set viewport width and height, device scale factor, navigation timeout, and wait condition; and determine whether redirects or authenticated pages are allowed. These choices affect output size, capture time, and what the resulting image represents.
Package a compatible browser
Lambda workers need Chromium and its native dependencies packaged for the chosen runtime and architecture. AWS supports ZIP packages and container images; its Puppeteer screenshot example uses a container image. Pin the runtime, browser build, architecture, and dependencies, then validate them in the Lambda environment you will deploy. The AWS example establishes the approach, but its older base image and package versions should not be assumed current: AWS Puppeteer example and example source code.
Allow for Lambda’s limits
A standard Lambda function can run for at most 900 seconds (15 minutes). You can configure memory from 128 MB to 10,240 MB and temporary /tmp storage from 512 MB to 10,240 MB. CPU allocation scales with configured memory. Browser startup, page rendering, image encoding, and network uploads all consume resources, so profile representative pages and leave headroom rather than assuming default settings will suffice. See AWS Lambda quotas.
Free tools Windows power users keep installed
One-click scans. No signup required.
Use /tmp only for transient browser files. Put durable images in S3 and keep job state in a separate persistent store; AWS’s example also saves captured images to S3.
Rank #2
- FAST SPEEDS - Scans color and black and white documents a blazing speed up to 16ppm (1). Color scanning won’t slow you down as the color scan speed is the same as the black and white scan speed.
- ULTRA COMPACT – At less than 1 foot in length and only about 1. 5lbs in weight you can fit this device virtually anywhere (a bag, a purse, even a pocket).
- READY WHENEVER YOU ARE – The DS-640 mobile scanner is powered via an included micro USB 3. 0 cable allowing you to use it even where there is no outlet available. Plug it into you PC or laptop and you are ready to scan.
- WORKS YOUR WAY – Use the Brother free iPrint&Scan desktop app for scanning to multiple “Scan-to” destinations like PC, Network, cloud services, Email and OCR. (2) Supports Windows, Mac and Linux and TWAIN/WIA for PC/ICA for Mac/SANE drivers. (3)
- OPTIMIZE IMAGES AND TEXT – Automatic color detection/adjustment, image rotation (PC only), bleed through prevention/background removal, text enhancement, color drop to enhance scans. Software suite includes document management and OCR software. (4)
Build the batch pipeline
- Accept and validate input. Check that the request contains a usable URL list and enforce the capture policy you chose. If untrusted users can submit targets, apply SSRF protections: use an allowlist where practical and block internal network ranges and cloud metadata endpoints.
- Create a job and per-URL tasks. Persist a job record, then enqueue one work item per URL. Avoid putting a very large URL list into a single Lambda event: synchronous invocation payloads are limited to 6 MB and asynchronous invocation payloads to 1 MB, according to the Lambda Invoke API.
- Limit concurrency. Set a worker concurrency appropriate to your Lambda account limits, expected render duration, and the target websites’ tolerance for traffic. Add backpressure rather than allowing a large batch to launch an uncontrolled number of browsers.
- Capture in the worker. Launch the pinned Chromium build, navigate with explicit timeouts and wait conditions, take the requested screenshot, and upload it to S3. Record a useful failure category if navigation, rendering, or upload fails.
- Make retries safe. Asynchronous events can be retried, and AWS notes that duplicate delivery may occur even when there was no error. Use an idempotency key for each job/URL pair, deterministic object keys or guarded writes, and a status record so repeated work does not create ambiguous results. Configure a dead-letter queue or equivalent failure handling for tasks that cannot be processed.
- Expose progress and results. Store per-URL status and output location, then provide a way to retrieve job progress and completed results. A batch-level success flag alone hides partial failures.
- Measure before scaling. Load-test representative target pages and monitor duration, memory, timeouts, throttles, browser launch errors, and output sizes. Adjust memory, timeouts, and concurrency based on observed behavior.
Choose an HTTP entry point
A Lambda Function URL is suitable for a simple front door or prototype. AWS recommends API Gateway when the API needs richer authentication, traffic management, throttling, custom domains, or request and response transformation. See Lambda Function URLs.
Whichever entry point you use, keep lengthy screenshot work asynchronous: accept the request, return a job identifier, and let the client retrieve progress and results separately. Do not treat a successful batch submission as proof that every URL rendered successfully.
Track outcomes per URL
Persist a record for every requested page so the caller can distinguish completed captures from failures and retry only what needs attention. A useful result record includes:
- Normalized URL and job/URL idempotency key
- Status, such as queued, running, succeeded, or failed
- S3 object key on success
- Capture timestamp and viewport or full-page setting
- Error category and actionable detail on failure
Keeping these results independently also makes partial completion visible when one page times out or fails while the rest of the batch succeeds.
Rank #3
- STAY ORGANIZED – Easily convert your paper documents into digital formats like searchable PDF files, JPEGs, and more.Power Consumption : 2.5W or less (Energy Saving Mode: 0.7W). Suggested Daily Volume : 500 scans..Does it contain liquid: no
- CONVENIENT AND PORTABLE –lightweight and small in size, you can take the scanner anywhere from home offices, classrooms, remote offices, and anywhere in between
- HANDLES VARIOUS MEDIA TYPES – Digitize receipts, business cards, plastic or embossed cards, reports, legal documents, and more
- FAST AND EFFICIENT – No technical hurdles or complicated setups here; easily scan both sides of a document at the same time, in color or black-and-white, at up to 12 pages-per-minute, and with a 20 sheet automatic feeder
- BROAD COMPATIBILITY – Works with both Windows and Mac devices, be it laptop or computer
Troubleshooting common failures
The function times out
Reduce the number of URLs handled by one invocation, move to one task per URL, and set an explicit navigation timeout. Profile representative pages and tune memory and timeout with headroom; the 900-second ceiling still applies to a standard Lambda function.
Chromium fails to launch
Check that the browser binary and native libraries match the Lambda runtime and architecture, and that the deployed package contains them. Pin and test the complete browser/runtime combination in the deployment environment; an older sample’s dependency versions are not a guarantee of present-day compatibility.
Some URLs never complete or keep retrying
Record a per-URL error category, inspect the task’s retry and failure handling, and route exhausted work to a dead-letter queue or equivalent. Make output writes idempotent so retries do not produce conflicting objects or statuses.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Invocations are throttled
Reduce or cap worker concurrency and add backpressure to the queue or dispatcher. Tune concurrency against your account’s available limits and the target sites’ capacity instead of releasing an entire large batch at once.
Rank #4
- IRIScan Express, portable scanner : scans color and black and white documents a blazing speed up to 8ppm simplex. Color scanning won’t slow you down as the color scan speed is the same as the black and white scan speed.
- IRIScan Express mobile scanner is powered via an included micro USB 2. 0 cable allowing you to use it even where there is no outlet available. Plug it into you PC or laptop and you are ready to scan. USB cable provided. AC Adapter not provided and not needed.
- IRIScan flatbed scanner uses a simplex scanning mode allows for quick and straightforward scanning of single-sided documents. IRIScan with its full portable features is the ideal document scanners for computers.
- IRIScan document scanner : Versatile scanning capabilities, including scanning to Word, PDF, and Excel formats with companion software provided Readiris OCR
- Receipt scanner and card scanner with Additional features include scanning business cards directly to Outlook, photo scanning, and receipt scanning for efficient document management
The request is rejected for size
Do not submit a huge URL list as one invocation event. Persist the batch and enqueue per-URL work, keeping each task small enough for the relevant invocation payload limit.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Cost and performance: measure your workload
There is no universal pages-per-invocation rate or cost per screenshot established by the cited AWS documentation. Execution time and resource use depend on the pages being rendered, browser setup, output size, and concurrency. Benchmark representative URLs, include upload time, and monitor throttles and failures before estimating capacity or cost. A managed screenshot service can reduce browser packaging and maintenance work; Lambda offers control over AWS networking and storage. Compare actual capabilities, terms, and expected workload before choosing.
Or skip the browser setup
If you would rather make a screenshot request than package and operate Chromium, ScreenshotNeo is a website screenshot API and MCP server. One GET request returns an image or PDF, and its compatible parameter names can make switching from another screenshot API easier. See the ScreenshotNeo API documentation.
Recommended Free Tools
This cURL example saves a WebP capture of the target URL:
Best Value
- Scanner type: Document
- Connectivity technology: USB
- With Auto Scan Mode, the scanner automatically detects what you're scanning
- Digitize documents and images
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Cookie and consent banners are accepted and removed before capture, along with supported newsletter popups and chat widgets; each cleanup step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server provides screenshot and PDF tools for AI clients. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month with no card.
Frequently Asked Questions
Can a Lambda batch partially succeed?
Yes. With independent per-URL tasks, successful captures can be stored even when other pages fail; persist each URL’s status and output key so partial completion is explicit.
Where should I store the captured images?
Use S3 for durable screenshot objects. Lambda’s /tmp directory is for temporary browser files, not durable results.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Does AWS publish a standard screenshots-per-second figure for this setup?
No universal throughput figure is established in the cited AWS documentation; measure representative pages and your chosen concurrency.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




