Scraping APIs that do not charge for failed requests
What "only pay for successful requests" means at each vendor, status code by status code, with the failure mix of 1.67 million real requests and what it cost.
Most scraping APIs no longer bill blocked or timed-out requests, but they differ on the edges: Ujeebu, ScraperAPI, ScrapingBee, ZenRows and Zyte bill a 404 Not Found because the target answered, Scrape.do also bills 400, and ScrapeBadger is one of the few that does not bill empty responses. On Ujeebu, HTTP 200 and 404 use credits; timeouts, blocks, captcha pages, rate limits and 5xx errors cost 0, and every response carries an Ujb-Credits header with what that call cost. Between October 9 and October 31, 2026, 237,392 of our customers' 1,666,360 scrape and extraction requests failed (14.2%), and none of them used a credit.
Disclosure: Ujeebu publishes this page and sells one of the APIs on it. Competitor rules quote their own documentation, linked below.
Which responses does Ujeebu bill?
A request uses credits when the target answered with a page you can use, or told you the page does not exist. Everything else is free.
| Outcome | Billed | Why |
|---|---|---|
| HTTP 200 with the page | Yes, the endpoint's credits | The job was done. |
| HTTP 404 Not Found from the target | Yes | The target answered; knowing a page is gone is a result (the same rule as ScraperAPI, ScrapingBee, ZenRows and Zyte). |
| Google answered with no results (SERP API) | Yes, 5 credits | An empty result set is a valid answer, as at SerpApi. |
| Timeout (our 408, or the page never loaded) | No | Nothing usable came back. |
| Blocked by the target (403, challenge page, captcha page) | No | Returned as an error, free. |
| Rate limited by Ujeebu (429) | No | You sent more than your plan's concurrency. |
| Ujeebu or gateway error (5xx) | No | Our side failed. |
| Retry of a failed request | Only the attempt that succeeds | Failed attempts cost 0, so a retry loop pays once. |
Two settings change the price of a successful request, not the free failures: premium proxies and JavaScript rendering (listed per endpoint on /pricing), and auto_captcha_solve on the Scrape API, which adds 5 credits to every billed request when it is on, whether or not a captcha appeared (measured October 13, 2026). Markdown conversions cost 10 credits with or without it (measured November 1, 2026).
How many scraping requests fail, and what that would cost
Method: our usage rollups count every customer request by endpoint and outcome per day (staff and internal accounts excluded). These are the scrape and extraction requests from October 9 to October 31, 2026, the first full window of the outcome rollup.
| Outcome | Requests | Share | Credits used |
|---|---|---|---|
| Successful (billed) | 1,428,968 | 85.8% | The endpoint's rate |
| Timed out (page did not load in time) | 145,965 | 8.8% | 0 |
| Target error or blocked, returned as 400 (for example "Invalid status code from URL: 403") | 73,969 | 4.4% | 0 |
| Blocked with 403 | 8,833 | 0.5% | 0 |
| Rate limited (429, over the plan's concurrency) | 4,157 | 0.2% | 0 |
| Client closed the connection (499) | 3,091 | 0.2% | 0 |
| Server error (5xx) | 1,362 | 0.1% | 0 |
| Other | 15 | 0.0% | 0 |
| All failures | 237,392 | 14.2% | 0 |
Source: Ujeebu api_proxy_daily rollup, read November 1, 2026. Cross-check on the SERP API, from the api_site_daily rollup for October 8 to 31: 270,419 customer searches, 208,614 successful, 1,043,075 credits billed, which is 5 credits per successful search to within a single search; the 61,805 failed searches added nothing. At the Starter plan rate of $0.163 per 1,000 credits, the 237,392 failed scrape and extraction requests would have cost at least $39 at 1 credit each, and $194 at the 5-credit JavaScript rate, had they been billed.
Which scraping APIs charge for failed requests? Rules from their docs
| API | Billed | Not billed | Fine print |
|---|---|---|---|
| Ujeebu | 200, 404 | Timeouts, blocks, captcha pages, 429, 5xx | Empty Google results are billed; Ujb-Credits header on every response |
| ScraperAPI | 200, 404 | Failures after its 70 seconds of retries | A request you cancel before 70 seconds is billed |
| ScrapingBee | 200, 404, 410 | Everything else | |
| ZenRows | 200, 404, 410 | Failed and retried requests | 404 and 410 "count as successful" |
| Scrapfly | 200 and a list of client errors (400, 401, 404, 410, 422 and others) | Other failed scrapes (Scrape Failed Protection) | Protection is switched off if 30% or more of your scrapes are blocked over 24 hours (minimum 1,000) without its Unblocker |
| Zyte API | Successful responses, including a target 404 | Bans (520), rate limits (429, 503) | |
| Scrape.do | 2xx, 400, 404, 410 | Timeouts, blocks, other errors | |
| Bright Data SERP API | Successful responses | Failures; retries are free | In a zone with custom headers or cookies, every request is billed |
| ScrapeBadger | Successful requests | Blocks, timeouts, errors and empty responses | |
| Scrappey | Valid responses from the target | Challenge pages, CAPTCHA, WAF pages, connection errors, timeouts | |
| SerpApi | Successful searches, including empty result sets | Errored, failed and cached searches |
Quoted rules link to the documentation pages under Sources. Geonode also states that failed extractions are not charged; it does not list status codes.
Where "you only pay for successful requests" still costs you
- 404 and 410 pages. Most APIs bill them, because the target did answer. If you crawl old URL lists, a dead link costs as much as a live page. Check the list with plain requests first (1 credit each) before you send rendered ones (5 credits).
- Empty results. A Google search with no results comes back as HTTP 200 and is billed at Ujeebu and SerpApi. Across 1,059 of our own Maps probes between October 10 and November 1, 2026, 20 came back empty and each was billed 5 credits.
- Cancelled requests. ScraperAPI bills a request you cancel before its 70-second retry window ends. Ujeebu does not bill a request your client closes (499); 3,091 such requests in October cost nothing.
- Cost multipliers on success. A free failure does not help if the successful request costs 25 credits. ScraperAPI bills 25 credits for a Google request and 30 for LinkedIn; Ujeebu bills 5 for a Google search and 25 only for a premium proxy with rendering.
- Fairness clauses. Scrapfly bills failed scrapes once 30% or more of your traffic is blocked for a day without its Unblocker. Read the clause before you point a cheap plan at a hard site.
How to avoid paying for failed scraping requests
- Read the cost of every call. Ujeebu returns an Ujb-Credits header on each response; log it next to the status code and you can reconcile your bill per request. A failed call carries no credit charge.
- Retry failures, not successes. Because a failed attempt is free, a retry with backoff on 408, 429 and 5xx costs nothing until it works. Do not retry 404: it is billed every time.
- Start cheap and step up. Send a plain request first (1 credit) and switch on JavaScript (5) or a premium proxy only for the sites that need it. Our site guides list the setting that works for each popular site.
- Keep the captcha solver off unless you need it. On the Scrape API it adds 5 credits to every billed request when it is on.
- Stay under your concurrency. 4,157 customer requests in October hit our rate limit; they were free, but they were also lost work.
Prices per endpoint are on the pricing page; one-time packs without a plan are on pay as you go.
Frequently asked questions
Which scraping API does not charge for failed requests?
Does Ujeebu charge for failed requests?
Is a 404 response billed by scraping APIs?
How do I check what a scraping request cost?
Are retries free?
What share of scraping requests fail?
Ujeebu figures come from our usage rollups and our own calls; competitor rules come from each vendor's documentation, checked on . Prices change; check the vendor page before you buy.
Ujeebu publishes this page and sells one of the products on it. We do our best to keep it accurate and fair; if you see an error or a price that changed, please let us know.
Test it on your own targets
Benchmarks and price tables only go so far. Run your real URLs through two or three of these APIs during their free trials and compare success rate and cost per successful page.