← All comparisons

ScrapeUnblocker vs. Zenrows: Pricing, Billing and Features Compared (2026)

ScrapeUnblocker and Fetch, Zenrows’ scraping API (formerly the Universal Scraper API), do the same core job: you send a URL to an API, and it returns the page, with proxies, JavaScript rendering and anti-bot handling taken care of. Where they differ most is in how they charge. Zenrows sells monthly credit allowances, and a Fetch request costs 1, 5, 10 or 25 credits depending on whether it uses JavaScript rendering, Premium Proxies or both. ScrapeUnblocker charges one credit per request, with browser rendering always on.

A note before we start: we make ScrapeUnblocker, so we are not a neutral party. To keep this comparison fair and checkable, every Zenrows figure below comes from Zenrows’ own public pricing page, pricing documentation and 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.

Zenrows also sells Extract (structured JSON), Batch (large URL lists as one job) and Browser Sessions (a hosted browser for Puppeteer or Playwright) from the same credit balance. We compare ScrapeUnblocker mainly with Fetch, the closest match to our API.

At a glance

ScrapeUnblockerZenrows
Pricing model1 request = 1 credit1, 5, 10 or 25 credits per successful Fetch request
JavaScript renderingAlways on, included in the requestOff by default; with js_render=true a request costs 5 credits
Geotargetingproxy_country, included in the requestproxy_country requires Premium Proxies (10 credits, or 25 with JavaScript rendering)
Entry pricePay as you go at €1.00 per 1,000 requests; monthly plans from €29Monthly plans from $19; no standalone pay-as-you-go option
Largest self-serve plan€1,000 per month (Ultimate)$999 per month (Scale S3)
Free usage500 requests on signup, no card needed5,000 credits every month, no card required
Throughput limit2 to 10 requests per second on Pay as you go, Starter and Pro; up to 400 on Business, Scale and Ultimate5 to 200 concurrent requests by tier; custom (400 to 1,000+) on Enterprise
CurrencyEURUSD

How Zenrows pricing works

Zenrows lists a Free plan, four paid tiers with three volume steps (“rungs”) each, and a custom Enterprise plan:

TierMonthly price by rungCredits per month by rungConcurrent requests
Free$05,0005
Build (B1, B2, B3)$19, $29, $3945,000, 80,000, 120,00020
Launch (L1, L2, L3)$69, $99, $129250,000, 500,000, 700,00050
Growth (G1, G2, G3)$199, $279, $3991,200,000, 2,000,000, 3,000,000100
Scale (S1, S2, S3)$549, $749, $9995,000,000, 8,000,000, 12,500,000200
EnterpriseCustomCustomCustom (400 to 1,000+)

Billed yearly, the per-month price is lower (for example $82 instead of $99 for Launch L2); Zenrows describes this as two months free. Credit costs for Fetch are published as:

Request typeCredits per successful request
Standard request1
JavaScript rendering5
Premium Proxies10
JavaScript rendering + Premium Proxies (“protected”)25

The documentation says these weights are the same on every plan. Other rules:

  • JavaScript rendering (js_render) and Premium Proxies (premium_proxy, residential IPs) are off by default, so a plain request costs 1 credit.
  • proxy_country requires Premium Proxies. The country itself adds nothing, but the request pays the Premium Proxies rate.
  • With Adaptive Stealth Mode (mode=auto), Zenrows starts with the cheapest configuration it expects to work, escalates when needed, and bills only the configuration that succeeds.
  • Extract adds no cost beyond its Fetch request (it is free during its Beta), and Batch bills at the Fetch rate. Browser Sessions are metered at 25,000 credits per GB plus 5 credits per minute.
  • On paid plans, unused credits roll over for one extra billing period, and up to four top-up packs can be bought per period.
  • Asked about pay-as-you-go, the pricing documentation answers “Not as a standalone option today”.
  • Enterprise lists an SLA, SOC 2, ISO 27001, a DPA and a dedicated account manager.

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.

What each plan buys, in requests

On Zenrows, the number of requests a plan covers depends on the configuration your target sites need. The table divides each rung’s monthly credits by the published credit costs. It is plain arithmetic on Zenrows’ numbers and assumes every request in the month uses the same configuration.

