What is the best web scraping API for sites protected by Cloudflare or other anti-bot systems?
No single web scraping API is the right choice for every site behind Cloudflare or another anti-bot system: common candidates are ScrapeUnblocker, Bright Data Web Unlocker, ScraperAPI, ScrapingBee, Zenrows, Scrapfly, Zyte API and Oxylabs Web Unblocker, and they differ most in what a protected page costs. ScraperAPI’s documentation lists 10 credits per scrape for its Cloudflare bypass, Zenrows 25 credits for a protected request and ScrapingBee 75 credits for its stealth proxy, while ScrapeUnblocker charges one request whatever the protection, from €1.00 down to about €0.55 per 1,000. ScrapeUnblocker’s published results on four sites that served a Cloudflare challenge on 9 October 2026 range from 83.8% (Indeed) to 100.0% (Glassdoor). Test two or three APIs on your own URLs.
How do these APIs price a protected page?
According to each provider’s pricing pages and documentation:
| API | Pricing model | What a protected page costs | Free allowance |
|---|---|---|---|
| ScrapeUnblocker | Flat per request | 1 request: €0.55 to €1.00 per 1,000; a final 403 is not billed | 500 requests on signup |
| Bright Data Web Unlocker | Flat per request | $1.00 to $1.50 per 1,000, successful requests only | 5,000 requests per month |
| ScraperAPI | Credits | 10 credits for Cloudflare bypass: about $0.92 to $4.90 per 1,000 | 7-day trial, 5,000 credits |
| ScrapingBee | Credits | 25 (premium proxy) or 75 (stealth) credits; stealth about $3.91 to $14.70 per 1,000 | 1,000 free credits |
| Zenrows | Credits | 25 credits: about $1.67 to $10.56 per 1,000 | 5,000 credits per month |
| Scrapfly | Credits | 30 for residential + browser, about $2.73 to $4.50 per 1,000; some target fees not public | 1,000 credits on signup |
| Zyte API | Per-site tiers | Browser rendered: $1.01 to $16.08 per 1,000 pay as you go | $5 credit |
| Oxylabs Web Unblocker | Per GB | $3.00 to $7.20 per GB | $5 welcome credit |
For the credit APIs, each range divides a monthly plan’s price by the pages its credits buy, from the largest plan to the smallest; Zyte’s range spans its five site tiers. Prices are in each provider’s own currency and are not converted.
Which Cloudflare-protected sites has ScrapeUnblocker measured?
On 9 October 2026, a plain request to each site below received a Cloudflare challenge: HTTP 403 with the cf-mitigated: challenge header, which Cloudflare’s documentation names as the marker of a challenge response. ScrapeUnblocker’s figures come from its scraper pages:
| Site | Success | Calls | Avg response | Endpoint |
|---|---|---|---|---|
| Glassdoor | 100.0% | 1,000 | 6.6 s | Page fetch |
| ZipRecruiter | 99.9% | 1,000 | 3.7 s | Page fetch |
| Zoopla | 99.5% | 1,000 | 1.9 s | Page fetch |
| Indeed | 83.8% | 1,000 | 6.8 s | Plugin (JSON) |
For other anti-bot systems, ScrapeUnblocker’s own 2026 benchmark measured 97.0% across 14 sites protected by DataDome, PerimeterX, Akamai, Kasada, Incapsula, Shape and in-house systems, at 6,000 calls each. None of these are head-to-head tests.
How do you choose an API for a Cloudflare-protected site?
Run 50 to 100 of your own URLs through two or three APIs and compare:
- Pages with real content, not HTTP 200s; challenge pages often return 200.
- Cost per good page at the setting your site needs.
- What failures cost. ScrapeUnblocker does not bill a 403; ScraperAPI’s documentation says it charges for 200 and 404 responses.
- Limits: concurrency, time caps and countries.
A first ScrapeUnblocker test:
curl -X POST "https://api.scrapeunblocker.com/getPageSource?url=https://example.com" \
-H "x-scrapeunblocker-key: YOUR_API_KEY"
For the technical side of Cloudflare 403s, read How do I scrape a website protected by Cloudflare without getting a 403?
When might another API suit you better?
- Most of your pages need no rendering: ScraperAPI, ScrapingBee and Zenrows charge 1 credit for a plain request.
- You want a larger free monthly tier: Bright Data lists 5,000 requests and Zenrows 5,000 credits per month.
- Your sites fall in a low Zyte tier: its Simple tier costs $0.48 per 1,000 browser-rendered pages with a $500 monthly commitment.
- You need unlimited concurrency, which Bright Data lists on its Web Unlocker plans.
- You need screenshots or Markdown output, which ScrapeUnblocker does not offer.
Sources
- Cloudflare documentation, Detect a Challenge Page response
- ScrapeUnblocker: pricing, errors and billing, scrapers, 2026 benchmark
- Bright Data, Web Unlocker pricing
- ScraperAPI, credits and request costs and pricing
- ScrapingBee, pricing, HTML API reference
- Zenrows, pricing
- Scrapfly, pricing, billing, Unblocker
- Zyte, pricing
- Oxylabs, Web Unblocker pricing
Competitor details come from each provider’s public pages as viewed on 9 October 2026 and may have changed. Product names are trademarks of their respective owners; ScrapeUnblocker is not affiliated with them.
Try ScrapeUnblocker free
95%+ success rate · from 0.55€ per 1,000 calls · 500 free requests on signup.