ScreenshotNeo

BlogGuides

How to Choose a Screenshot API Plan for a SaaS App

Estimate render volume, peak traffic, required features, billing rules, and privacy needs before choosing a screenshot API plan for your SaaS app.

By the ScreenshotNeo team4 October 20269 min read

Choose a screenshot API plan by estimating billable renders, checking peak request capacity, testing the features your pages need, and modeling the provider’s actual billing and data-handling rules. User count alone is a poor estimate: one user action may create several renders when you capture multiple pages, formats, viewports, or customer-specific variants.

For a SaaS app, start with a representative workload and required render behavior, then compare ScreenshotNeo first: it offers 1,000 screenshots per month free, paid plans from $5 for 3,000, and bills only clean shots. Confirm the current plan details with each provider before committing, since prices, quotas, and policies can change.

1. Estimate the renders your product will request

A render is a capture request that a provider counts under its own billing rules. Definitions vary: options, retries, cache misses, long render times, file size, or specialized features can affect metering. Build a forecast from product actions and provider rules rather than assuming each customer or URL equals one billable render.

Build a workload model

  1. List the product flows that take screenshots: for example, a user imports a URL, generates a report, or refreshes a preview.
  2. Estimate monthly actions for each flow. Include first-time captures and expected refreshes.
  3. Count distinct render variants. A different viewport, output format, authenticated session, locale, or option set may need its own capture.
  4. Add retries and cache misses. Use your freshness requirements to estimate how often cached results expire or cannot be reused.
  5. Calculate low, expected, and peak-month totals. Keep sustained volume separate from short bursts.

A useful starting formula is:

monthly renders = monthly product actions × renders per action × distinct variants
expected billable renders = monthly renders − provider-recognized cache hits + billable retries or feature units

This is a planning model, not a universal billing formula. Replace the final line with the provider’s specific meter. A provider may count only successful uncached renders, while another may count render duration, file size, GPU use, or advanced options.

Track usage before choosing a tier

If the product already exists, instrument a representative week. Record captures by feature, option set, output format, and outcome. Project the data to a month, accounting for seasonal peaks and launches. If the product is new, estimate the same categories from product flows and revisit the estimate after a trial.

For a SaaS product, avoid forecasting from registered accounts alone. Estimate the number of active accounts, how often each uses a capture feature, how many URLs are processed per action, and how many variants each customer expects.

2. Compare plans on the dimensions that affect your app

Dimension What to check Why it matters
Included volume and meter Monthly quota, what counts as a render, cache accounting, retries, and extra-use pricing The headline quota may not match the number of product actions you can support.
Peak throughput Requests per minute, concurrency, queue behavior, timeouts, and rate-limit responses A monthly quota does not guarantee that a burst will finish on time.
Render behavior Formats, full-page capture, viewport and device controls, selectors, scripts, geography, and PDF needs Plan eligibility and output quality can depend on the exact rendering feature.
Limits and overages Failed-render charges, hard caps, automatic tier changes, and overage switches These determine whether a spike creates a larger bill or a service interruption.
Data handling Default storage, cache controls and TTL, output retention, signed access, and key handling Captured pages can contain customer data or confidential information.
Reliability and support Observed success and latency on your pages, support path, and applicable SLA terms Quota and marketing claims do not establish production reliability.

3. Check the burst limit separately from the monthly quota

Estimate both typical and peak requests per minute. A plan can include ample monthly renders while limiting requests per minute or concurrent jobs. Ask providers to confirm concurrency, queueing, timeout behavior, burst handling, and what happens when you exceed a published rate limit.

Test realistic peaks against representative pages. Measure completion time and rate-limit responses, and decide whether your app can queue work, show a pending state, or retry later. Do not assume a provider’s requests-per-minute figure tells you its concurrency or queue policy.

4. Test required rendering features on your own pages

Make a checklist from the product’s actual output requirements. Test pages with dynamic content and lazy-loaded images, long pages, authenticated or logged-out sessions as appropriate, localized content, and each required output format. Include pages from the geographies and customer environments that matter to your service.

  • Check image formats and PDF output, including page length and layout.
  • Verify viewport, device, and full-page behavior.
  • Test selectors or element-only captures if the product needs a component rather than a whole page.
  • Exercise custom scripts, headers, cookies, or authentication where required.
  • Record visual defects and failed loads alongside latency and success.

A feature listed on a plan page does not prove that the result will work on your pages. Keep a small set of representative URLs and compare output during evaluation.

5. Model the complete monthly cost

Calculate expected spend using the provider’s current billing rules. Include the base subscription, expected billable renders, overages, and any multipliers for features or large outputs. Calculate the cost at low, expected, and peak usage, then model what happens if a hard limit is reached or an account changes tiers automatically.

Do not assume that a cache makes every repeat free. Providers differ in whether cache hits count, how cache expiry works, and whether a cache miss causes a new billable render. Model cache behavior using realistic freshness and privacy requirements; a customer-specific or frequently refreshed capture may not be reusable.

Published plan examples from the research check

The following figures were listed on official pricing pages checked on October 3, 2026. They are vendor-published terms, not an independent price survey, and should be rechecked before purchase.

Provider and plan Published allowance and price Other listed terms
ScreenshotNeo Free 1,000 screenshots/month, free No card required; only clean shots are billed.
ScreenshotNeo Starter 3,000 for $5 Paid plans; every feature is on every plan.
ScreenshotOne Basic 2,000 for $17/month 40 requests/minute; $0.009 per extra screenshot.
ScreenshotOne Growth 10,000 for $79/month 80 requests/minute; $0.006 per extra screenshot.
ScreenshotOne Scale 50,000 for $259/month 150 requests/minute; $0.004 per extra screenshot.
Urlbox Lo-Fi Up to 2,000 for $19/month 30 requests/minute.
Urlbox Hi-Fi Up to 5,000 for $49/month 60 requests/minute.
Urlbox Ultra Up to 15,000 for $99/month 250 requests/minute.
Urlbox Business $498/month listed, with a $495 base and then $3 per 1,000 renders 1,000 requests/minute.

