← All comparisons

ScrapeUnblocker vs. Browserless: Requests, Browser Units and Features Compared (2026)

ScrapeUnblocker and Browserless both put a real browser between you and the site you want to read, but they are different kinds of product. ScrapeUnblocker is a web scraping API: you send a URL, and it returns the rendered page, with proxies, browser rendering and CAPTCHAs handled for you, at one credit per request. Browserless is a hosted headless-browser platform: you connect Puppeteer or Playwright to its browsers over WebSocket, or drive them with its BrowserQL language and BAP SDKs, and it also offers REST APIs for single tasks such as fetching a page’s HTML or taking a screenshot. Browserless bills in units of browser time, plus proxy traffic and CAPTCHA solves, rather than per request.

This article compares the parts that overlap: getting a page’s content through an API call, and what each service charges for it. Because the billing units differ, we explain the difference instead of forcing both onto one price-per-page scale.

A note before we start: we make ScrapeUnblocker, so we are not a neutral party. To keep this comparison fair and checkable, every Browserless figure below comes from Browserless’s own public pricing page, the Markdown version of that page (with monthly and annual prices), and its documentation, as we viewed them on 24 September 2026. Every ScrapeUnblocker figure comes from our pricing page and documentation. Where we do not know something, we say so. Prices and features change, so please check both sites before you decide.

At a glance

ScrapeUnblockerBrowserless
What it isWeb scraping API: send a URL, get the page backHosted headless browsers you drive with Puppeteer, Playwright, BrowserQL or BAP, plus REST APIs for single tasks
Billing unit1 request = 1 creditUnits: up to 30 seconds of browser time per browser connection, plus proxy traffic and CAPTCHA solves
Proxies and CAPTCHAsNo separate chargeBuilt-in residential (6 units per MB) and datacenter (2 units per MB) proxies; 10 units per successful CAPTCHA solve
Entry pricePay as you go at €1.00 per 1,000 requests; monthly plans from €29Prototyping at $35 per month, or $25 per month billed annually
Largest self-serve plan€1,000 per month (Ultimate)Scale at $500 per month, or $350 per month billed annually
Free usage500 requests on signup, no card neededFree plan: 1,000 units per month, no card required
Throughput limit2 to 10 requests per second (Pay as you go to Pro); up to 400 (Business to Ultimate)2 to 80 concurrent browsers on monthly billing, 2 to 100 on annual billing
CurrencyEURUSD

How Browserless pricing works

Browserless’s pricing page lists a Free plan, three paid plans and a custom Enterprise option. Paid plans can be billed monthly or annually; according to the page, only price and concurrency differ between the two.

PlanMonthly billingAnnual billing (per month)Units per monthMax concurrent browsers (monthly / annual)Max session timeOverage per unit
Free$0$01,0002 / 22 min-
Prototyping$35$2520,0005 / 1015 min$0.0020
Starter$200$140180,00030 / 4030 min$0.0017
Scale$500$350500,00080 / 10060 min$0.0015
EnterpriseCustomCustomCustomCustomCustomCustom

On paid plans, usage beyond the allowance is charged per unit at the overage rate; on the Free plan, requests are rejected once the allowance is used up. Browserless’s homepage gives its price currency as USD, and we did not find a statement on whether the listed prices include tax.

The unit is the detail that matters most. The pricing page defines it as “a block of browser time of up to 30 seconds per browser connection”. Longer sessions use another unit for every 30 seconds, and session reconnects count as new browser connections. Built-in proxies and CAPTCHA solving draw from the same balance:

UsageCost in units
Browser time1 unit per 30 seconds, partial increments rounded up
Residential proxy traffic6 units per MB
Datacenter proxy traffic2 units per MB
Successful CAPTCHA solve10 units
Traffic through your own external proxyNo proxy units

Browserless’s unit consumption documentation adds that REST endpoints, BaaS connections and BrowserQL “all meter the same way”, so a REST call that finishes in under 30 seconds costs 1 unit. Its stealth documentation also says “Stealth sessions cost more units”, but we did not find how many more on the pricing or unit consumption pages.

Per 1,000 units, the listed prices come to (our arithmetic):

PlanMonthly billingAnnual billingOverage
Prototyping$1.75$1.25$2.00
Starterabout $1.11about $0.78$1.70
Scale$1.00$0.70$1.50

How ScrapeUnblocker pricing works

ScrapeUnblocker has a pay-as-you-go option and monthly plans. Our pricing page states that one request always equals one credit.

PlanPriceRequests includedEffective price per 1,000Additional usage per 1,000Rate limit
Pay as you go€1.00 per 1,000 requests-€1.00-2 requests/second
Starter€29 per month34,000about €0.85€0.955 requests/second
Pro€99 per month132,000about €0.75€0.8510 requests/second
Business€299 per month440,000about €0.68€0.75Up to 400 requests/second
Scale€599 per month966,000about €0.62€0.68Up to 400 requests/second
Ultimate€1,000 per month1,818,000about €0.55€0.60Up to 400 requests/second

