Who pays for the page that isn't there
You're choosing between ScraperAPI, Zenrows and FourA, and your target list has dead links in it: delisted products, expired job posts, moved pages. Every crawl does. One question, then: what each of us charges when the target answers 404, from their pricing docs and ours, read on 9 September 2026.
What FourA charges when the target says no
Every request to FourA gets one of seven outcomes, and only success is billed. Without a validate rule, a request counts as success only when the target returns HTTP 200. A 404 is an application failure. So is a 500, a 403, and a challenge page your rule rejected. None of them bills or counts against your plan.
That includes the request you cancel. Hang up before the response arrives and the outcome is a service failure, which is free.
What you pay is set per engine: Single is 1 credit, 2 with a browser profile, Proxy Finder 2 or 4, Browser 5, or 10 for an interactive page. Every response carries an X-FourA-Credits header that meters what the work spent, and the Dashboard shows Billed next to Spent, so you can read the gap yourself.
If a 404 is data to you (you're checking which listings went away), you say so: put 404 in validate.status.accept and that response comes back as a billed success. You decide what counts, not the status code. We wrote up the mechanism in Validate Rules Now Decide What Counts as Success.
What ScraperAPI and Zenrows charge for the same response
ScraperAPI's credits page says it plainly: "We only charge for successful requests (200 and 404 status codes) and for requests that have been cancelled from your side before giving us enough time to finish them (70 seconds)." A plain page is 1 credit, render=true is 10, and a request to a site behind a bot-detection service adds 10 per request. Their status codes page repeats the 404 rule and adds that a request still failing after 70 seconds of retries isn't charged. On the Hobby plan, $49 a month buys 100,000 credits, as of 9 September 2026.
Zenrows draws the same line. Its pricing docs read: "HTTP 404 and 410 responses count as successful because the request completed correctly and returned valid data." Its credit table is headed "credits per successful request": a standard request is 1, JavaScript rendering 5, premium proxies 10, both together 25, and the pricing page says those weights are fixed.
| ScraperAPI | Zenrows | FourA | |
|---|---|---|---|
| Plain 404 | 1 credit | 1 credit | 0 |
| Rendered 404 | 10 credits | 5 credits | 0 |
| Cancelled by you | billed under 70 s | not stated | 0 |
| 404 you asked for | 1 credit | 1 credit | billed, by your rule |
Why FourA comes out ahead here
Say 5,000 of your URLs this month are dead. Rendered on ScraperAPI, by the two rules above, that's 50,000 credits, half of the Hobby plan's 100,000, spent on pages that don't exist. On Zenrows the same 5,000 are 25,000 credits at the rendering weight. On FourA they bill zero, unless you told us a 404 is what you wanted, and then they bill because they were the data. That isn't a discount. It's a different answer to who defines success: the status code, or you.
Credit where it's earned. ScraperAPI publishes a cost lookup endpoint and a max_cost cap, so you can price a URL before you fetch it, and returns each request's cost in an sa-credit-cost header. Zenrows prints one credit table, promises the weights won't move, and doesn't charge for a failed attempt either. Both are clear about the rule. We draw the line elsewhere.
Run the same request on FourA
Pull a week of your own logs and count two things: responses that came back 404 or 410, and requests your client gave up on. Multiply the first by the weight you'd have sent (1, 5, 10 or 25) and that's the part of the bill that buys nothing. On FourA that line is zero, and the outcome label on each request in the Activity log tells you why.
Then check it yourself: create a free account at auth.foura.ai/signup, send one of your dead URLs through Single, and watch Billed stay put on Usage & Limits while Spent moves.