ScreenshotNeo

BlogComparisons

How Much Does a Website Screenshot API Cost for Bulk Captures?

Bulk screenshot API costs depend on volume, billing rules, storage, and throughput. Compare real plan examples and estimate your effective cost per successful capture.

By the ScreenshotNeo team4 October 202610 min read

Short answer: bulk website screenshot APIs range from a few dollars a month for a few thousand captures to hundreds of dollars for hundreds of thousands. There is no single market rate: vendors sell monthly quotas, prepaid credits, metered usage, and overages, and a “screenshot” may mean a request, a successful capture, or a final exported image. Estimate your expected billable volume and throughput before comparing headline prices.

For a first comparison, ScreenshotNeo is a useful option to evaluate first: its plans start at $5 for 3,000 screenshots, and it says bot checks, blank pages, failed loads, timeouts, and cache hits are not billed. Review its API documentation for request options and current limits.

Published bulk screenshot API prices

The following are vendor-advertised public prices surfaced in research checked on October 3, 2026. They are not tested quotes or guarantees of checkout totals. Pricing and plan limits can change; verify the linked pricing page before buying.

Provider Published example Billing and throughput details
ScreenshotNeo Free: 1,000/month; Starter: $5 for 3,000; Growth: $15 for 15,000; Pro: $39 for 60,000; Scale: $99 for 250,000; Business: $249 for 1,000,000 Only clean shots are billed; bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing. Bulk capture supports up to 100 URLs per call. [Pricing]
Site-Shot X-Lite: $5/month for 2,000; Lite: $15 for 10,000; Optimal: $50 for 50,000; Professional: $500 for 625,000 Published plans list 10 workers on X-Lite and Lite, 25 on Optimal, and 100 on Professional. Extra captures are listed at $0.0025, $0.0015, $0.001, and $0.0008 respectively. Saved-image capacity is separate from monthly capture allowance; deleting a saved image frees storage, not capture credits. [Pricing]
ScreenshotOne 100 free/month; Basic: $17/month for 2,000 Basic lists 40 requests per minute and $0.009 per extra screenshot. The vendor says it charges only for successful requests. [Pricing]
ScreenshotInk Scale: $79/month for 50,000; extra credits advertised at $5 per 1,000 Bulk runs support up to 20 URLs per run. [Pricing]
ScreenshotAPI Metered at $0.001 per shot; prepaid examples include 2,000 for $2, 5,000 for $5, 10,000 for $9, 25,000 for $22, 50,000 for $40, and 100,000 for $80 The 50,000 and 100,000 prepaid examples imply $0.0008 per shot. The source extract had conflicting free-quota wording, so confirm the live terms rather than relying on a free amount. [Pricing]
WebsiteScreenshot.io Flexible package begins at $3/month for 1,000 credits Additional screenshots are listed at $0.003 each; the paid flexible plan includes website/API access. [Pricing]
Add Screenshots Provider advertises self-serve plans up to 1.5 million screenshots for $2,406/month The captured pricing extract did not include the full tier table. Verify the exact quote and limits on the live page. It advertises no concurrency caps and all capture regions on plans. [Pricing]

These are different products and billing units, not a controlled price comparison. For example, Site-Shot’s saved-image library capacity is separate from monthly captures, while prepaid packs and included monthly quotas work differently. Compare only plans that fit the same workload and accounting period.

Estimate the monthly cost for your workload

Start by estimating the number of billable capture attempts you need. A URL may need several captures if you vary viewport, device, locale, or page state.

monthly capture demand = URLs × variants per URL × scheduled runs per month × retry factor
monthly cost = plan or pack price + billable captures above included quota × overage rate

For pay-as-you-go pricing, use:

monthly cost = expected billable captures × current per-capture rate

Keep storage, retention, and throughput costs separate if a vendor prices them separately. Calculate effective cost per successful capture as total expected spend divided by expected successful captures; do not compare an overage rate with an included-plan average as though they were the same rate.

Illustrative volume scenarios

These examples use the published figures above and assume all captures fit within the stated quota, with no overages or separately priced storage. They are arithmetic illustrations, not recommendations or quotes.