Zenrows rungStandard (1)JavaScript rendering (5)Premium Proxies (10)Both (25)
Build B1, $1945,0009,0004,5001,800
Build B2, $2980,00016,0008,0003,200
Build B3, $39120,00024,00012,0004,800
Launch L1, $69250,00050,00025,00010,000
Launch L2, $99500,000100,00050,00020,000
Launch L3, $129700,000140,00070,00028,000
Growth G1, $1991,200,000240,000120,00048,000
Growth G2, $2792,000,000400,000200,00080,000
Growth G3, $3993,000,000600,000300,000120,000
Scale S1, $5495,000,0001,000,000500,000200,000
Scale S2, $7498,000,0001,600,000800,000320,000
Scale S3, $99912,500,0002,500,0001,250,000500,000

On ScrapeUnblocker, the number is fixed per plan whatever the site, from 34,000 requests on Starter to 1,818,000 on Ultimate.

Three price points side by side

The two services price in different currencies: Zenrows in US dollars and ScrapeUnblocker in euros. We have not converted between them, because exchange rates move. Zenrows figures use monthly billing. Prices are per 1,000 requests:

AroundScrapeUnblockerZenrows, standardJavaScript renderingPremium ProxiesBoth
29 a monthStarter (€29): about €0.85Build B2 ($29): about $0.36about $1.81about $3.63about $9.06
99 a monthPro (€99): about €0.75Launch L2 ($99): about $0.20about $0.99about $1.98about $4.95
1,000 a monthUltimate (€1,000): about €0.55Scale S3 ($999): about $0.08about $0.40about $0.80about $2.00

How to read these numbers

Here is the honest reading. If your target sites work with Zenrows’ standard requests, its plans cover roughly 2 to 7 times as many requests for a similar nominal amount at the three price points above. With JavaScript rendering it depends on plan size: at around 29 and 99 a month, the Zenrows rung covers fewer rendered requests than the ScrapeUnblocker plan covers requests (16,000 against 34,000, and 100,000 against 132,000), while at around 1,000 it covers more (2,500,000 against 1,818,000). With Premium Proxies, alone or with rendering, each request draws 10 or 25 credits: across the published rungs, about $0.80 to $4.22 per 1,000 requests with Premium Proxies and about $2.00 to $10.56 with both, against €0.55 to €1.00 per 1,000 on ScrapeUnblocker.

What we cannot tell you is which configuration your particular sites need on Zenrows. That decides most of the price difference, and only a test on your own URLs will show it (see the end of this article).

What you pay for when a request fails

Both services say they do not charge for failed requests, but the details differ.

Zenrows. Its pricing page states that failed requests are never charged and that Not Found (404) and Gone (410) responses count as successful results. Its error code documentation says a request to a domain that cannot be resolved (RESP007 Site Not Found) is billed. Requests that use allowed_status_codes to get the content of a target’s error page incur charges, and a screenshot request is charged when the API returns a 200, whether or not the image shows what you expected.

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.

OutcomeScrapeUnblockerZenrows
Page deliveredBilled, 1 creditBilled, 1 to 25 credits
Target answers 404 or 410Billed (200 with X-Origin-Status)Billed (counted as successful)
Target domain does not existBilled (400)Billed (RESP007)
Target returns its own 5xx error pageBilled (200 with X-Origin-Status)Content returned if you list the code in allowed_status_codes, and billed
Failed requestNot billedNot billed

One caveat applies to both. Each service decides for itself whether a response counts as a success. If a challenge page comes back looking like a normal page, whether it is caught depends on that service’s own checks. We have not tested how Zenrows handles this.

Features compared

