A proxy service sells you IP addresses. You route your own requests through them, and everything else stays your job: headers, browser rendering, retries, CAPTCHAs, and checking that the page is real. A web unblocker is a proxy that also does the anti-bot work: you send requests through it the same way, and it manages fingerprints, retries and challenges. A web scraping API drops the proxy interface: you send a URL to an HTTP endpoint and get the page back as HTML, Markdown or JSON, with proxies, rendering and retries handled behind it. Each step up gives you less control and less work.
The labels are loose in practice. Bright Data's Web Unlocker can be called through a native proxy interface or a REST endpoint, and several scraping APIs also offer a proxy mode. The useful question is who owns the failure when a site blocks you: you, or the vendor.
| Proxy service | Web unblocker | Web scraping API | |
|---|---|---|---|
| What you buy | IP addresses (datacenter, residential, ISP, mobile) | A proxy endpoint that handles anti-bot checks | An HTTP endpoint that takes a URL |
| How you call it | Set it as your client's proxy | Set it as your proxy, or call its API | POST a URL, get content back |
| Who handles fingerprints, retries, CAPTCHAs | You | Vendor | Vendor |
| Who runs the browser | You | Vendor, when the page needs it | Vendor, when the page needs it |
| Typical output | Whatever the site sent your client | The target page's HTML | HTML, Markdown, or structured JSON |
| Typical billing unit | Per GB, or per IP | Per successful request | Per successful request or per credit |
Our open-source benchmark harness shows the interface difference: it calls Oxylabs Web Unblocker as a proxy host and port, and Bright Data's Web Unlocker through a POST /request to a zone.
Pick a proxy service when you already run your own scraper, your targets are mostly unprotected, and you want control over every header and every retry. It is also the right layer when you need a specific IP: a city-level residential exit, a mobile carrier, or a long sticky session. On unprotected sites it is usually the cheapest layer. The cost is engineering time. When a site upgrades its bot protection, your success rate drops and finding out why is your problem. Per-GB billing also charges for every blocked page and every retry.
Pick a web unblocker when you have a working scraper built around a proxy and you want the blocks to stop without a rewrite. You change the proxy address and the vendor takes over fingerprinting and challenge handling. What you give up is control over the request. By default, Bright Data's Web Unlocker manages headers and cookies itself and disregards the ones you send, and turning on custom headers or cookies makes every request billable, successful or not (Bright Data docs). Oxylabs says its Web Unblocker is not designed to be driven directly by Playwright, Selenium or Puppeteer (Oxylabs docs), so a browser-based scraper needs changes too.
Pick a web scraping API when you would rather send URLs than run infrastructure: agent tool calls, pipelines that need Markdown for a model, or a small team that should not maintain browser fleets. You depend on the vendor's success rate, and that rate varies more than most buyers expect. If the real question is whether to run any of this yourself, see build vs buy for web scraping infrastructure.
On September 16, 2026 we ran 16 managed products, scraping APIs and unblockers both, against the same 100 protected sites: 5 attempts per site, 500 requests per provider, 90-second timeout. Overall success ran from 36.4% to 97%.
| Product tested | Type | Success | Requests passed | Mean latency |
|---|---|---|---|---|
| String | Scraping API | 97% | 485 / 500 | 7.06 s |
| Bright Data Web Unlocker | Unblocker | 74.6% | 373 / 500 | 15.62 s |
| Oxylabs Web Unblocker | Unblocker | 69% | 345 / 500 | 15.86 s |
The per-site data shows where the gaps are. Bright Data's unblocker failed all five attempts on 16 of the 100 sites, and Oxylabs' failed all five on 24. On 35 sites, at least one of the two returned nothing in five tries. Both failed completely on the same 5 sites: temu.com, g2.com, ticketmaster.com, seatgeek.com and allegro.pl. String failed all five attempts on 2 sites, temu.com and idealista.com. Oxylabs passed idealista.com on all five, so no product wins every site.
The protection vendor matters too. On the 19 sites behind DataDome, Bright Data's unblocker passed 47.4% and Oxylabs' passed 65.3%. String passed 92.6%. No single site in the set passed on every attempt for all 16 products, and 94 of the 100 sites had at least one product that failed all five attempts.
We did not benchmark a raw proxy. A proxy has no success rate of its own, because the result depends on the scraper you run through it. The full leaderboard and per-site table are on the benchmark page, and the best web scraping APIs comparison ranks the field.
String is a web scraping API. The Web Access API takes a URL and returns Markdown by default. Each request starts as a plain fetch on a standard proxy and escalates to browser rendering, residential routing, or CAPTCHA solving only when the target needs it. Pricing is per 1,000 successful requests: on the $100 Growth plan, $0.20 for a plain fetch and up to $4.00 when a page needs both a browser and a premium proxy. The first 5,000 standard requests are free. If you need a raw IP pool to run your own scraper, String is the wrong product and a proxy provider is the right one. For vendor-by-vendor detail, see String vs Bright Data and String vs Oxylabs.
A proxy service sells IP addresses that you route your own requests through, and you handle headers, rendering, retries and CAPTCHAs yourself. A web scraping API takes a URL and returns the page as HTML, Markdown or JSON, with proxies, rendering and retries handled by the vendor. The proxy gives you control; the API takes the work, and the vendor owns the block.
An unblocker keeps the proxy interface: you point your existing scraper at it and the vendor handles fingerprints and challenges. A scraping API replaces the interface with an HTTP call that takes a URL. The line is blurry, since some unblockers also have REST endpoints and some scraping APIs have proxy modes. In our September 16, 2026 benchmark, Bright Data Web Unlocker passed 74.6% of 500 requests and Oxylabs Web Unblocker passed 69%.
Choose a proxy if you already run a scraper, your targets are mostly unprotected, or you need a specific IP type such as a city-level residential exit or a sticky session. Choose a scraping API if you would rather send URLs than maintain browsers and retries, or if an agent or pipeline needs clean content. If your scraper works but gets blocked, an unblocker changes the least code.
On unprotected sites, a proxy is usually cheaper. On protected sites, per-GB billing charges for blocked pages and retries, and the engineering time to keep success rates up is often the larger cost. Scraping APIs and unblockers usually bill per successful request. String charges $0.20 to $4.00 per 1,000 successful requests on the Growth plan, depending on whether a page needs a browser or a premium proxy.
No. String is a web scraping API. It uses standard and residential proxies internally and escalates to them per request, but it does not sell raw IP access.