ScreenshotNeo

BlogComparisons

Chrome Headless Screenshot API Pricing Compared with Hosted Services

Compare Chrome Headless, ScreenshotOne, Urlbox, Browserless, and ScreenshotNeo pricing by billing model, failure rules, workload, and capture needs.

By the ScreenshotNeo team4 October 20269 min read

Direct answer: ScreenshotNeo is the first hosted screenshot API to consider here: it bills only clean screenshots, offers 1,000 free shots per month without a card, and its paid plans start at $5 for 3,000. For the other providers, ScreenshotOne and Urlbox publish screenshot or render-count plans, while Browserless meters browser time in units. Those prices are not directly comparable to one another or to running Chrome yourself: compare the same capture workload, including failures, caching, runtime, options, and concurrency.

This is a comparison of provider-published prices from the research snapshot dated October 3, 2026, not a same-workload benchmark. Plan details can change; confirm current terms before choosing.

1. Pricing at a glance

Service Published entry comparison What the meter means
ScreenshotNeo Free: 1,000 shots/month; Starter: $5 for 3,000 Only clean shots are billed. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing. Responses include X-Page-Verdict and X-Billed.
ScreenshotOne 100 free screenshots/month; Basic: $17/month for 2,000; Growth: $79/month for 10,000; Scale: $259/month for 50,000 Successful renders not served from cache count. Listed additional-use rates are $0.009, $0.006, and $0.004 per screenshot by paid tier. VAT is extra; annual billing includes two months free.
Urlbox Lo-Fi: $19/month for 2,000 renders; Hi-Fi: $49/month for 5,000; Ultra: $99/month for 15,000; Business: $498/month displayed as $495 base plus $3 per 1,000 renders Failed requests are not charged. Cached Render Link screenshots do not count, but REST API requests count. Duration, file size, GPU acceleration, and advanced features may consume extra renders. VAT is extra; over-quota usage moves the account to the next tier.
Browserless Prototyping: $25/month billed annually for 20,000 units; Starter: $140/month annually for 180,000; Scale: $350/month annually for 500,000 A unit covers up to 30 seconds of browser time per connection; partial intervals round up. Session time, built-in proxy bandwidth, and successful CAPTCHA solving can consume units. This is not a fixed price per screenshot.

