What a 404 costs on ScraperAPI, Zenrows and FourA FourA bills zero credits for HTTP 404 responses, while ScraperAPI charges 1 credit for a plain 404 and 10 credits for a rendered 404 and Zenrows charges 1 and 5 credits respectively, according to a comparison published 9 September 2026 drawing on each provider's pricing documentation. FourA's API returns one of seven outcomes and bills only success, defined by default as HTTP 200, with 404, 500, 403 and rejected challenge pages treated as free application failures; ScraperAPI's credits page states it charges for 200 and 404 status codes, and Zenrows' pricing docs state HTTP 404 and 410 responses count as successful. FourA's example calculates that 5,000 dead URLs rendered on ScraperAPI would consume 50,000 credits — half of the $49-a-month Hobby plan's 100,000 credits — versus 25,000 credits on Zenrows and zero on FourA. 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 https://foura.ai/docs/api/outcomes . 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 https://foura.ai/docs/api/response-headers . 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 https://foura.ai/blog/validate-decides-success . What ScraperAPI and Zenrows charge for the same response ScraperAPI's credits page https://docs.scraperapi.com/getting-started/quick-start/credits-and-requests-costs 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 https://docs.scraperapi.com/responses-and-formats/api-status-codes repeats the 404 rule and adds that a request still failing after 70 seconds of retries isn't charged. On the Hobby plan https://www.scraperapi.com/pricing/ , $49 a month buys 100,000 credits, as of 9 September 2026. Zenrows draws the same line. Its pricing docs https://docs.zenrows.com/first-steps/pricing 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 https://www.zenrows.com/pricing 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 https://auth.foura.ai/signup , send one of your dead URLs through Single, and watch Billed stay put on Usage & Limits while Spent moves.