Comparison ·

Browserbase Alternative for Screenshots (2026): When One API Call Beats a Cloud Browser

Browserbase runs headless browsers in the cloud for AI agents and automation: you create a session, connect Playwright or Puppeteer, and drive the page. That is the right tool when an agent has to log in, click and fill forms. But many teams use it for something simpler: open a URL, wait, take a screenshot, close. For that job you pay for browser sessions and you maintain capture code. This guide shows what a screenshot really costs on Browserbase, what the same capture looks like as one API call, and which alternative fits which workload.

Disclosure: SnapshotFlow publishes this blog and is one of the options compared. Prices are list prices from each vendor's site, checked on October 30, 2026. In our own cost table SnapshotFlow is not the cheapest, and we say so.

TL;DR

  • Keep Browserbase for multi-step agent work: logins, clicks, forms, long sessions, stealth and captcha solving.
  • Batch, don't open a session per screenshot. Browserbase bills per minute with a one-minute minimum per session, so a short capture in its own session is billed as a full minute.
  • Lowest list price: the Browserless free tier for about 1,000 short captures a month; at volume, Browserbase with reused sessions or Browserless.
  • Browserless and Steel also have one-call screenshot endpoints. SnapshotFlow differs in what comes with the capture: cookie-banner and ad blocking, free cache hits, PNG, JPEG, WebP or PDF, Markdown in the same call, and pixel diffs.

The one-minute minimum: why short captures cost more than they look

Browserbase's billing docs say browser time is billed per minute, rounded, with a one-minute minimum for each session. That is a fair model for agents that stay on a site for minutes. For screenshots it changes the math:

60 s

billed for one short screenshot in its own session

6,000

one-screenshot sessions in the 100 hours of the $20 Developer plan

$0.002

per extra one-minute session at the $0.12 per hour overage

The fix is to capture many pages in one session. If one capture takes 10 seconds and you keep the session open for a queue of URLs, each screenshot costs about $0.0003 of browser time at the Developer overage rate (that 10 seconds is an example, measure your own pages). The catch is that you now own a queue, a worker that keeps the session alive, retries and the code that decides when a page is ready.

Two more line items to watch: the Free plan includes 1 browser hour a month and 15-minute sessions, and proxy traffic on paid plans is billed per GB beyond the included 1 GB (Developer) or 5 GB (Startup).

The same screenshot, two ways

On Browserbase, following its Playwright and screenshot docs: create a session, connect Playwright over CDP, navigate, take a full-page screenshot, save, close.

// npm i playwright-core @browserbasehq/sdk import { chromium } from "playwright-core"; import Browserbase from "@browserbasehq/sdk"; import { writeFileSync } from "node:fs"; const bb = new Browserbase({ apiKey: process.env.BROWSERBASE_API_KEY }); const session = await bb.sessions.create({ timeout: 60, keepAlive: false }); const browser = await chromium.connectOverCDP(session.connectUrl); try { const page = browser.contexts()[0].pages()[0]; await page.goto("https://example.com/pricing"); const image = await page.screenshot({ fullPage: true, type: "jpeg", quality: 80, }); writeFileSync("pricing.jpeg", image); } finally { await browser.close(); }

That works. What it does not do is remove a cookie banner covering half the page, or skip a capture you already made five minutes ago; both need more code. The same capture, same format and quality, as one screenshot API call, with banner and ad blocking added:

curl --get "https://api.snapshotflow.com/screenshot" \ -H "X-Api-Key: $SNAPSHOTFLOW_API_KEY" \ --data-urlencode "url=https://example.com/pricing" \ --data-urlencode "full_page=true" \ --data-urlencode "format=jpeg" \ --data-urlencode "quality=80" \ --data-urlencode "block_cookie_banners=true" \ --data-urlencode "block_ads=true" \ -o pricing.jpeg

A failed synchronous capture is not charged, and a repeat request for the same URL and options within the cache window is served from cache for free (the default window is one hour; pass cache=false to force a fresh capture). That matters for link previews and dashboards, where the same pages are requested again and again.

Cost at 1,000, 10,000 and 50,000 screenshots a month

Cheapest published plan for each volume, with monthly billing unless the row says otherwise. Assumptions, so you can redo the math: on Browserbase each screenshot runs in its own session that ends within a minute, or, in the reused-session row, takes 10 seconds inside a long-lived session (an example figure, not a measurement); on Browserless each screenshot uses its own connection and finishes within 30 seconds (one unit); Steel is billed through its Browser Tools /screenshot endpoint. Proxies, captcha solving and your own servers are not included.

Monthly screenshots1,00010,00050,000
Browserbase, one session each$20 (Developer)$28 (Developer + 67 h overage)$108 (Developer + 733 h overage)
Browserbase, reused sessions, 10 s per capture$20 (Developer)$20 (28 h of 100)about $24.67 (139 h)
Browserless, monthly billing$0 (Free, 1,000 units)$35 (Prototyping)about $95 (Prototyping + 30,000 units)*
Browserless, annual billing$0 (Free)$25 per month$85 per month
Steel Browser Tools$5$50$250
SnapshotFlow$15 (Basic)$69 (Growth)$249 (Scale)

* Browserless publishes its unit overage rate ($0.0020 on Prototyping) in the annual-billing table; we applied the same rate to monthly billing. Steel's Launch plan also includes $30 of one-time credits for the first 90 days, which covers 6,000 Browser Tools calls.

On list price, SnapshotFlow is not the cheapest way to make a screenshot at any of these volumes. The cheapest options either give you raw browser time to fill with your own code, or a screenshot endpoint with fewer controls. What the SnapshotFlow price covers is the capture behavior around the browser, listed in the next table. Whether that is worth it depends on what your team would otherwise build and maintain; Playwright alternative for screenshots breaks that down, and screenshot API pricing explained covers how per-capture plans compare.