There is also a custom Enterprise option. Pay as you go has no monthly commitment. Our plan cards list JavaScript rendering, CAPTCHA bypass and a real browser, and none of these is charged separately: a rendered page costs the same one credit as any other request.

Requests and units: why the prices do not line up

A ScrapeUnblocker credit is attached to a request. A request can run for up to 60 seconds (90 seconds with browser steps), and its price does not change with how long the page takes to load, how much data it transfers or whether a CAPTCHA appears.

A Browserless unit is attached to the resources a job uses, so the units one page load needs depend on the page and your options. The examples below use Browserless’s published rates. They are illustrations, not measurements: we have not measured load times or page sizes on Browserless.

Example page load on BrowserlessUnits
Under 30 seconds, no built-in proxy (or your own proxy)1
Under 30 seconds, datacenter proxy, 1 MB transferred1 + 2 = 3
Under 30 seconds, residential proxy, 1 MB transferred1 + 6 = 7
A 30-second session, residential proxy, 2 MB transferred (Browserless’s own example)1 + 12 = 13
45 seconds, residential proxy, 2 MB transferred, one CAPTCHA solved2 + 12 + 10 = 24

So if your pages load quickly without Browserless’s built-in proxies, one unit covers one page load, or several within the same 30 seconds of one session, because units meter session time rather than pages. With the built-in proxies, bandwidth can outweigh browser time: in Browserless’s own example, 2 MB of residential traffic costs 12 units against 1 unit of browser time.

For that reason we have not put a Browserless price per page next to ours. To estimate one, multiply the units a typical page of yours uses by your plan’s price per unit. The two services also price in different currencies, and we have not converted between them, because exchange rates move.

What you pay for when a request fails

Browserless. Its documentation says units meter browser time actually used, “so it depends on when the failure happens”. A request rejected before a browser starts, for example a 429 from a full queue or a validation error, consumes nothing. A request that fails mid-run still consumes the browser time used up to the failure, plus any proxy bandwidth already transferred. CAPTCHA solve attempts that do not clear the challenge are not charged. We did not find a separate rule for a target that answers 404 or 410. Its Smart Scrape API reports a failure as HTTP 200 with ok: false, so check that field.

ScrapeUnblocker. Per our errors documentation, a delivered page (200) is billed. When the target itself answers 404 or 410, or its origin returns its own 5xx error page, we return a 200 with an X-Origin-Status header carrying the target’s status, and that is billed too. A domain that does not exist (400 Hostname cannot be resolved) is billed, and so is a browser steps action that fails after the page has rendered (422 step_failed). A 403 (blocked by the target’s bot protection on every bypass path we have), timeouts, 523 Origin unreachable, 429 rate limit, 402 out of quota and all errors on our side are not billed.

OutcomeScrapeUnblockerBrowserless
Page deliveredBilled, 1 creditBrowser time, proxy traffic and CAPTCHA solves used
Target answers 404 or 410Billed (200 with X-Origin-Status)No separate rule found; browser time and traffic used are metered
Blocked by bot protection, or timed outNot billed (403, timeout)Browser time and proxy traffic used up to that point
CAPTCHA not clearedNo separate chargeSolve attempt not charged
Rejected before processingNot billed (429 rate limit)Nothing consumed (for example a 429 from a full queue)
Allowance used upNot billed (402)Paid plans: overage per unit; Free plan: requests rejected

One caveat on our side: whether a ScrapeUnblocker response is billed depends on how our service classifies it, for example whether a challenge page is recognized as a block. On Browserless, billing follows time and traffic used, not the outcome.

Features compared