ScreenshotOne says only successful renders not served from cache count, and that overage is charged only if enabled, subject to an account-dependent hard limit. Urlbox says unsuccessful renders are not charged and cached Render Links do not count; its metering rules also describe render usage based on duration and file size, doubled use for GPU requests, and additional usage for some advanced features. Its FAQ says excess usage can automatically move an account to the next tier. Verify the rules for the exact plan and contract before comparing effective costs. ScreenshotOne pricing · Urlbox pricing

ScreenshotAPI.to is a capability reference rather than a priced comparison in the research: its documentation describes authenticated GET and POST endpoints, plus a keyless endpoint limited to 8 requests per minute with tighter caps and no PDF. It also documents viewport defaults and limits and PNG, JPEG, WebP, and PDF formats. ScreenshotAPI.to API reference

6. Review privacy and credential handling

Check whether the provider stores outputs, how long cached results remain available, and whether you can configure retention or disable storage. Review how temporary processing works and where signed output links can be accessed. Use HTTPS, keep long-lived API keys on your server, and avoid placing secrets in browser-visible requests or public URLs.

ScreenshotOne says uncached, non-storage requests are returned without being stored on its infrastructure, while qualifying that content may be temporarily held in internal components such as queues, message brokers, or temporary buffers. Its caching documentation describes a four-hour default TTL and a maximum of one month. Review the current documentation and data terms for the provider and your application’s needs. ScreenshotOne caching documentation · ScreenshotOne API documentation

7. Run a production-like trial before depending on the API

  1. Choose representative pages, including long, dynamic, authenticated, and localized examples.
  2. Send a realistic mix of formats, viewports, and other required options.
  3. Run at expected load and a representative burst.
  4. Track success rate, latency percentiles, rate-limit responses, timeouts, and retry outcomes.
  5. Review support response and ask for the SLA and service-credit terms that apply to the specific plan or contract if guarantees matter.

Vendor claims are not independent measurements. A trial gives you evidence about your own workload; contract terms establish any formal service commitments.

8. Choose a plan with an explicit decision rule

  • Start with the smallest plan that covers expected billable volume after applying the provider’s actual meter, not just the raw render estimate.
  • Confirm peak throughput independently. If it does not support your burst, ask about queueing or choose a plan that does.
  • Require every feature your app needs. Test those features on your pages before relying on plan descriptions.
  • Set a spend and limit policy. Decide whether to allow overages, stop capture at a hard cap, or queue work when the allowance is exhausted.
  • Revisit the choice with observed usage. Compare real usage and failure data with the low, expected, and peak forecast.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. One GET request can return a PNG, JPEG, WebP, or PDF. Its cleanup accepts cookie and 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 and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and the response identifies the page verdict and billing status in headers. Its MCP server gives Claude, Cursor, and other MCP clients tools for screenshots, page information, and PDF capture.

Every feature is on every plan: full-page and element captures, device and viewport controls, PDF settings, HTML/CSS capture, custom CSS and JavaScript, wait conditions, request blocking, headers and cookies, timezone and geolocation, resizing, caching, signed links, async jobs, bulk capture, usage API, and OpenAPI spec. See the ScreenshotNeo documentation.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
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)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Cookie banners, popups, and chat widgets are removed before the shot. Bot checks, blank pages, and failed loads are never billed. The MCP server lets AI agents take screenshots. The Free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up free for ScreenshotNeo.

Troubleshooting plan and integration problems

Symptom Likely cause What to do
Monthly quota runs out earlier than forecast Variants, retries, cache misses, or feature-specific metering were omitted. Break usage down by option set and outcome; recalculate using the provider’s billing definition.
Requests fail during a traffic spike RPM or concurrency limits are below peak demand, or queue behavior differs from expectations. Measure peak requests per minute; confirm concurrency and queue policy; add application-side queuing where appropriate.
Output is incomplete or visually wrong Dynamic content, lazy loading, page length, authentication, or an unsupported option affects rendering. Reproduce with a representative URL and exact options; test wait behavior and the required output settings.
Unexpected overage or tier change The provider counts duration, output size, GPU, advanced options, or automatically changes tiers. Check current metering and account settings; estimate with real option mixes and set an appropriate cap.
Repeated captures are still billed Cache is disabled, expired, bypassed by differing options, or misses are metered. Compare cache keys and TTL with freshness needs; confirm the provider’s cache accounting.
Concern about sensitive output Storage, retention, temporary processing, or link access was not understood. Review the provider’s current caching and data terms; disable storage where supported and restrict signed links.

FAQ

Should a SaaS app use one screenshot provider for every feature?

Use one provider when it satisfies the tested render requirements and operational limits for your product. If a required page type or output does not pass evaluation, reassess before making the API a dependency.

Is the cheapest monthly plan the best choice?

Not necessarily. Compare effective cost at expected and peak usage, including the provider’s render meter, extra-use charges, and the cost of features your app requires.

When should we move to a higher tier?

Move when observed billable volume, peak throughput, required features, or support needs exceed the current plan’s limits. Use measured usage and current plan terms to make that decision.

Can the monthly quota tell us how fast captures will complete?

No. Check the published request rate and confirm concurrency, queueing, timeout, and burst behavior separately.