Monthly demand Example plan or pack Approximate included-unit cost What to verify
2,000 captures ScreenshotNeo Starter: $5 for 3,000 $0.00167 per included capture at full quota use Whether your request pattern fits the account’s current request and simultaneous-render limits.
50,000 captures ScreenshotInk Scale: $79 for 50,000 $0.00158 per included capture Bulk run size is up to 20 URLs; determine how many runs and how long they take.
50,000 captures Site-Shot Optimal: $50 for 50,000 $0.001 per included capture 25 workers are listed; verify saved-image capacity and extra-capture behavior.
100,000 captures ScreenshotAPI prepaid pack: $80 for 100,000 $0.0008 per prepaid shot Credit expiry, success/failure billing, throughput, and retention terms.
625,000 captures Site-Shot Professional: $500 for 625,000 $0.0008 per included capture 100 workers are listed; confirm job duration, storage, and overage terms.

At low volume, a free tier or a small monthly quota can dominate the decision. At high volume, a low unit rate may still be the wrong fit if the concurrency or request rate cannot finish the work by your deadline.

What changes the real cost of bulk capture?

1. How the provider counts usage

Check whether usage means API requests, successful renders, exported files, or credits. A timeout or bot challenge can consume a request on one service and be non-billable on another. ScreenshotOne says it charges only for successful requests; ScreenshotNeo says bot checks, blank pages, timeouts, failed loads, and cache hits are not billed. Read the provider’s terms for the exact definition of success and any exceptions.

2. Quota, prepaid credits, overages, and rollover

A monthly quota resets on a schedule; prepaid credits may have separate expiry rules; metered billing charges as usage occurs; overage pricing applies only after an included allowance. Check whether unused quota rolls over and whether requests stop, queue, or continue at an extra rate when the allowance is exhausted. ScreenshotNeo’s pricing page says requests beyond quota receive a quota error until reset or upgrade, rather than being billed automatically.

3. Storage and retention

Some services charge or limit saved-image capacity separately from capture volume. Site-Shot describes a library capacity equal to the monthly screenshot allowance; deleting a saved image frees storage but does not restore capture credits. If your workflow downloads results and does not need hosted history, check whether stored results can be deleted and whether storage is bundled or metered.

4. Throughput and completion deadline

Compare requests per minute, worker count, simultaneous renders, batch size, and asynchronous job behavior. A batch endpoint can reduce client overhead, but it does not necessarily mean the provider renders all URLs at once. ScreenshotNeo documents bulk requests up to 100 URLs per call and account-level request-rate and simultaneous-render limits. Site-Shot publishes worker counts; ScreenshotOne lists a 40-request-per-minute Basic limit; ScreenshotInk lists runs of up to 20 URLs. Confirm current limits for the plan you would buy.

5. Retry policy and capture variants

Retries can multiply request volume. So can capturing mobile and desktop, several locales, or multiple page states for every URL. Estimate these explicitly, then check whether a retry after a failed load is billable. Avoid retrying permanent failures such as a consistently blocked URL without a backoff or a way to mark it for manual review.

6. Workload fit

Only pay for features your capture job needs. Full-page screenshots, element selection, PDF output, geolocation, custom headers, caching, and integrations can change implementation effort and plan fit. A bulk job for visual monitoring has different needs from a one-time archive export. Confirm required output formats, viewport behavior, retention, and whether your targets permit automated access.

How to calculate volume before choosing a plan

  1. Count unique URLs. Use the number of pages that actually need capture, not the number of records in a source database.
  2. Count variants. Multiply by device sizes, viewport widths, locales, authenticated states, or page states you need.
  3. Set the schedule. Multiply by runs per day or month. A daily job has about 30 scheduled runs in a 30-day estimate.
  4. Model retries. Use observed failure rates if available. If you do not know them, estimate a conservative retry allowance and treat it as an assumption, not a benchmark.
  5. Set retention. Decide how long outputs must remain accessible and whether you can archive them in your own storage.
  6. Set a deadline. Divide the job size by the available time and compare the implied rate with provider limits and concurrency.
  7. Compare expected spend. Include the base plan, overages, storage, and any separately priced capacity. Divide by expected successful outputs for an apples-to-apples cost figure.