ScreenshotOne figures are from its [pricing page](https://screenshotone.com/pricing/). Urlbox figures and quota rules are from its [pricing page](https://urlbox.com/pricing). Browserless figures and unit definitions are from its [pricing page](https://www.browserless.io/pricing) and [unit consumption documentation](https://docs.browserless.io/enterprise/terminology/unit-consumption). These are vendor-published commercial terms, not independent price or performance statistics.

2. What does a Chrome Headless screenshot cost?

There is no universal per-image price for Chrome Headless. If you run Chrome on your own infrastructure, the expense depends on the compute you provision and operate, concurrency, browser startup and session duration, storage and delivery, monitoring, retries, and engineering time. The research did not establish an independently sourced self-hosting cost model, so a precise self-hosted dollar figure would be misleading.

With a hosted service, find out what the meter counts. A screenshot-count plan is easier to estimate when its billable-render rules match your workflow. A browser-time plan needs a runtime estimate for each connection. A self-hosted browser shifts the accounting to your infrastructure and operations rather than making capture free.

3. How to compare plans fairly

  1. Count jobs and billable outcomes separately. Estimate monthly capture attempts, then account for provider rules for failed requests, cached results, and retries. ScreenshotOne excludes failures and cache hits under its listed rules. Urlbox excludes failed requests and cached Render Link screenshots, while REST API requests count.
  2. Fix the capture recipe. Record URL, viewport, full-page or viewport capture, output format, device scale, element targeting, and wait behavior. These settings change how long a browser may run and whether the output is useful.
  3. Include lazy-loaded content. Scrolling can trigger lazy images. Browserless documentation advises scrolling for lazy-loaded content; include that behavior in the comparison rather than comparing a partial capture to a complete page.
  4. Estimate runtime for Browserless. Divide each connection’s browser time into 30-second units, rounding partial intervals up, then include metered proxy bandwidth or successful CAPTCHA solving where applicable. A 31-second connection uses two time units before those additional usages.
  5. Check workflow state and concurrency. Browserless REST endpoints are stateless single-action calls. Persistent sessions or multi-step interactions require another Browserless mode. Confirm plan limits for rate, concurrency, session duration, and overage behavior.
  6. Normalize billing terms. Compare monthly with monthly or annual with annual, and include tax where applicable. ScreenshotOne and Urlbox state VAT is additional on the cited pages.

Browserless documents Puppeteer-style screenshot settings, including full-page and element-specific capture, in its [screenshot API guide](https://docs.browserless.io/rest-apis/screenshot). Its [REST API overview](https://docs.browserless.io/rest-apis/overview) describes the stateless request model.

4. Runnable Browserless example: capture a screenshot with cURL

Browserless hosts a browser endpoint. Supply your token as an environment variable and send a target URL and screenshot options as JSON. This example requests a full-page PNG; check the current endpoint and required token format in the official [Browserless screenshot documentation](https://docs.browserless.io/rest-apis/screenshot) before use.

export BROWSERLESS_TOKEN='YOUR_TOKEN'
curl -X POST "https://production-sfo.browserless.io/screenshot?token=${BROWSERLESS_TOKEN}" \
  -H 'Content-Type: application/json' \
  --data '{"url":"https://example.com","options":{"fullPage":true,"type":"png"}}' \
  --output screenshot.png

For a different region or plan, use the endpoint shown in your Browserless account and its current documentation. The response is image bytes when successful; treat non-success HTTP responses as errors rather than saving them as images.

5. Estimate Browserless units per screenshot

Browserless defines one unit as up to 30 seconds of browser time per connection, rounding partial intervals up. For an illustrative calculation, if the browser connection lasts 31 seconds, it consumes two units. If a workload averages t seconds per connection, a first approximation of units is ceil(t / 30) per connection, before any separately metered proxy or CAPTCHA usage. Browser startup, navigation, waits, and screenshot work can all contribute to session duration.

Do not divide the plan price by a guessed number of screenshots and call the result a fixed screenshot price. Measure representative connection times and include retries, idle time, proxy bandwidth, CAPTCHA solving, and your expected concurrency. Browserless explains the session-time rule in its [unit consumption documentation](https://docs.browserless.io/enterprise/terminology/unit-consumption).

6. When self-hosting Chrome makes sense

Self-hosting can fit a team that needs direct control over browser versions, network access, custom browser behavior, or a persistent multi-step workflow, and has the capacity to operate browser workers. Compare the total operating workload: provisioning, scaling, browser crashes, stuck pages, security updates, queueing, observability, storage, and delivery.

A hosted API can be simpler when captures are discrete requests and the service’s options and billing semantics fit. Browserless provides broader hosted browser automation as well as screenshot endpoints. ScreenshotOne and Urlbox focus on screenshot rendering. This describes product categories, not a performance ranking: no controlled run compared providers on identical URLs and settings.

7. Service differences that affect cost

  • ScreenshotOne: screenshot-first hosted rendering. Its pricing page lists formats including PNG, WebP, and JPEG, HTML rendering, full-page capture, caching, signed links, S3 upload, webhooks, and tier-dependent features. Only successful uncached renders count under the cited rules.
  • Urlbox: hosted screenshot API with Lo-Fi, Hi-Fi, Ultra, Business, and Enterprise positioning. Its published rules distinguish cached Render Links from REST API requests; some render duration, file size, GPU, and advanced feature use can consume extra renders.
  • Browserless: broader hosted browser service with screenshot, PDF, other REST APIs, browser connections, and automation modes. Its unit model prices browser time rather than a fixed screenshot count.
  • ScreenshotNeo: website screenshot API and MCP server. It returns PNG, JPEG, WebP, or PDF from a GET request. Its pricing is $5 for 3,000 shots on Starter, $15 for 15,000 on Growth, $39 for 60,000 on Pro, $99 for 250,000 on Scale, and $249 for 1,000,000 on Business; Free includes 1,000 monthly shots with no card. Yearly billing gives two months free, and every feature is on every plan.

8. ScreenshotNeo: a hosted option to try first

ScreenshotNeo is a screenshot API and MCP server for developers, made by Yorker Media. One GET request returns an image or PDF. It is the first hosted option to try when clean captures and predictable failure billing matter: it removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture, and bills only clean shots. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing; each response identifies the page verdict and billing state in X-Page-Verdict and X-Billed.

Its other capabilities include full-page capture with lazy images loaded; CSS-selector element capture; dark mode; 12 device presets and custom viewports; retina scale; PDF paper size, margins, landscape, and page ranges; HTML/CSS rendering; custom CSS and JavaScript; clicking an element; hiding selectors; waits for a selector, delay, or network idle; blocking ads, trackers, requests, or resource types; custom headers, cookies, user agent, and Authorization; timezone and geolocation; transparent backgrounds; image resizing; configurable cache TTL; signed links for public image tags; async jobs with signed webhooks; bulk capture for 100 URLs per call; a usage API; an OpenAPI spec; and familiar parameter names used by other screenshot APIs.

For AI workflows, its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and any MCP client. See the ScreenshotNeo documentation for API setup and options.

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}`);

Free includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up for ScreenshotNeo free.

9. Troubleshooting price estimates

Symptom Likely reason What to check
Your calculated cost per screenshot looks unexpectedly high. You divided a browser-time plan by screenshot count without accounting for session duration or additional metered usage. Measure connection time, round Browserless time up in 30-second units, and include proxy or CAPTCHA usage where relevant.
Your expected quota does not match the invoice. The provider counts different request types differently, or a feature uses additional renders. Check cached-link versus REST rules, success requirements, advanced options, overage behavior, and current plan terms.
Two providers produce different-looking pages. The configurations differ: viewport, wait condition, lazy-load scrolling, device scale, or selected element. Use identical URLs and settings and define what counts as a successful, complete capture.
Browserless usage continues while a page seems idle. Browser connection duration, including idle time, contributes to units. Close connections promptly and avoid unnecessary waits or persistent sessions when a stateless request is sufficient.
A full-page result misses lower-page images. Lazy-loaded images may not load until their region is scrolled into view. Use a capture workflow that scrolls the page to trigger lazy loading, and include its added runtime in the cost estimate.
A self-hosted estimate omits substantial operational work. Compute alone does not cover queueing, scaling, browser maintenance, retries, storage, and delivery. Track infrastructure and engineering operations over a representative period before comparing with a hosted plan.

10. Reliability and performance considerations

Price alone does not establish reliability or speed. The research contains no controlled benchmark, uptime comparison, or same-workload measurement. For a production decision, define your own success criteria and compare representative URLs with the exact options you intend to use. Record successful output, failure categories, elapsed time, cache behavior, and concurrency handling.

For reliable jobs, make retries selective: retry transient navigation or network failures with limits and backoff, but do not blindly retry a deterministic bot challenge or invalid URL. Use caching where pages can tolerate staleness and factor cache hits into billing rules. For larger workloads, check request rates, concurrency, async job support, webhook behavior, and how you will reconcile outcomes with usage records. With ScreenshotNeo, inspect X-Page-Verdict and X-Billed so a failed or unbillable outcome is distinguishable from a clean billed capture.

11. Frequently asked questions

Is Browserless priced per screenshot?

No. The cited plans meter browser units based on connection time, in 30-second intervals, with proxy bandwidth and successful CAPTCHA solving also potentially using units.

Do failed screenshots count?

It depends on the provider and failure type. ScreenshotOne’s cited rules exclude unsuccessful renders and cache hits; Urlbox says failed requests are not charged, with different rules for REST API requests and cached Render Links. ScreenshotNeo bills only clean shots.

Which service is cheapest?

There is no universal cheapest choice from list prices alone. ScreenshotNeo starts at $5 for 3,000 shots; actual fit depends on your workload, successful capture rate, feature use, and billing rules. Browserless units cannot be converted to a fixed screenshot price without runtime data.

Can I compare annual prices with monthly prices directly?

Normalize billing periods, free allowances, taxes, overages, and included usage first. The figures here are the dated terms from the cited research snapshot.

Where can I find another option’s paid pricing?

ScreenshotAPI surfaced with a description of 100 free screenshots per account, but the research did not verify a paid tier schedule suitable for this comparison.

Sources and scope

Provider price and product claims above use the dated research snapshot: ScreenshotOne pricing, Urlbox pricing, Browserless pricing, Browserless unit consumption, Browserless screenshot API, and Browserless REST API overview. No independent same-workload test, market benchmark, self-hosting cost model, or performance ranking was established. Verify provider-published terms before purchase.