What you get per capture

Browserbase captures inside your own session code. Browserless and Steel also have one-call screenshot endpoints, so the real differences are in the options. The Browserless and Steel columns reflect their screenshot endpoint docs; their full browser sessions can do more with your own code.

 BrowserbaseBrowserless /screenshotSteel /v1/screenshotSnapshotFlow
How you capturePlaywright, Puppeteer or CDP in a sessionOne POST requestOne POST requestOne GET request
Full pagefullPage: true in your codefullPagefullPagefull_page
OutputWhat your code savesPNG, JPEG, WebPHosted PNG URLPNG, JPEG, WebP, PDF
WaitingYour codegotoOptions, wait for selectordelaywait_until, wait_for_selector, delay
Cookie banners and adsYour codeNot on the screenshot page; resource filtering with rejectResourceTypesNot documentedblock_cookie_banners, block_ads, hide_selectors
Text with the imageYour code; Fetch API returns Markdown without running JavaScriptSeparate /content or /scrape call/v1/scrape with screenshot: trueextract_content=true
Cache for repeat requestsYour codeNot documentedNot documentedOn by default, cache hits free
Pixel diff between capturesYour codeNoNoGET /diff (Growth and Scale)
Async job with webhookYour codeNot covered hereNot covered hereasync=true + webhook_url; webhook delivery is retried
Multi-step flows (login, clicks, forms)Yes, any scriptIn sessionsIn sessionsNo; one click selector, scripts, cookies and headers

SnapshotFlow also has an MCP server with screenshot, extract_text and visual_diff tools for AI agents. For logged-in dashboards, see authenticated page screenshots with cookies and headers; for queued captures, async captures with webhooks.

Other Browserbase alternatives, if you need full browsers

If your workload really is browser sessions and not only screenshots, these are the closest swaps. All three also have screenshot endpoints.

Browserless

Hosted headless Chrome with REST endpoints such as /screenshot, /pdf, /content and /scrape, plus an open-source Docker image and a commercial license for self-hosting. Billing is in units, where one unit is up to 30 seconds of browser time per connection, so short captures are billed in 30-second blocks instead of full minutes. The free plan has 1,000 units a month; paid plans start at $35 a month, or $25 a month billed annually.

Steel

A browser API for AI agents. The Steel Browser project is open source under Apache 2.0, and its quick actions /scrape, /screenshot and /pdf are priced at $5 per 1,000 calls in the cloud. Sessions are billed by the minute, from $0.10 per browser hour on the pay-as-you-go Launch plan.

Cloudflare Browser Run

If you are on Cloudflare Workers, Browser Run has /screenshot, /pdf, /markdown and /snapshot endpoints billed by browser time: 10 hours a month on Workers Paid ($5 monthly minimum), then $0.09 per hour. We compared it for text extraction in Firecrawl alternatives.

When to keep Browserbase

Your workloadBest fit
Agent logs in, clicks through flows, fills formsBrowserbase (or Steel, Browserless)
Sites with bot detection and captchasBrowserbase paid plans
Thousands of screenshots, team happy to own capture codeBrowserbase with reused sessions, or Browserless
Up to about 1,000 short captures a month, lowest billBrowserless free tier
Screenshots as a product feature that need banner blocking, caching or diffs: previews, monitoring, reports, evidenceSnapshotFlow
AI agent needs to see a page, not operate itSnapshotFlow MCP tools

Plenty of teams use both: a cloud browser for the agent's interactive steps, and a screenshot API for the captures their product shows users or stores as evidence. See AI agent UI verification for that pattern.

Migrating a Browserbase capture

Browserbase / PlaywrightSnapshotFlow parameter
page.goto(url)url
page.screenshot({ fullPage: true })full_page=true
type: "jpeg", quality: 80format=jpeg, quality=80 (or webp, png, pdf)
page.setViewportSize()width, height, viewport_mobile
waitUntil, waitForSelector()wait_until, wait_for_selector, delay
context.addCookies(), extra headerscookies, headers
page.click(selector)click (one selector)
page.addStyleTag(), evaluate()styles, scripts
locator.screenshot()selector
Loop over many URLsPOST /batch (up to 10 URLs per call) or a queue with async jobs

FAQ

Is Browserbase good for screenshots?

It works well if you already write Playwright or Puppeteer code. You create a session, connect over CDP and capture the page. Browser time is billed per minute with a one-minute minimum per session, so batching several screenshots into one session keeps the cost down.

What is the cheapest Browserbase alternative for screenshots?

On list prices it depends on volume. About 1,000 short captures a month fit in the Browserless free tier. At 10,000, Browserless ($25 a month billed annually, $35 monthly) and Browserbase with one session per screenshot ($28) are close. Reusing Browserbase sessions for many captures is cheaper still. SnapshotFlow is not the cheapest on list price, but includes cookie-banner and ad blocking, free cache hits, Markdown in the same call and pixel diffs.

Does Browserbase have a screenshot API?

Not as a single REST call that we found in its docs. Its Fetch API returns raw content, Markdown or JSON without running JavaScript, and screenshots are taken inside a browser session with Playwright, Puppeteer or CDP. Steel, Browserless and Cloudflare Browser Run do offer screenshot endpoints.

Is there an open-source Browserbase alternative?

Steel Browser is open source under the Apache 2.0 license and includes scrape, screenshot and PDF endpoints. Browserless publishes an open-source Docker image alongside a commercial license.

Sources

Prices and limits checked on October 30, 2026. Vendors change them often, so confirm before you commit.

Try it: 300 free screenshots, no card

Keep your cloud browser for the steps that need a browser. Send the screenshots your product depends on as one HTTP request each, with banners and ads blocked and repeat requests served free from cache.