Use Case

Screenshot thousands of pages in one API call

Upload a URL list, set your capture options once, and download a ZIP of every screenshot when the batch is done. No polling loops to write — built-in retries, progress tracking, and direct cloud storage delivery included.

No URL limit
Auto-retry per URL
80+
Countries available

How it works

From URL list to ZIP archive in four steps

The batch API accepts a file upload and handles all queuing, retrying, and packaging. You define the options once and every URL in the file gets the same treatment.

1

Prepare your URL list

Create a plain text file with one URL per line. Optionally add a filename in the second column to control how files are named in the ZIP.

2

POST to /batch/create

Submit the file via multipart/form-data alongside any capture options: country, viewport, output format, integrations, and more.

3

Poll for status

The API returns a batch ID. Poll /batch/info periodically to track progress: count, processed, and failed fields update in real time.

4

Download the ZIP

When status is "finished", fetch the zip_url to download all screenshots. Large batches are split into 100 MB chunks for easy handling.

File Format

Two ways to structure your URL list

Plain text — one URL per line
https://example.com/
https://example.com/pricing/
https://example.com/features/
https://example.com/blog/post-1/
https://example.com/blog/post-2/

ScreenshotCenter auto-generates filenames. Best for quick runs where file naming doesn't matter.

CSV — URL with custom filename
https://example.com/,home.png
https://example.com/pricing/,pages/pricing.png
https://example.com/features/,pages/features.png
https://example.com/blog/post-1/,blog/post-1.png
https://example.com/blog/post-2/,blog/post-2.png

Filenames support subfolders. The folder structure is preserved in the ZIP and in your S3 bucket if you use a storage integration.

Export directly from Excel or Google Sheets as CSV. The first column is the URL, the second is the optional filename.

API Example

Create a batch and poll for completion

Submit your URL file via multipart/form-data. Check progress with /batch/info and download the ZIP when status is "finished".

# 1. Create the batch
curl -X POST https://api.screenshotcenter.com/v1/batch/create \
  -H "X-API-KEY: YOUR_API_KEY" \
  -F "[email protected]" \
  -F "country=us" \
  -F "size=page" \
  -F "name=Site audit — Feb 2026" \
  -F "hide_ads=true" \
  -F "format=png"
# => { "id": 98765, "status": "processing", ... }

# 2. Poll for status
curl "https://api.screenshotcenter.com/v1/batch/info?key=YOUR_API_KEY&id=98765"
# => { "status": "finished", "count": 1240, "processed": 1238, "failed": 2, "zip_url": "https://..." }

# 3. Download the ZIP
curl -o screenshots.zip "https://..."

Use Cases

What teams run as batch jobs

Batch processing turns time-consuming manual screenshot workflows into a single API call. Here are the most common high-volume capture jobs teams automate.

🗺️

Full-site SEO audits

Export your sitemap, feed it to the batch API, and get screenshots of every indexed page in one run. Compare renders across countries to catch geo-specific layout or content issues at scale.

  • Capture all pages from your XML sitemap in one batch
  • Detect broken layouts after a CMS migration
  • Verify canonical URLs render the correct content
🛒

Ecommerce product catalog

Screenshot thousands of product pages at once — for archival, brand compliance checks, or visual QA after a platform migration. Export as PNG, JPEG, or PDF and receive a single ZIP download.

  • Capture an entire product catalog after a redesign launch
  • Archive product page states before a seasonal sale
  • Validate that all product images and prices rendered correctly
🔄

Website migration QA

Run a before-and-after batch on hundreds of URLs during a site relaunch. Compare screenshots side by side to catch missing assets, broken styles, or redirect errors before users notice.

  • Pre/post capture on staging vs production after a deploy
  • Verify redirect chains resolved correctly after a domain migration
  • Spot visual regressions across every template variant
📂

Directory and listing sites

Generate a screenshot thumbnail for every listing in your directory — restaurant pages, SaaS tools, real estate listings — and store them in S3 or your preferred cloud storage automatically.

  • Auto-generate thumbnails for user-submitted URLs
  • Refresh stale previews for all active listings on a schedule
  • Screenshot competitor directory entries for market research