FeatureScrapeUnblockerZenrows
JavaScript renderingAlways on, in a real browserHeadless browser, js_render=true
Geotargetingproxy_country, with a published list of supported countriesproxy_country with Premium Proxies; country list in its FAQ
Structured dataparsed_data=true returns JSON (Schema.org, __NEXT_DATA__ or AI-generated rules)css_extractor, outputs filters, and Extract (Beta) on domains Zenrows has prepared
Output formatsHTML, or JSON with parsed_data=trueHTML, Markdown, plain text or PDF
Page interactionsteps: click, type, select, press keys, scroll and wait, up to about 10 steps, plus list_elementsJavaScript Instructions: click, fill, check, select, scroll, wait, custom JavaScript; 40-second limit
ScreenshotsNot offeredAbove the fold, full page or one element
Custom request headersNot offeredcustom_headers=true
Sessionsget_cookies=true returns the cookies and the proxy address usedsession_id keeps the same IP for up to 10 minutes; target cookies in a Zr-Cookies header
Large URL listsAsynchronous requests not offeredBatch: up to 100,000 URLs per job, with a completion webhook
Google search/serpApi returns organic results, ads and Google’s AI overview as JSONNo dedicated search endpoint found in its documentation
Site-specific dataPlugin endpoints returning JSON, for example Amazon, eBay, Walmart, Target, Etsy, Indeed, TikTok, Booking.com, Airbnb and SkyscannerExtract on prepared domains; new domains can be requested
Maximum request time60 seconds (90 with steps)3 minutes, per its wait_for documentation
Client librariesPython, Node.js, Ruby and PHPPython, Node.js and Go, plus a CLI
AI toolingMCP server (Claude, ChatGPT and other MCP clients), Claude Code pluginMCP server, CLI, agent skills and plugins
Other integrationsScrapy middleware, n8n node, Apify actorsZapier, Make, n8n, Pipedream, Clay, Scrapy and others

A note on rate limits. Zenrows limits how many requests can be in flight at once; ScrapeUnblocker states a rate in requests per second. These units cannot be compared directly, because the throughput a concurrency limit gives depends on how long each request takes. If throughput matters, measure it on your own targets.

On free usage: Zenrows’ 5,000 monthly credits are 5,000 standard requests, 1,000 with JavaScript rendering, 500 with Premium Proxies or 200 with both. ScrapeUnblocker gives 500 requests on signup.

When Zenrows may be the better fit

  • Many of your targets work with standard requests (1 credit), or you render JavaScript at high volume on the larger rungs.
  • You want an ongoing free allowance of 5,000 credits a month.
  • You need Markdown, screenshots, custom headers, asynchronous batch jobs, or requests that can run longer than 90 seconds.
  • You want a hosted browser to drive with Puppeteer or Playwright (Browser Sessions).
  • You work in Go, or rely on its Zapier, Make, Pipedream or Clay integrations.
  • You need items on its Enterprise plan, such as an SLA, SOC 2, ISO 27001 and a DPA.
  • You want credit rollover or an annual billing discount.
  • You already have a working Zenrows integration that meets your needs.

When ScrapeUnblocker may be the better fit

  • Your targets need Zenrows’ Premium Proxies, alone or with JavaScript rendering, and you want the same price per request whatever the site.
  • You need country targeting on many requests: on ScrapeUnblocker it is part of the one-credit request.
  • You want to predict your bill from request volume alone, without tracking credit multipliers.
  • You want pay-as-you-go with no monthly commitment, which Zenrows’ documentation says it does not offer as a standalone option today.
  • You want Google search results as JSON from a dedicated endpoint (/serpApi).
  • You work in Ruby or PHP and want an official client library.
  • You prefer to be billed in euros.

What this comparison does not tell you

  • Success rates. We have not run Zenrows and ScrapeUnblocker 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.
  • Which Zenrows configuration your sites need. This drives most of the price difference.
  • Speed. We have not measured Zenrows’ response times.
  • Some billing edge cases. Zenrows’ documentation says a JavaScript Instructions sequence that passes 40 seconds returns the content visible at that point. We did not find how such a response is billed.
  • Annual billing, rollover and top-ups. Our tables use monthly prices and assume every credit is spent in the month; these options change the effective price.
  • Extract coverage. Extract is in Beta and works on prepared domains; we did not check which.
  • The rest of Zenrows’ platform. Browser Sessions, Batch and residential proxies have their own billing; we compared them only where they overlap.
  • Enterprise terms. We do not know what Zenrows offers beyond its public pricing.
  • 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 Zenrows’ Free plan with mode=auto. Its documentation says each response carries an X-Request-Cost header with that request’s cost. If every URL needs 25 credits, 5,000 credits cover 200 requests.
  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 divide the monthly price you would pay by the number of good pages you would get.

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

Zenrows is a trademark of its respective owner. ScrapeUnblocker is not affiliated with, endorsed by, or sponsored by Zenrows. 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.