What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
To capture hundreds of URLs with one API submission, use a provider’s batch or bulk endpoint: send a list of URLs with shared capture options, save the returned job or batch identifier, and track or retrieve results using that provider’s documented workflow. A single request does not necessarily mean a single screenshot quota unit, and batch-size limits vary by provider. ScreenshotNeo is a useful alternative when its bulk capture of up to 100 URLs per call fits your workload; it also offers clean captures and bills only clean shots. See ScreenshotNeo.
How batch screenshot capture works
A batch endpoint accepts multiple target URLs in one submission. The provider then captures the pages and returns results either in the submission response or through an asynchronous workflow. For asynchronous jobs, retain the job or batch ID and use the documented status endpoint, polling flow, webhook, or event stream to learn when individual captures are ready.
As an Amazon Associate I earn from qualifying purchases.
Batching reduces the number of submissions your application has to orchestrate; it does not make the work instantaneous or guarantee that all URLs succeed. Treat each URL as an individual result: record its status, retrieve its image or PDF through the provider’s mechanism, and retry only failed items where the provider permits.
Choose an API whose limits fit your URL list
Before implementation, compare maximum URLs per submission, whether processing is synchronous or asynchronous, how results are retrieved, quota accounting, rate limits, concurrency, plan eligibility, and whether the batch endpoint supports the capture settings you need. Vendor limits can change, so confirm current documentation and plan details before a production run.
#1 Best Overall
- Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
| Provider | Batch workflow | Documented limit and operational details |
|---|---|---|
| ScreenshotNeo | Bulk capture supports up to 100 URLs per call; async jobs with signed webhooks are also available. | Bulk capture limit is 100 URLs per call. Only clean shots are billed; bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing. Plans include 1,000 free shots per month with no card, then paid options. |
| ScreenshotRun | POST /v1/screenshots/batch returns pending screenshot objects; poll each screenshot or configure webhooks. |
Up to 100 URLs per batch; requires Pro or above. Each URL counts toward monthly quota and rate limits apply per URL. See Batch Screenshots. |
| Screenshot API | POST /api/v1/screenshot/batch returns a batch ID; track it by polling the batch endpoint or streaming updates with SSE. |
The reviewed documentation does not state a numeric batch maximum. The vendor documentation lists 60 requests per minute and 500 screenshots per month for its free plan; verify current plan details. See Screenshot API Documentation. |
| ScreenshotOne | POST /bulk accepts a list of URLs as HTML or Markdown. |
The reviewed documentation does not state a numeric batch maximum. Bulk calls share the regular screenshot request bucket, and the docs advise checking remaining concurrency before sending a large queue. See Bulk Screenshots. |
The figures above are provider-specific documentation, not industry-wide limits. For example, ScreenshotRun says each URL in a batch counts as one screenshot toward monthly quota. ScreenshotOne says bulk requests consume the same one-minute request bucket as regular screenshot requests.
Prepare and submit a batch safely
- Check fit and split if needed. Compare your URL count with the provider’s documented batch maximum and plan eligibility. Divide a larger list into multiple submissions rather than assuming “hundreds” will fit in one request.
- Validate the input list. Remove duplicates if your workflow does not need repeated captures, ensure URLs are well-formed and publicly reachable or authenticated as required, and decide how to handle redirects and inaccessible pages. A malformed URL can fail even when the rest of the batch is valid.
- Set shared capture options. Use the batch schema documented by the provider. Confirm that the bulk endpoint supports the viewport, output format, wait behavior, authentication, or other settings your task requires; batch APIs do not necessarily support every option offered by single-URL capture.
- Protect credentials. Authenticate with the provider’s recommended method. Keep API keys in server-side environment or secret storage, not public browser code, repositories, or request logs.
- Submit and persist the tracking reference. Save the returned job or batch ID together with your own run ID and URL-to-result mapping. Do not rely on a client connection remaining open for a large batch.
- Track completion and collect outputs. Poll the provider’s documented status endpoint or configure its event mechanism, such as webhooks or SSE where supported. Use backoff and respect rate limits rather than polling aggressively.
- Handle partial failures. Store a result and status for every URL. Retry only eligible failures according to provider rules, with a bounded retry count; do not resubmit successful captures just because another URL failed.
Provider-specific request and result flows
ScreenshotRun
Submit the URL list to POST /v1/screenshots/batch. The endpoint returns pending screenshot objects; track each screenshot by polling or configure webhooks. Its documented limit is 100 URLs per batch and use requires Pro or above. Budget quota and request rate per URL, not per batch. The provider’s batch documentation is the source for the endpoint and its operational rules.
Rank #2
- Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
- Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
- CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
- CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
- CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)
Screenshot API
Submit to POST /api/v1/screenshot/batch, retain the returned batch ID, and follow progress by polling the batch endpoint or streaming updates with SSE. The documentation page does not state a numeric maximum, so confirm capacity with the provider before treating one batch as suitable for hundreds of URLs. Its listed free-plan figures are 60 requests per minute and 500 screenshots per month; check the live documentation for current terms.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →ScreenshotOne
Use POST /bulk with a list of URLs encoded as HTML or Markdown as described in the provider’s bulk documentation. The reviewed material does not specify a numeric maximum. Because bulk requests share the regular screenshot request bucket, check available concurrency before submitting a large queue.
Or skip the browser setup
ScreenshotNeo’s bulk endpoint accepts up to 100 URLs per call. For a single URL, the direct GET pattern is:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Rank #4
- Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1. 5GHz
- 2. 4 GHz and 5. 0 GHz IEEE 802. 11b/g/n/ac wireless LAN, Bluetooth 5. 0, BLE
- 2 × USB 3. 0 ports, 2 x USB 2. 0 Ports
- 2 × micro HDMI ports supproting up to 4Kp60 video resolution
- Micro SD card slot for loading operating system and data storage
For hundreds of URLs, use the documented bulk capture option rather than repeating the one-URL call. ScreenshotNeo also supports async jobs with signed webhooks. Its options include full-page captures with lazy images loaded, selector-based element capture, device and viewport settings, PDF output, custom headers and cookies, wait conditions, request blocking, caching, and bulk capture of 100 URLs per call. Check the exact parameters and response behavior in the ScreenshotNeo documentation.
- Cookie banners are accepted and 60+ known consent platforms, newsletter popups, and chat widgets are removed before capture; each step can be turned off.
- Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed. Responses identify page verdict and billing status in headers.
- An MCP server provides
take_screenshot,get_page_info, andcapture_pdftools for Claude, Cursor, and other MCP clients. - Free includes 1,000 shots per month with no card. Paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan to try 1,000 screenshots a month with no card.
Best Value
- Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
Troubleshooting batch captures
- The submission is rejected or the batch does not start: Check the endpoint, HTTP method, authentication, request-body schema, and plan eligibility. Ensure the URL list does not exceed the provider’s maximum.
- Some URLs fail while others succeed: Treat the batch as a collection of per-URL outcomes. Inspect failed-item status and validate those URLs, access requirements, and capture settings; retry only those items if allowed.
- The job remains pending: Confirm you are tracking the correct ID and using the documented status or event flow. Avoid rapid polling, and check provider status or rate-limit responses before submitting again.
- Outputs are missing after completion: Follow the documented retrieval mechanism; a batch ID or pending response may not contain the image files themselves. Persist the per-URL references returned by the provider.
- Rate limits appear despite one API call: A bulk submission may still consume per-URL quota or a shared request/concurrency bucket. Check the provider’s accounting rules and reduce batch size or submission frequency as appropriate.
- Captures differ from what a browser shows: Check the batch endpoint’s supported viewport, wait, authentication, and rendering options. Dynamic pages may require a documented wait condition; confirm whether batch mode supports it.
Performance, reliability, and cost planning
Batching simplifies coordination but does not eliminate browser rendering time, provider concurrency limits, or per-URL usage charges. Estimate usage from the number of URLs that will be captured, not merely the number of batch submissions. For a large queue, use batches within the published maximum, persist progress, and avoid launching more work than the plan or concurrency allowance can handle. Since the reviewed Screenshot API and ScreenshotOne pages do not state a numerical maximum, ask or test within their documented constraints rather than inferring one.
For resilience, make your processing restartable: persist each input URL and its state, make result retrieval idempotent where possible, and record retries separately from first attempts. This prevents a worker restart from silently losing completed results or re-running every URL.
Frequently Asked Questions
Does one batch request count as one screenshot?
Not necessarily. ScreenshotRun explicitly counts each URL toward its monthly quota; accounting varies by provider.
Free tools Windows power users keep installed
One-click scans. No signup required.
Can I submit any number of URLs in one request?
No universal maximum is established. ScreenshotRun documents 100 URLs per batch, ScreenshotNeo supports 100 URLs per call, and the reviewed Screenshot API and ScreenshotOne pages do not state a numeric maximum.
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.