🛡️

Compliance and legal archival

Bulk-capture policy pages, terms of service, privacy notices, and regulatory disclosures on a schedule. Build a timestamped evidence library without manual effort.

  • Monthly capture of all policy pages across your domains
  • Archive supplier and partner terms for procurement records
  • Bulk evidence collection for SOC 2 or GDPR audit trails
🖼️

Social preview and OG image generation

Generate og:image thumbnails for every article, product, or landing page in your CMS in a single batch job. Feed the URL list from your CMS export and receive production-ready images.

  • Bulk-generate og:image previews for a blog's full back catalog
  • Refresh social preview images after a brand redesign
  • Create link preview thumbnails for an internal knowledge base

Batch Parameters

Key parameters for batch creation

All standard screenshot options apply to every URL in the batch. Set them once when creating the job.

ParameterRequiredDescription
filerequiredText or CSV file. One URL per line, or URL,filename per line.
countryoptionalISO country code for all captures in this batch. Defaults to "us".
nameoptionalHuman-readable label to identify the batch in the dashboard.
sizeoptional"screen" (visible viewport) or "page" (full scrollable page).
screen_widthoptionalBrowser viewport width in pixels. Default: 1024.
pdfoptionalSet to true to capture PDF output for every URL.
hide_adsoptionalStrip ads and cookie banners from all captures.
darkoptionalEnable dark-mode rendering for all URLs.
delayoptionalSeconds to wait after page load before capturing.
appsoptionalApp integration IDs (e.g. S3, Google Drive) to trigger after each capture.
stepsoptionalJSON-encoded automation steps run before each capture.
trackersoptionalJSON-encoded trackers to extract data from every page.

Output

What's inside the ZIP download

Every batch download includes the screenshots and a CSV index so you can reconcile results programmatically or open them in Excel and Google Sheets.

🖼️

Screenshot files

PNG, JPEG, WebP, or PDF — one file per URL, named as specified in your input file.

📋

CSV index

Lists every URL with its status (finished / error), screenshot ID, filename, and HTTP status code.

📦

Chunked for large batches

ZIP files over 100 MB are split automatically. Decompress the first file with 7-Zip (Windows) or Keka (macOS).

☁️

Direct cloud delivery

Skip the ZIP entirely by using an app integration — files land in S3, Google Drive, or Dropbox as each screenshot finishes.

Start your first batch today

Get 500 free captures to test the batch workflow. No credit card required. Upload a URL list and have your first ZIP ready in minutes.

Frequently asked questions

Is there a limit on how many URLs I can include?

There is no hard URL limit per batch. The queue handles arbitrarily large batches — teams have submitted millions of URLs in a single run. Large batches are processed in parallel and split into downloadable chunks automatically.

What file format does the URL list need to be in?

A plain text file with one URL per line is the simplest option. You can also use a two-column CSV with the URL in the first column and a custom output filename in the second column — useful for organizing screenshots into folders within the ZIP.

How are failed URLs handled?

Each URL is automatically retried up to five times with exponential backoff if the page is temporarily unavailable or slow to load. The batch response includes a failed count, and the downloaded CSV lists the status of every URL individually.

What is included in the ZIP download?

The ZIP contains all captured image (or PDF) files, plus a CSV index with each URL, its status (finished or error), the screenshot ID, the local filename, and the HTTP status code returned by the page.

Can I route the whole batch through a specific country?

Yes. Set the country parameter when creating the batch and every URL will be captured through a browser in that country. Combined with the language and timezone parameters, this lets you validate full localization at scale.

Can I send screenshots directly to cloud storage instead of downloading a ZIP?

Yes. Pass one or more app integration IDs in the apps parameter and each screenshot is pushed to your configured destination — S3, Google Drive, Dropbox, Azure Blob, and others — as soon as it completes.

Can I use automation steps or trackers in a batch?

Yes. Pass a JSON-encoded steps array to execute browser actions before each capture (e.g. dismiss a cookie banner) and a JSON-encoded trackers array to extract data values from every page in the batch.