Which unlocker API fits: Bright Data, Oxylabs, Zyte or UpRock?
For pages that won't load from a plain datacenter request, Bright Data's Web Unlocker costs $1.00 to $1.50 per 1,000, Oxylabs' Web API $0.75 to $1.50 for a generic page, and Zyte API anything from $0.06 to $16.08, set by the tier it gives the site and whether it needs a browser. All three bill only successful responses. UpRock is $0.50 per 1,000 pages, loaded on a real device in the country you choose, and fits best as the second network for the pages your unlocker gives up on.
Updated · Read as markdown
What each one is built for
All three sell the same promise: send a URL, get the page, and let them deal with proxies, rendering and retries. They differ in how they price it and what sits around it.
- Bright Data Web Unlocker. One endpoint,
api.brightdata.com/request, that picks the proxy network, sets headers and fingerprints to match real-user browser traffic and retries with other configurations until a request succeeds. It sits in Bright Data's wider range: SERP API, Browser API, ready-made scrapers and datasets, and residential IPs in 195 countries. - Oxylabs Web API. Launched on 7 October 2026, its
/scrapeendpoint handles headless rendering, proxy rotation and localization, and returns markdown, HTML, JSON or screenshots, with AI parsing for $3 per 1,000 pages more. Oxylabs also sells Web Unblocker, a proxy-style product billed by traffic at $7.20 down to $3 per GB. - Zyte API. One API that chooses datacenter or residential IPs, and a browser or not, per site, and prices each site in one of five tiers. Around it: browser actions, screenshots, automatic extraction, Scrapy Cloud for running spiders, and spending limits per key.
- UpRock. One page per call, loaded on a device in one of 63 countries (or a region), returned as markdown over MCP or the CLI, for one credit.
What 1,000 hard pages cost on each
Every number comes from the vendor's own pricing page or docs, checked 25 Oct 2026. "Hard" here means a page that won't load from a plain datacenter request, which is what the unlockers are for.
| Bright Data Web Unlocker | Oxylabs Web API | Zyte API | UpRock | |
|---|---|---|---|---|
| Per 1,000 pages, smallest plan | $1.50 pay as you go | $1.00 without JavaScript, $1.50 with (Starter, $30 a month) | $0.13 to $1.27 for an HTTP response, $1.01 to $16.08 with a browser, pay as you go | $0.50, prepaid |
| Per 1,000 pages, larger plans | $1.30, $1.10 and $1.00 on the $499, $999 and $1,999 plans | $0.90 / $1.40 (Basic, $100), $0.80 / $1.30 (Flexible, $500), $0.75 / $1.22 (Enterprise, from $2,500) | $0.06 to $0.61 and $0.48 to $7.68 at the $500 monthly commitment | $0.40 with UPT |
| How the price is set | One rate for every site; the premium-domain tier was retired for new customers on 20 May 2026 | One rate for any generic site, set by plan and JavaScript | Five tiers per site and request type, assigned by Zyte and reviewed quarterly | One credit per page |
| What's billed | Successful requests only, unless you turn on custom headers and cookies, which bills every request | Faulted scrapes aren't charged | Successful responses only; a site's own 404 counts as a success | Not documented yet |
| What a request runs on | IPs from its proxy networks, with headers and fingerprints it manages | Rendering and proxy rotation in Oxylabs' cloud | A datacenter or residential IP and, when needed, a browser, chosen per site | A browser on a real device whose owner opted in |
| Countries | 195 for residential IPs, down to city, ZIP and ASN | 195; a country code on the Web API | 249 country codes; 20 standard, and the rest cost more when you set them | 63, or a region |
| Choosing residential IPs yourself | Residential proxies are for verified companies; Web Unlocker needs no verification | Every customer answers a KYC questionnaire | Requires business verification and costs more | No IP pool to choose from: every page loads on an opted-in device |
| MCP server | Official, hosted or local | Local or self-hosted for the Web API | Remote, with sign-in | Remote (streamable HTTP) |
| To try it | 5,000 requests a month | $5 welcome credit | $5 credit for the first month | Prepaid credits |
Two things to read into it. Bright Data and Oxylabs give you one number for any site, so a hard page costs the same as an easy one. Zyte makes easy sites very cheap and hard ones expensive, and its pricing page has a lookup that shows a site's tier before you commit. Zyte doesn't publish the extra cost of an extended country or an explicit residential IP on the pages we read; its docs say both have their own base cost plus network charges.
How each one tells you it gave up
Each unlocker retries on its own before it reports a failure, so by the time you see one, another try through the same system rarely helps. This is where a second network earns its place. The full routing, with tested code, is on the Bright Data and Oxylabs pages.
| What a failure looks like | Billed? | Worth a second network | Respect it | |
|---|---|---|---|---|
| Bright Data Web Unlocker | HTTP 200 with an x-brd-error-code header, or 429 sr_rate_limit | No | http_status, timeouts, document_load_failed, sr_rate_limit | ub_bad_endpoint_robots (the site's robots.txt), policy blocks, broken certificates |
| Oxylabs Web API | HTTP 500 with state: faulted after its retries, or 408, 429, 503 | No, for faulted scrapes | 408, 429, 500, 503 | 400 (can mean a restricted target), 403 (your plan isn't entitled) |
| Zyte API | HTTP 520 (a temporary error, which Zyte says is usually a ban it couldn't avoid in time), 521 (permanent) or 500 (timed out) | No | 520 after your client's retries, 521, 500 | 451 (a domain Zyte doesn't allow), 421 (the domain is unreachable) |
| UpRock | crawl_fetch returns an error; the CLI exits 1 with the error on stderr | Not documented yet |
Zyte also sends 429 and 503 when it's rate-limiting you. Those are free and Zyte asks you to retry them on Zyte, so they aren't a reason to switch networks.
An IP address or a whole computer
Underneath, the three unlockers work alike. Your request leaves from an IP address in their proxy networks (datacenter, ISP, mobile or residential), and when a page needs it, a browser they run renders it, with headers, cookies and fingerprints managed to look like ordinary traffic. The residential IPs are real people's connections shared with consent: Bright Data's come from users who opt in through apps that carry its SDK, and Zyte describes its residential IPs as end-user devices with explicit consent for bandwidth sharing.
UpRock does it the other way round. The page loads in a browser on the device itself, a desktop or phone whose owner opted in, in the country you pick. A proxy gives you an IP address. A Rocket gives you a whole computer.
That isn't a way around anyone's rules. UpRock fetches public pages only and never logs in. It's a different path to the same public page, through different devices and different software, which is what you want from a second network when the first one gives up, and it costs the same whatever the page needs.
Which one fits
| If | Use | Why |
|---|---|---|
| Your pages load fine from a datacenter and you run your own scraper | A plain proxy, or a crawler's cheapest tier | You don't need managed rendering, retries or residential IPs, so an unlocker's per-page price buys you little |
| You fetch protected sites at volume and want rendering, retries and success-only billing in one call | An unlocker | That's the job they're built for. Compare Bright Data's and Oxylabs' flat rates with the tier Zyte's lookup gives your sites |
| You need city, ZIP or ASN targeting, or an SLA | Bright Data, or Zyte's Enterprise plan | Bright Data targets city, ZIP, carrier and ASN on residential IPs; Zyte Enterprise includes SLAs with a 1-hour weekday response |
| Your unlocker reports a failure after its own retries | A second network, such as UpRock | Retrying the same provider sends the page through the same system again; a device network is a different path, at one credit |
| You need a country an unlocker treats as extra | UpRock | Zyte charges more for any country outside its 20 standard ones; UpRock covers 63 countries, or a region, at one price |
| You need structured data, search results or scripted steps | An unlocker or its scraper APIs | UpRock returns one page per call |
Checked 25 Oct 2026: every price and policy above comes from the vendors' own pricing pages and docs on that date, linked in the table and listed under References. We didn't run requests through Bright Data, Oxylabs or Zyte for this page, so it compares what they publish, not measured success rates.
FAQ
What is a web unlocker API?
A scraping API that takes a URL and handles proxy choice, rendering and retries on the provider's side, then returns the page. You pay per successful request instead of per gigabyte of proxy traffic. Bright Data's Web Unlocker, Oxylabs' Web API and Zyte API all work this way.
Which one is cheapest for hard pages?
It depends on the site. Bright Data and Oxylabs charge one rate for any generic site, $1.00 to $1.50 and $0.75 to $1.50 per 1,000. Zyte charges by the tier it gives each site, so an easy site can cost $0.06 per 1,000 and a hard one that needs a browser $16.08 pay as you go. Zyte's pricing page has a lookup that shows a site's tier before you start.
Do they charge for failed requests?
All three say they charge only for successful responses. The fine print differs. Bright Data bills every request once you turn on custom headers and cookies, Zyte counts a site's own 404 as a successful response, and Oxylabs doesn't charge for a scrape that faulted after its own retries.
Is UpRock an unlocker?
Not in the same sense. It doesn't send your request through a proxy to a browser it runs in a datacenter; it loads the page in a browser on a real device whose owner opted in, in the country you choose, for one credit. It fetches public pages only and never logs in, so it works best as a second network next to an unlocker, not a replacement for one.
Why is Oxylabs' price here higher than its $0.50 headline?
The "from $0.50/1K results" line on its pricing page matches the Amazon rows. For any other site ("custom domain scraping") it's $1.00 per 1,000 without JavaScript and $1.50 with it on Starter, down to $0.75 and $1.22 on Enterprise.
Other use cases to explore
- Route each Web Unlocker error: which Bright Data error codes to retry, which to send elsewhere and which to respect, with tested code.
- See what a generic page costs on Oxylabs: why the $0.50 headline is the Amazon row, plan by plan.
- Price a residential surcharge: a crawler where the proxy pool sets the price, from 1 to 30 credits a page.
- See what automatic site tiers do to a bill: a crawler that prices each site at 1 to 20 times its base rate, set for you.
References
- Bright Data, Web Unlocker pricing, checked 25 Oct 2026
- Bright Data docs, Web Unlocker introduction (how it works, billing), checked 25 Oct 2026
- Bright Data docs, Web Unlocker configuration (custom headers billing, premium domains), checked 25 Oct 2026
- Bright Data, Residential proxies (countries, targeting, how IPs are sourced), checked 25 Oct 2026
- Bright Data docs, Residential network access (verified companies only), checked 25 Oct 2026
- Bright Data MCP server on GitHub, checked 25 Oct 2026
- Oxylabs, Web API scrape pricing, checked 25 Oct 2026
- Oxylabs, Web Unblocker pricing, checked 25 Oct 2026
- Oxylabs docs, Web API /scrape, checked 25 Oct 2026
- Oxylabs docs, Errors and status codes, checked 25 Oct 2026
- Oxylabs, Residential proxy pool (195 countries), checked 25 Oct 2026
- Oxylabs, KYC and safety, checked 25 Oct 2026
- Oxylabs docs, MCP, checked 25 Oct 2026
- Zyte, Pricing (tiers per 1,000 responses), checked 25 Oct 2026
- Zyte docs, Zyte API pricing (plans, request costs, successful responses), checked 25 Oct 2026
- Zyte docs, Zyte API error handling, checked 25 Oct 2026
- Zyte docs, Zyte API features (geolocation, IP type), checked 25 Oct 2026
- Zyte docs, Zyte API reference (geolocation codes), checked 25 Oct 2026
- Zyte docs, Zyte MCP, checked 25 Oct 2026
- UpRock, everything in one file (API, CLI, MCP, pricing), checked 25 Oct 2026
Get started
Add UpRock in one paste.
Paste this into Claude Code, Codex, Cursor or any agent with a terminal. It reads our docs, sets up the MCP server or CLI, and tells you the cost before it spends anything.
Set up UpRock for me: read https://uprock.ai/agents.md, connect the UpRock MCP server, and run one test crawl. Tell me what it costs before you spend anything.