Reliability, performance, and cost controls

  • Use bounded concurrency. Start below the provider’s published limit, then increase only while errors and response times remain acceptable. Excess client concurrency can create throttling and retries rather than more completed work.
  • Use asynchronous jobs for large batches. Async submission can keep your worker free and support webhook-based completion. Store job identifiers and make result handling safe to repeat.
  • Make retries selective. Retry transient network failures and rate limits with exponential backoff and jitter. Do not repeatedly retry deterministic errors such as malformed URLs or invalid credentials.
  • Track outcomes by response metadata. Separate successful captures, cache hits, bot blocks, blank pages, timeouts, and errors. This reveals whether your spend and output volume match assumptions.
  • Use caching when the page state allows it. A suitable cache TTL can avoid repeated rendering of unchanged pages. Confirm whether cache hits consume quota; ScreenshotNeo says cache hits are not billed.
  • Set a monthly usage alert. Reconcile provider usage with your own request ledger before the quota resets. Keep a queue or pause mechanism so an exhausted quota does not silently break a downstream pipeline.
  • Preserve idempotency in your workflow. Use a stable key based on URL, viewport, and capture version to avoid duplicate work when a client restarts after a timeout.

Quick comparison checklist

  • Is the published amount a monthly quota, prepaid pack, or metered rate?
  • What precisely counts as billable, including failures, cache hits, and bot challenges?
  • What happens at quota exhaustion: pause, queue, error, or automatic overage?
  • Are stored-image capacity and capture credits separate?
  • What are the worker, concurrent-render, request-rate, and batch-size limits?
  • Can the service finish your job before its deadline at the selected tier?
  • Are unused credits carried forward, and how long do prepaid credits last?
  • Do retries, variants, and retention fit the estimate?
  • Does the provider expose usage or job status that your system can reconcile?
  • Have you rechecked the live pricing page and account terms immediately before purchase?

Or skip the browser setup

If building and operating a capture worker is not the goal, ScreenshotNeo provides a one-request screenshot API. See the API documentation for the options and limits. This cURL example saves a WebP screenshot of Stripe:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Equivalent Python:

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)

Equivalent Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status} ${await res.text()}`);
await Bun.write('shot.webp', new Uint8Array(await res.arrayBuffer()));

Before capture, ScreenshotNeo accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server gives AI agents tools to take screenshots, inspect page information, and capture PDFs. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000, and yearly billing gives two months free. Sign up for 1,000 free screenshots a month.

Troubleshooting cost and batch estimates

My invoice is higher than quota divided into the plan price

Cause: you may have exceeded the included quota, used a different billing unit than expected, or incurred separately priced storage or capacity charges. Fix: reconcile request counts, successful captures, variants, retries, and stored-image usage against the vendor’s usage report and current plan terms.

The job is not finishing by its deadline

Cause: the plan’s request rate, worker count, simultaneous-render limit, or batch behavior may constrain throughput. Fix: measure completed captures per minute, check throttling responses, and compare the observed completion rate with the published plan limit. Increase capacity or spread the job over a longer window if needed.

Usage is higher than the number of URLs

Cause: each URL may have multiple viewport, locale, or state variants, plus scheduled repeats and retries. Fix: calculate demand as URLs multiplied by variants, runs, and retry factor; log a stable capture identifier to find duplicate work.

Deleting images did not restore credits

Cause: stored-image capacity and capture quota can be separate. Site-Shot explicitly says deleting saved images frees library capacity but does not restore monthly capture credits. Fix: treat storage cleanup and capture allowance as separate controls, and check each provider’s billing rules.

Free quota wording differs across pages

Cause: plan details may change or cached search extracts may conflict. Fix: confirm the provider’s live pricing page and account checkout terms. The research extract for ScreenshotAPI had conflicting free allowance amounts, so this article does not state an exact free quota for it.

Frequently asked questions

Is there an industry-average price per screenshot?

No dependable market-wide average was found in the reviewed material. Published provider prices use different quotas, success rules, and capacity limits, so calculate an effective rate for your own workload.

Does a bulk endpoint always make a job faster?

No. Batch size reduces submission overhead, but rendering throughput still depends on workers, concurrency, queues, and target-page load times. Confirm the provider’s actual limits for the chosen plan.

Should I choose the lowest advertised unit price?

Only if its billing definition, throughput, retention, failure handling, and features fit your job. A low rate is not useful if the plan cannot complete captures by the deadline or stores results for less time than you need.

How often should I recheck prices?

Recheck immediately before purchase or budget approval. The figures here are vendor-advertised examples checked on October 3, 2026, and pricing pages can change.