FeatureScrapeUnblockerBrowserless
How you use itHTTP API: send a URL, get the pagePuppeteer or Playwright over WebSocket (BaaS), BrowserQL (GraphQL), BAP SDKs, or REST APIs
Page content in one HTTP call/getPageSource, browser rendering always on/content (rendered HTML), /unblock (bot-detection bypass), /smart-scrape (HTTP fetch first, then a browser if needed)
BrowsersReal browser, always onChromium by default, Chrome, a Stealth browser; Firefox, WebKit and Edge through Playwright
Geotargetingproxy_country, with a published list of supported countriesproxyCountry (ISO 3166 codes) with built-in proxies; city-level targeting requires the Scale plan
Page interactionsteps: click, type, select, press keys, scroll and wait, up to about 10 per request, plus list_elementsFull Puppeteer or Playwright control, BrowserQL, or up to 20 actions in a Smart Scrape request
Structured dataparsed_data=true returns JSON (Schema.org, __NEXT_DATA__ or AI-generated rules)/scrape returns JSON for the CSS selectors you specify
Screenshots and MarkdownNot offeredSmart Scrape formats and a /screenshot endpoint; PDFs through /pdf
Custom headers, asynchronous jobsNot offeredheaders in Smart Scrape; Crawl API (beta) and Agent Run API
Search/serpApi: Google results as JSON (organic results, ads and Google’s AI overview)Search API (beta): web, news and image search, optionally scraping each result
Site-specific dataPlugin endpoints that return JSON, for example Amazon, eBay, Walmart, Target, Etsy, Indeed, TikTok, Booking.com, Airbnb and SkyscannerAgent Skill Catalog of site-specific skills, callable through its MCP server, returning structured JSON
Maximum duration60 seconds per request (90 with steps)2 minutes (Free) to 60 minutes (Scale) per session
Official client librariesPython, Node.js, Ruby and PHPBAP SDKs for TypeScript and Python; standard Puppeteer and Playwright libraries
AI toolingMCP server (Claude, ChatGPT and other MCP clients), Claude Code pluginMCP server, Claude Code plugin, guides for agent frameworks such as Browser Use and Stagehand
Other integrationsScrapy middleware, n8n node, Apify actorsn8n, Make and Zapier; Scrapy with /content or BrowserQL

A note on limits: Browserless limits concurrent browsers, while ScrapeUnblocker states requests per second. These cannot be compared directly, because the throughput a concurrency limit gives depends on how long each job takes. If throughput matters, measure it on your own targets.

When Browserless may be the better fit

  • You already have Puppeteer or Playwright scripts and want to run them on hosted browsers by changing the connection URL.
  • Your work is browser automation rather than page fetching: long sessions (up to 60 minutes on Scale), persisted sessions, authenticated profiles, or hybrid automation where a person takes over a live session.
  • You need screenshots, Markdown, custom request headers or asynchronous crawls.
  • Your pages load quickly and you do not need its built-in proxies, so one unit can cover a page load or more.
  • You want a free allowance that renews: 1,000 units every month, against our 500 requests once.
  • You want to self-host (Browserless offers a Docker image under the SSPL-1.0 license and a licensed Enterprise image), or need compliance items from its pricing page, such as SOC 2 Type II.

When ScrapeUnblocker may be the better fit

  • You want a URL-in, page-out API and would rather not write or maintain browser automation code.
  • You want a fixed price per request, whatever the load time, page size or CAPTCHA.
  • You want pay as you go with no monthly commitment. Browserless’s pricing page lists a Free plan and monthly or annual subscriptions, and we did not find a pay-as-you-go option there.
  • You want Google results as JSON, structured JSON from parsed_data, or plugin endpoints for common sites under one API key.
  • You work in Ruby or PHP and want an official client library, or you prefer to be billed in euros.

What this comparison does not tell you

  • Success rates. We have not run ScrapeUnblocker and Browserless against the same set of sites, so we make no claim about which one gets through more often on any particular site. We have published a benchmark of our own API, but it measures ScrapeUnblocker only.
  • Speed. We have not measured Browserless’s response times. On Browserless, speed also affects the bill.
  • Two unit rules we could not pin down. Browserless’s documentation says stealth sessions cost more units, but we did not find the amount; and we did not find whether a Smart Scrape call answered by its plain HTTP fetch, without a browser, consumes units.
  • Tax and custom terms. We did not find whether Browserless’s prices include tax, and we do not know what either company offers under an Enterprise contract.
  • Anything that changed after 24 September 2026. Both pricing pages can change at any time.

How to decide in an afternoon

  1. Pick 50 to 100 URLs that represent your real workload.
  2. Run them through Browserless’s Free plan with the endpoint and proxy settings you would use in production, such as /content, /unblock or /smart-scrape. Its request logs show the units each request used. At 13 units per page, as in Browserless’s residential-proxy example, 1,000 units cover about 76 page loads.
  3. Run the same URLs through ScrapeUnblocker’s 500 free requests.
  4. For each service, count the pages you actually received (check the content, not only the status code), then work out the cost per good page: units used times price per unit on Browserless, requests times price per request on ScrapeUnblocker.

The service with the lower cost per good page on your own URLs is the cheaper one for you. You can start with our 500 free requests on the pricing page.

Sources

Browserless is a trademark of its respective owner. ScrapeUnblocker is not affiliated with, endorsed by, or sponsored by Browserless. This article is published by ScrapeUnblocker and reflects information that was publicly available on 24 September 2026. If you believe anything here is inaccurate or out of date, please contact us and we will review and correct it.

Try ScrapeUnblocker free

95%+ success rate · from 0.55€ per 1,000 calls · 500 free requests on signup.