ScrapeSelect

Do scraping APIs charge for failed requests? What 9 products actually bill

All seven managed scraping APIs we track say you only pay for successful requests. What they count as a success is where they differ: a 404 is billed almost everywhere, a 403 is billed on some and free on others, and a few settings quietly make every request billable.

Last updated Sep 26, 2026

This is what each provider's own documentation said when we checked it on Sep 24 and 25, 2026. Each row links to the page it comes from; the product pages on ScrapeSelect quote the exact wording.

The short version

ProductFailed requestTarget returns 404Target returns 403Source
Bright Data Web Unlocker APINot billedNot publishedNot publisheddocs ↗
Oxylabs Web Scraper APINot billedBilledBilled (any 4xx)docs ↗
Oxylabs Web UnblockerNot billedBilled (traffic)Billed (any 4xx)docs ↗
ScraperAPINot billedBilledNot billed (only 200 and 404 are)docs ↗
ScrapingBee APINot billedBilledNot billeddocs ↗
ZenRows Universal Scraper APINot billedBilledNot listed as billabledocs ↗
Zyte APINot billedBilledNot billed if it is a bandocs ↗
Apify PlatformBilled (compute time)Billed (compute time)Billed (compute time)docs ↗
Browserless CloudBilled (browser time)Billed (browser time)Billed (browser time)docs ↗

"Failed request" means the provider could not get a usable response after its own retries. Apify and Browserless are platforms where you run your own browser or crawler, so they bill the time used, not the outcome.

Provider by provider

What this means for your bill

  • Clean your URL list. Every managed API except Bright Data (which doesn't say) bills a 404. If 10% of the URLs you crawl are dead, roughly 10% of your bill is for pages with nothing on them. Dropping known-dead URLs before sending them costs nothing.
  • Blocks cost money on Oxylabs. Because any 4xx counts as a success there, a site that answers with 403 is billed like a page you wanted. On ScrapingBee, ScraperAPI and Zyte (when it is a ban), the same block is free.
  • Watch your timeouts. On ScraperAPI, give requests the full 70 seconds; cancelling earlier is billed. On Apify and Browserless, a long timeout on a page that will never load is paid browser or compute time, so the opposite applies: cut losses early.
  • Customising requests can change the rules. On Bright Data, sending your own headers or cookies makes failures billable too. Check a provider's docs before turning on options that give you more control.
  • Check what was billed. Some providers tell you per request. Bright Data's x-brd-debug header includes a billed=true or billed=false field. Compare a day of your own logs with the provider's usage dashboard before scaling up.

How this feeds into cost estimates

When ScrapeSelect estimates a monthly cost, it uses these rules: for products that bill only successes it counts successful pages, and for products that bill every attempt it adds the retries implied by the success rate. The calculator shows both, and the 500,000-page comparison shows how much they move the total. If a provider's documentation changes, the change log records it.