Recommended Free Tools
Use a Google Sheets node to read one URL per row, an n8n HTTP Request node to capture each page as a file, and Google Drive (or another storage service) to save the screenshots. You can then write each file link and its status back to the matching sheet row. The API request itself depends on the screenshot provider; the workflow below uses ScreenshotNeo as a concrete example.
What you need
- An n8n workflow with access to Google Sheets and your chosen file destination.
- A spreadsheet with a header row and a column named
url. Add columns such asstatus,screenshot_url,captured_at, anderrorif you want to record results. - A screenshot service API key. Store it in n8n credentials rather than embedding it in a URL or a sheet.
- A stable row identifier, or the original row number, so the workflow can update the correct record after capturing a screenshot.
Build the workflow with n8n’s core nodes
1. Read URL rows from Google Sheets
Add a Google Sheets node and choose Get Row(s). Select the spreadsheet and tab that contain the URLs. When reading all rows, n8n treats the first row as the header row; the node returns all rows by default, and its filters can limit which records are read. See the Google Sheets node documentation.
As an Amazon Associate I earn from qualifying purchases.
Keep the row key available through the rest of the workflow. If you plan to update the original sheet, use the same stable identifier or row number to match the capture result to its source record.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
2. Exclude empty URLs and completed rows
Place a filter or conditional step after the Sheets node. Continue only when url contains a valid URL and status is blank or pending. This reduces accidental captures when the workflow runs again. Decide what counts as a valid URL for your sheet, and route invalid or missing values to an error/status update rather than sending them to the screenshot API.
#1 Best Overall
3. Request one screenshot per URL
Add an HTTP Request node and configure it for your provider’s endpoint, authentication, and URL parameter. For ScreenshotNeo, use the endpoint shown in the code block below. Configure the request to return a file, not parsed JSON: in the HTTP Request node, select Response Format → File and enter a name under Put Output in Field, for example screenshot. n8n’s documentation covers query parameters, credentials, batching, and the file response option in its HTTP Request node reference.
For a provider other than ScreenshotNeo, use its current API documentation to determine the endpoint and parameter names. Keep authentication in an n8n credential where the provider and node configuration allow it. Do not assume that one provider’s request syntax works with another.
4. Upload the binary file
Connect a Google Drive upload node, or another file destination, and select the binary property returned by the HTTP Request node (such as screenshot). Keep that property name consistent between the request and upload nodes. Build a safe filename from a row identifier and a sanitized domain or title; avoid using an untrusted URL directly as a filename. If you need a shareable link, check the destination’s permissions: a Drive link only works for people allowed to access that file.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #2
5. Write the result to the matching sheet row
After a successful upload, update the source row with the Drive link or other file reference, a success status, and optionally the capture time. On failure, store a concise error or failure status for that row. Configure the workflow so one failed URL does not prevent later rows from running, if your n8n error-handling setup supports that behavior.
Configure the ScreenshotNeo request in n8n
In the HTTP Request node, use GET with https://api.screenshotneo.com/v1/shot. Add query parameters for access_key and url; map url to the current row’s URL using the expression picker. Store the API key as a credential or other protected secret rather than hard-coding it into the workflow expression. Set the response format to File and the output field to screenshot.
ScreenshotNeo accepts one URL per request and returns a screenshot as PNG, JPEG, or WebP, or a PDF. Its API supports options such as full-page capture, viewport and device presets, waiting for a selector or network idle, and blocking selected requests; consult the ScreenshotNeo API documentation for the exact parameter names and supported settings. The example below uses the default image output and passes only the row URL and API key.
Rank #3
Alternative: use an n8n community node or template
The core HTTP Request approach works with a screenshot provider that exposes an API and avoids depending on a provider-specific community node. If you prefer a prebuilt workflow, n8n publishes a template that watches Google Sheets rows, captures screenshots with the CustomJS PDF Toolkit, and uploads them to Google Drive. Its stated requirements include a self-hosted n8n instance, a sheet containing URLs and titles, a Drive folder, a CustomJS API key, and Google credentials. The template says community nodes can only be installed on self-hosted n8n instances, so confirm hosting compatibility before choosing this route: n8n’s Google Sheets-to-Drive screenshot template.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteFor a provider-neutral spreadsheet read, Google’s lower-level Sheets API has a spreadsheets.values.get method, but most n8n workflows can use the built-in Google Sheets node instead: Google Sheets API reference.
Scale the workflow without losing track of files
- Start with a small sample. Confirm that the sheet mapping, file response, upload, and row update all work before processing a large list.
- Use modest batching or delays. The HTTP Request node exposes batching controls. Choose a rate that fits your provider’s limits and your n8n host capacity; the cited documentation does not establish a universal throughput figure.
- Control output size. Use only the screenshot dimensions and page coverage your task needs. Full-page captures and larger images can increase the amount of binary data handled by the workflow.
- Consider binary execution storage. Large batches of image files can consume n8n storage or memory depending on your configuration. Site-Shot’s n8n screenshot tutorial gives vendor-specific guidance about binary handling; its recommendations and resource estimates are not universal guarantees.
- Make reruns safe. Filter out completed rows, keep a stable row key, and decide whether a rerun should replace an existing screenshot or create a new file.
- Keep credentials out of sheet data. Do not place API keys in URL cells or user-editable workflow fields.
Troubleshooting
The screenshot API returns an error instead of an image
Check the endpoint, authentication credential, and URL parameter against the provider’s current API documentation. Confirm the expression resolves to the URL in the current row, not a blank value or literal expression text.
Rank #4
The HTTP Request node output is not available to the Drive node
Check that Response Format is set to File and that Put Output in Field has a name. Select that exact binary property in the upload node; a mismatch in field names breaks the handoff.
The workflow processes blank or already completed rows
Add a condition before the HTTP Request node that checks for a non-empty URL and a pending or blank status. Verify that the column names match the sheet headers exactly as n8n reads them.
The screenshot is saved but the sheet is not updated
Check that the writeback node uses the same stable row identifier or original row number retained from the read step. Also confirm the Google credential has permission to edit the selected spreadsheet.
Best Value
Drive links do not open for recipients
Review the uploaded file’s sharing settings and the destination folder’s permissions. A stored link does not grant access by itself.
Large runs are slow or strain the n8n host
Reduce batch size, add a modest delay, or lower capture dimensions and page coverage. Inspect how your n8n instance stores binary execution data, then test a representative batch before scaling up.
Or skip the browser setup
Instead of configuring page rendering yourself, send each sheet URL to ScreenshotNeo’s screenshot API. The example uses the API’s GET endpoint; replace the example URL with the current row’s URL when you configure your n8n request.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Quick Recap
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture. Bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots, and the free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Every feature is available on every plan. See the API documentation for request options, then sign up for 1,000 free screenshots a month with no card.
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.

