The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →You can capture a list of URLs from the command line by making one ScreenshotMachine API request per URL in a Bash loop. The published ScreenshotMachine example uses curl for a single URL; the available documentation does not establish a separate, vendor-maintained list CLI. This guide builds on that one-URL request, saves each result under a unique filename, and explains how to check the output.
What you need before capturing a URL list
- A URL file: Create
urls.txtwith one complete HTTP or HTTPS URL per line. Although ScreenshotMachine says the protocol prefix is optional, full URLs make it easier to inspect and validate the input. - A ScreenshotMachine customer key: The API request requires a customer key and target URL. Store the key in an environment variable or private configuration rather than committing it to a public script.
- Bash and curl: The method below repeats the vendor-documented GET request for every nonblank line.
The official request endpoint is https://api.screenshotmachine.com. ScreenshotMachine says, “Url percent-encoding is strongly recommended.” The example uses curl --data-urlencode so URL characters are encoded as request parameters rather than joined into an unescaped query string.
Capture each URL with a Bash loop
Save the following as capture-urls.sh. It is a shell pattern based on ScreenshotMachine’s one-URL Bash/curl example, not an official ScreenshotMachine batch command.
- Put one URL per line in
urls.txt. - Set
SCREENSHOTMACHINE_KEYin your shell environment, then run the script from the directory containingurls.txt. - Review the generated PNG files and check a sample visually.
ScreenshotMachine API documentation describes the request parameters and settings used here.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
#1 Best Overall
- [INTEL POWERED CONTENT] - Built with a 8th Generation Hexa-Core Intel i5 and 32GB of DDR4 RAM; Modern, Windows 11 ready, with 4K support, Executive multitasking, media streaming and smooth, multi-tab web browsing; Perfect as an all-purpose multimedia computer; built for content creators; Plenty of RAM and Mass storage for photo and video editing powered by Intel HD 630
- [LATEST WIRELESS TECH] - This Dell Desktop Computer easily connects to the internet through the Built In WiFi / Bluetooth
- [SOLID STATE STORAGE] - This Dell Computer setup comes with an ultra-fast 1TB Solid State Drive (SSD); Setup as the primary boot device; Boot and load programs with lightning speed ; Additional expansion available
- [BUY & OWN WITH CONFIDENCE] - From the world's largest Microsoft Authorized Refurbisher; Quality Guarantee and Free Tech Support; Award-winning Customer Service; | Support Sustainable Business
- [MODERN HI-SPEED PORTS] - USB 3.0 (x4) | USB 2.0 (x4) | DisplayPort (x1) | HDMI Port (x1) | Audio Combo Jack (x1) | Audio Out (x1) | RJ-45 Ethernet (x1) | Internal SATA (x3)
#!/usr/bin/env bash
set -u
: "${SCREENSHOTMACHINE_KEY:?Set SCREENSHOTMACHINE_KEY in your environment first}"
input="urls.txt"
outdir="screenshots"
mkdir -p "$outdir"
if [[ ! -f "$input" ]]; then
printf 'Input file not found: %sn' "$input" >&2
exit 1
fi
index=0
while IFS= read -r url || [[ -n "$url" ]]; do
# Ignore blank lines, including lines containing only spaces or tabs.
[[ "$url" =~ ^[[:space:]]*$ ]] && continue
index=$((index + 1))
output=$(printf '%s/%04d.png' "$outdir" "$index")
if ! curl --fail --silent --show-error --get
'https://api.screenshotmachine.com'
--data-urlencode "key=$SCREENSHOTMACHINE_KEY"
--data-urlencode "url=$url"
--data-urlencode 'dimension=1366x768'
--data-urlencode 'device=desktop'
--data-urlencode 'format=png'
--data-urlencode 'cacheLimit=0'
--data-urlencode 'delay=2000'
--data-urlencode 'zoom=100'
--output "$output"; then
printf 'Request failed for input line %d: %sn' "$index" "$url" >&2
rm -f "$output"
continue
fi
if [[ ! -s "$output" ]]; then
printf 'No output was saved for input line %d: %sn' "$index" "$url" >&2
rm -f "$output"
continue
fi
printf 'Saved %sn' "$output"
done < "$input"
Set the key without adding it to the script, for example in the current shell with export SCREENSHOTMACHINE_KEY='your-customer-key'. Replace the example value locally; do not publish a real key.
The sample names output files sequentially (0001.png, 0002.png, and so on), so URLs with unusual characters cannot create unsafe filenames and captures do not overwrite one another within the run. Blank lines are skipped. The --fail flag makes curl return a failure status for HTTP error responses; the script reports failures and continues with later URLs. This is useful basic handling, not a guarantee that every API-level error will be detected: inspect the files and response behavior if a result looks wrong.
Rank #2
- Model: Dell OptiPlex 7050 Small Form Factor (SFF)
- Processor: Intel Core i7-7700 3.60 GHz
- Memory: 32GB DDR4 Ram
- Storage: 1TB Solid State Drive (SSD) Fast Boot + Storage
- Operating System: Windows 11 Pro (64-bit)
Adjust dimensions, format, and rendering delay
The request uses the vendor’s sample settings as starting values, not universal recommendations. The API documentation describes these options:
| Setting | What it controls | Documented details |
|---|---|---|
dimension |
Capture width and height, in [width]x[height] form. |
Documented width bounds are 100–1920 and height bounds are 100–9999. Use full for the height for a full-length capture, such as 1366xfull. |
format |
Output image format. | The documentation lists JPG, PNG, and GIF. |
cacheLimit |
How long a cached image may be used. | The documented range is 0–14 days; 0 requests a fresh screenshot rather than a cached image. |
delay |
Wait time before capture. | The documentation describes increasing the delay for pages that need more time to render, including pages with images or animation. Its sample uses 2000. |
zoom |
Screenshot zoom. | The sample uses 100; check the live API documentation for current parameter defaults and behavior. |
device |
Device setting. | The sample uses desktop. |
| Other documented parameters | Additional capture behavior. | The API documentation also describes cookies, accept-language, user-agent, CSS selector, and crop settings. |
To capture full-page images, change the dimension argument to --data-urlencode 'dimension=1366xfull'. To use JPG or GIF, change format=png and give the output file the matching extension. Confirm current defaults and supported parameter behavior in the ScreenshotMachine API documentation before relying on them across a large run.
Recommended Free Tools
Rank #3
- IMMERSIVE 24 INCH DISPLAY: Experience stunning clarity on a Full HD IPS screen with ultra-thin bezels, offering a 90% screen-to-body ratio that makes everything from spreadsheets to streaming come alive with vibrant colors and crisp details.
- POWERFUL INTEL PROCESSING: Tackle demanding tasks with ease thanks to the Intel processor and 16GB of high-speed memory, delivering smooth performance whether you're multitasking between applications or running productivity software.
- GENEROUS STORAGE: Store all your important files, photos, and programs with blazing-fast solid state drive technology that ensures quick boot times, rapid file access, and plenty of space for your digital life.
- ENHANCED PRIVACY AND COLLABORATION: Work confidently with the pop-up privacy camera that tucks away when not in use, plus dual microphones with noise reduction for crystal-clear video calls that keep you connected professionally.
- ECO-CONSCIOUS DESIGN: Feel good about your purchase with an EPEAT Gold registered and ENERGY STAR certified computer that combines premium performance with responsible environmental manufacturing practices.
Validate the results and handle common problems
A completed curl request and a nonempty file are useful checks, but neither guarantees that the page looks as intended. Open a few outputs, especially from pages with consent prompts, animation, or content that loads after the initial page render.
- “Set SCREENSHOTMACHINE_KEY…” appears: The environment variable is missing in the shell running the script. Export the customer key in that shell and rerun.
- Input file not found: Run the script from the directory containing
urls.txt, or change theinputvariable to the file’s path. - HTTP error or no saved image: Check that the key and URL are correct, that the URL is properly formed, and that the request parameters meet the documented bounds. The vendor material reviewed does not establish a complete error-handling contract for every failure.
- Image is clipped or too small: Adjust
dimension; for a full-length capture, use a height offull. - Page appears incomplete: Increase
delayfor pages that need more time to render. The vendor documentation specifically notes images and animation as reasons to allow more delay. - Unexpected or stale capture: The sample sets
cacheLimit=0to request a fresh screenshot. If you change cache behavior, review the documented range and account for the possibility of a cached image.
The script makes requests sequentially, one per nonblank URL. It does not implement parallel capture, retries, or CSV parsing; those behaviors are not established by the vendor’s one-URL sample. For a long list, consider running a small test file first, then review the outputs and account usage before processing the full input.
Rank #4
- This Certified Refurbished product is tested and certified to look and work like new. The refurbishing process includes functionality testing, basic cleaning, inspection, and repackaging. The product ships with all relevant accessories, a minimum 90-day warranty, and may arrive in a generic box. Only select sellers who maintain a high-performance bar may offer Certified Refurbished products on Amazon.com.
- Dell Optiplex 3050 SFF Desktop computer PC, Intel Quad Core i5-6500 up to 3.6GHz, 16GB DDR4, 256GB SSD
- Includes: USB Keyboard & Mouse, USB WiFi adapter, Microsoft office 30 days free trail.
- Port: Front: USB 3.0(2), USB 2.0(2); Rear: DP, HDMI, USB 3.0(2), USB 2.0(2), RJ-45.
- Support 4K (3840x2160) Dual display, makes it easy to connect two monitors at the same time, and you can expand working Windows, mirror content, or expand a single window across multiple monitors.
Is there a ScreenshotMachine list CLI?
The documentation supports using ScreenshotMachine from the command line through Bash and curl, but it does not establish a dedicated official CLI command that reads a list of URLs. ScreenshotMachine’s GitHub organization lists official example repositories, including Bash/curl examples, without establishing a list-oriented CLI.
A separate D3 Security Screenshot Machine integration documents a “Get URL Screenshots” action that accepts multiple URLs and returns a screenshot for each. That is a third-party integration, not the Bash interface shown above. Its documentation also warns that an invalid URL may yield a link to a screenshot displaying an invalid-URL message instead of an operation-level error, so inspect returned images rather than treating a successful operation as proof every input was valid.
Best Value
- Connectivity: Includes WiFi, Bluetooth, and LAN for wireless and wired connections
- Memory: Features 16GB DDR4 RAM for smooth multitasking and performance
- Storage: Combines 500GB SSD and 1TB HDD for ample storage space
- Graphics: Integrated Intel UHD Graphics 630 for crisp visuals and video playback
- Design: Sleek desktop tower with black color and slim profile for modern look
Or skip the browser setup
ScreenshotNeo can return an image or PDF through one API request. The request below saves a screenshot of the first URL in your list; repeat it for each URL if you want to automate a list with your own script. See the ScreenshotNeo API documentation for options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo accepts cookie or consent banners as a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each of those steps can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and responses indicate the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents and MCP clients. The Free plan includes 1,000 screenshots per month without a card; paid plans start at $5 for 3,000 screenshots. Every feature is on every plan. Learn more at ScreenshotNeo.
Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.
Frequently Asked Questions
Can I put URLs without https:// in the input file?
ScreenshotMachine says the protocol prefix is optional, but this guide uses complete HTTP or HTTPS URLs to make inputs easier to validate.
Free tools Windows power users keep installed
One-click scans. No signup required.
Does this script read CSV files?
No. It reads one URL per line from a plain text file; CSV parsing is not included.
Can I run several captures at the same time?
The script shown is sequential. It does not add parallel requests or retries.
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.

