Scraping API cost calculator
Choose your billed-request count, target, configuration and required concurrency to compare monthly purchases. Each provider’s quoted credit cost determines the allowance you need.
Compare the monthly subscriptions we have recorded, with a source and read date for each plan. You can include quoted top-up packs; annual discounts and unquoted overage are excluded. A provider may offer other allowances or custom terms beyond the plans shown here.
Assumes top-ups are enabled and your account spending limit permits the purchase. Other overage is excluded.
Workload counts billed requests under each provider's policy, including any charged failures or cancellations. Named targets require their own collected price. Protection charges, other operations and taxes can change the bill. Concurrency limits simultaneous requests; it does not predict completed pages per second.
6 providers priced for this workload
Filter providers and budget
Only these providers (all)
Exclude providers (none)
Required credits multiply billed requests by the provider's quoted credits per request for the selected configuration and target. Named targets require separately collected prices; standard-site costs cannot fill that gap. Workload counts billed requests under each provider's policy. Each provider's conditions still apply; no success rate or performance is assumed. The cheapest recorded purchase covering the required credits and stated concurrency is selected. Effective cost per 1,000 billed requests divides the purchase by the requested count, including unused paid credits. Optional top-up packs are rounded up to whole quoted increments and assume top-ups enabled with sufficient account spending limits. Annual commitments, unquoted overage, taxes and other add-ons are excluded. Concurrency uses the quoted scope; token defaults may be shared across products and do not predict completed requests per second or available slots. Plan prices, concurrency conditions, request costs and top-ups carry their own sources and original read dates. This is a saved snapshot, not a live quote.
Some visit links are affiliate links. We may earn a commission. Payment does not affect the price order. How this site pays for itself.
Compare volumes and budget allowance
Add up to three monthly volumes in requests. The budget above also shows how much its upper cost estimate can cover.
| Provider and purchase | Monthly | Effective per 1k |
|---|---|---|
| ScrapflyVisit Scrapfly Discovery · 200,000 credits Price read 2026-09-08Purchase conditions · Discovery
Per TEXT request within included bandwidth, with the stated proxy pool and rendering setting. No automatic ASP pool upgrade, binary download, large request body or cache hit is assumed. Bandwidth surcharges and failed-request billing exceptions apply as quoted below; attempted or successful sessions are not predicted. | $30.00 | $0.30 |
| ZenRowsVisit ZenRows Build · 120,000 credits Price read 2026-09-08Purchase conditions · Build
Per billable response, including HTTP 404 and 410 under the provider's success definition; excludes separately billed residential bandwidth and Browser Sessions. | $39.00 | $0.39 |
| ScraperAPIVisit ScraperAPI Hobby · 100,000 credits Price read 2026-09-08Purchase conditions · Hobby
Normal target, no rendering, premium routing or bot-protection surcharge. Named target sites have higher base costs. HTTP 200/404 and early cancellations count as billable under the quoted policy. | $49.00 | $0.49 |
| ScrapingBeeVisit ScrapingBee Freelance · 250,000 credits Price read 2026-09-08Purchase conditions · Freelance
Manual configuration; no AI features or other add-ons. JavaScript is enabled by default, so disable it for the standard or premium-only price. Workload counts billable responses, including 404, 410 and 413. Transparent status mode broadens billing to target responses below 500 and disables retries. | $49.00 | $0.49 |
| CrawlbaseVisit Crawlbase Starter · 200,000 credits Price read 2026-09-0820 concurrent requests per token by default, shared across subscribed Crawlbase products. Higher limits require contacting support and are not priced here. This is not an account-wide ceiling or measured requests per second. Concurrency read 2026-09-08 · Source Quoted concurrency conditionsConcurrent requests / 20 / per tokenContext: Default limits. Limit / Default / Scope. Every account starts with the same generous defaults. You don't need to ask for these - they're already on every token the moment you sign up.Read 2026-09-08 Endpoint specs and parameter references for every Crawlbase API. One token authenticates all of them; pricing and concurrency budgets are shared across the products you subscribe to.Read 2026-09-08 Higher concurrency contact usContext: Email support with your target throughput and use case.Read 2026-09-08 Purchase conditions · Starter
Standard site tier; excludes screenshots and storage. Counts billable responses under Crawlbase's status definition, including 404 and 410; excludes custom_success_codes overrides. | $99.00 | $0.99 |
| FirecrawlVisit Firecrawl Standard · 100,000 credits Price read 2026-09-08Purchase conditions · Standard
Basic Scrape endpoint per returned document, including target error pages such as 403 and 404. Excludes PDF parsing, JSON extraction, prompt-injection checks, Zero Data Retention, threat scans, FIRE-1 navigation, lockdown cache mode and X/Twitter URLs. These options and other endpoints have separate charges, including some failures without a document. | $99.00 | $0.99 |
| SearchApiVisit SearchApiRecord checked 2026-10-06 | No collected credit price for this configuration. | |
Credit prices and request conditions
The configuration names group the stated features. They do not establish equal proxy quality, success rates or performance. Only the quoted configurations enter the calculation.
Scrapfly
- Datacenter TEXT scrape: 1 credit per request. Per TEXT request within included bandwidth, with the stated proxy pool and rendering setting. No automatic ASP pool upgrade, binary download, large request body or cache hit is assumed. Bandwidth surcharges and failed-request billing exceptions apply as quoted below; attempted or successful sessions are not predicted. Read 2026-09-08
Bandwidth and billing conditions
Feature API Credits Cost Base Request Cost (choose one proxy pool) Datacenter Proxies Default 1 credit Residential Proxies proxy_pool=public_residential_pool 25 credits Additional Features (added to base cost) Browser Rendering render_js=true +5 credits Note: Proxy pool costs are mutually exclusive - choose either datacenter (1 credit) or residential (25 credits) as your base cost. ASP may dynamically upgrade the proxy pool to bypass anti-bot protection, which can affect the final cost. Read 2026-09-08
Large HTML responses exceeding 1MB - Bandwidth usage after the initial 1MB is billed as BINARY bandwidth Data responses (JSON, CSV, XML, TXT) exceeding 1MB - Billed as BINARY bandwidth after 1MB Request body (POST/PUT/PATCH) exceeding 100KB - Sent through the API, billed as BINARY bandwidth Browser rendering includes 3MB free - Additional data beyond 3MB is billed following BINARY bandwidth calculation Read 2026-09-08
Scrape Failed Protection & Fairness Policy Scrapfly's Scrape Failed Protection ensures that failed scrapes are not billed to our customers. To prevent abuse, we also have a fairness policy in place. Fairness Policy Trigger: If more than 30% of failed traffic with eligible status codes (≥400 and not excluded) is detected within a minimum one-hour period, the fairness policy will be disabled and usage will be billed. Eligible Status Codes Status codes greater than or equal to 400 and not excluded (see below) are eligible for Scrape Failed Protection. Excluded status codes: 400, 401, 402, 404, 405, 406, 407, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 422, 424, 426, 428, 456 Account Suspension: If an account deliberately scrapes a protected website without success and without using our Anti Scraping Protection (ASP), the account may be suspended at the discretion of our account managers. Read 2026-09-08
- Datacenter TEXT scrape with JavaScript: 6 credits per request. Per TEXT request within included bandwidth, with the stated proxy pool and rendering setting. No automatic ASP pool upgrade, binary download, large request body or cache hit is assumed. Bandwidth surcharges and failed-request billing exceptions apply as quoted below; attempted or successful sessions are not predicted. Read 2026-09-08
Bandwidth and billing conditions
Feature API Credits Cost Base Request Cost (choose one proxy pool) Datacenter Proxies Default 1 credit Residential Proxies proxy_pool=public_residential_pool 25 credits Additional Features (added to base cost) Browser Rendering render_js=true +5 credits Note: Proxy pool costs are mutually exclusive - choose either datacenter (1 credit) or residential (25 credits) as your base cost. ASP may dynamically upgrade the proxy pool to bypass anti-bot protection, which can affect the final cost. Read 2026-09-08
Large HTML responses exceeding 1MB - Bandwidth usage after the initial 1MB is billed as BINARY bandwidth Data responses (JSON, CSV, XML, TXT) exceeding 1MB - Billed as BINARY bandwidth after 1MB Request body (POST/PUT/PATCH) exceeding 100KB - Sent through the API, billed as BINARY bandwidth Browser rendering includes 3MB free - Additional data beyond 3MB is billed following BINARY bandwidth calculation Read 2026-09-08
Scrape Failed Protection & Fairness Policy Scrapfly's Scrape Failed Protection ensures that failed scrapes are not billed to our customers. To prevent abuse, we also have a fairness policy in place. Fairness Policy Trigger: If more than 30% of failed traffic with eligible status codes (≥400 and not excluded) is detected within a minimum one-hour period, the fairness policy will be disabled and usage will be billed. Eligible Status Codes Status codes greater than or equal to 400 and not excluded (see below) are eligible for Scrape Failed Protection. Excluded status codes: 400, 401, 402, 404, 405, 406, 407, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 422, 424, 426, 428, 456 Account Suspension: If an account deliberately scrapes a protected website without success and without using our Anti Scraping Protection (ASP), the account may be suspended at the discretion of our account managers. Read 2026-09-08
- Residential TEXT scrape: 25 credits per request. Per TEXT request within included bandwidth, with the stated proxy pool and rendering setting. No automatic ASP pool upgrade, binary download, large request body or cache hit is assumed. Bandwidth surcharges and failed-request billing exceptions apply as quoted below; attempted or successful sessions are not predicted. Read 2026-09-08
Bandwidth and billing conditions
Feature API Credits Cost Base Request Cost (choose one proxy pool) Datacenter Proxies Default 1 credit Residential Proxies proxy_pool=public_residential_pool 25 credits Additional Features (added to base cost) Browser Rendering render_js=true +5 credits Note: Proxy pool costs are mutually exclusive - choose either datacenter (1 credit) or residential (25 credits) as your base cost. ASP may dynamically upgrade the proxy pool to bypass anti-bot protection, which can affect the final cost. Read 2026-09-08
Large HTML responses exceeding 1MB - Bandwidth usage after the initial 1MB is billed as BINARY bandwidth Data responses (JSON, CSV, XML, TXT) exceeding 1MB - Billed as BINARY bandwidth after 1MB Request body (POST/PUT/PATCH) exceeding 100KB - Sent through the API, billed as BINARY bandwidth Browser rendering includes 3MB free - Additional data beyond 3MB is billed following BINARY bandwidth calculation Read 2026-09-08
Scrape Failed Protection & Fairness Policy Scrapfly's Scrape Failed Protection ensures that failed scrapes are not billed to our customers. To prevent abuse, we also have a fairness policy in place. Fairness Policy Trigger: If more than 30% of failed traffic with eligible status codes (≥400 and not excluded) is detected within a minimum one-hour period, the fairness policy will be disabled and usage will be billed. Eligible Status Codes Status codes greater than or equal to 400 and not excluded (see below) are eligible for Scrape Failed Protection. Excluded status codes: 400, 401, 402, 404, 405, 406, 407, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 422, 424, 426, 428, 456 Account Suspension: If an account deliberately scrapes a protected website without success and without using our Anti Scraping Protection (ASP), the account may be suspended at the discretion of our account managers. Read 2026-09-08
- Residential TEXT scrape with JavaScript: 30 credits per request. Per TEXT request within included bandwidth, with the stated proxy pool and rendering setting. No automatic ASP pool upgrade, binary download, large request body or cache hit is assumed. Bandwidth surcharges and failed-request billing exceptions apply as quoted below; attempted or successful sessions are not predicted. Read 2026-09-08
Bandwidth and billing conditions
Feature API Credits Cost Base Request Cost (choose one proxy pool) Datacenter Proxies Default 1 credit Residential Proxies proxy_pool=public_residential_pool 25 credits Additional Features (added to base cost) Browser Rendering render_js=true +5 credits Note: Proxy pool costs are mutually exclusive - choose either datacenter (1 credit) or residential (25 credits) as your base cost. ASP may dynamically upgrade the proxy pool to bypass anti-bot protection, which can affect the final cost. Read 2026-09-08
Large HTML responses exceeding 1MB - Bandwidth usage after the initial 1MB is billed as BINARY bandwidth Data responses (JSON, CSV, XML, TXT) exceeding 1MB - Billed as BINARY bandwidth after 1MB Request body (POST/PUT/PATCH) exceeding 100KB - Sent through the API, billed as BINARY bandwidth Browser rendering includes 3MB free - Additional data beyond 3MB is billed following BINARY bandwidth calculation Read 2026-09-08
Scrape Failed Protection & Fairness Policy Scrapfly's Scrape Failed Protection ensures that failed scrapes are not billed to our customers. To prevent abuse, we also have a fairness policy in place. Fairness Policy Trigger: If more than 30% of failed traffic with eligible status codes (≥400 and not excluded) is detected within a minimum one-hour period, the fairness policy will be disabled and usage will be billed. Eligible Status Codes Status codes greater than or equal to 400 and not excluded (see below) are eligible for Scrape Failed Protection. Excluded status codes: 400, 401, 402, 404, 405, 406, 407, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 422, 424, 426, 428, 456 Account Suspension: If an account deliberately scrapes a protected website without success and without using our Anti Scraping Protection (ASP), the account may be suspended at the discretion of our account managers. Read 2026-09-08
ZenRows
- Standard request: 1 credit per request. Per billable response, including HTTP 404 and 410 under the provider's success definition; excludes separately billed residential bandwidth and Browser Sessions. Read 2026-09-08
Bandwidth and billing conditions
Failed requests are never charged. Not Found (404) and Gone (410) responses count as successful results. Read 2026-09-08
- JavaScript rendering: 5 credits per request. Per billable response, including HTTP 404 and 410 under the provider's success definition; excludes separately billed residential bandwidth and Browser Sessions. Read 2026-09-08
Bandwidth and billing conditions
Failed requests are never charged. Not Found (404) and Gone (410) responses count as successful results. Read 2026-09-08
- Premium proxy: 10 credits per request. Per billable response, including HTTP 404 and 410 under the provider's success definition; excludes separately billed residential bandwidth and Browser Sessions. Read 2026-09-08
Bandwidth and billing conditions
Failed requests are never charged. Not Found (404) and Gone (410) responses count as successful results. Read 2026-09-08
- JavaScript rendering + premium proxy: 25 credits per request. Per billable response, including HTTP 404 and 410 under the provider's success definition; excludes separately billed residential bandwidth and Browser Sessions. Read 2026-09-08
Bandwidth and billing conditions
Failed requests are never charged. Not Found (404) and Gone (410) responses count as successful results. Read 2026-09-08
ScraperAPI
- Normal (flat) request: 1 credit per request. Normal target, no rendering, premium routing or bot-protection surcharge. Named target sites have higher base costs. HTTP 200/404 and early cancellations count as billable under the quoted policy. Read 2026-09-08
Bandwidth and billing conditions
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). Read 2026-09-08
- Amazon base request: 5 credits per request. Amazon domain base rate. Assumes no rendering, premium routing or bot-protection charge. Protection can change and increase the actual bill. HTTP 200/404 and early cancellations count as billable under the quoted policy. Read 2026-09-08
Bandwidth and billing conditions
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). Read 2026-09-08
Scraping domains that have anti-bot protection systems in place requires the activation of a bypass mechanism, which is resource-intensive and increases the cost per scrape. Read 2026-09-08
We highly recommend using our API Playground before scraping to understand what the cost per request will be - as domains may switch protection measures. You can also set limits on your API credit expenditure. To find out more, please visit this page. Read 2026-09-08
- Walmart base request: 5 credits per request. Walmart domain base rate. Assumes no rendering, premium routing or bot-protection charge. Protection can change and increase the actual bill. HTTP 200/404 and early cancellations count as billable under the quoted policy. Read 2026-09-08
Bandwidth and billing conditions
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). Read 2026-09-08
Scraping domains that have anti-bot protection systems in place requires the activation of a bypass mechanism, which is resource-intensive and increases the cost per scrape. Read 2026-09-08
We highly recommend using our API Playground before scraping to understand what the cost per request will be - as domains may switch protection measures. You can also set limits on your API credit expenditure. To find out more, please visit this page. Read 2026-09-08
- eBay base request: 5 credits per request. eBay domain base rate. Assumes no rendering, premium routing or bot-protection charge. Protection can change and increase the actual bill. HTTP 200/404 and early cancellations count as billable under the quoted policy. Read 2026-09-08
Bandwidth and billing conditions
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). Read 2026-09-08
Scraping domains that have anti-bot protection systems in place requires the activation of a bypass mechanism, which is resource-intensive and increases the cost per scrape. Read 2026-09-08
We highly recommend using our API Playground before scraping to understand what the cost per request will be - as domains may switch protection measures. You can also set limits on your API credit expenditure. To find out more, please visit this page. Read 2026-09-08
- Google base request: 25 credits per request. Google and all subdomains domain base rate. Assumes no rendering, premium routing or bot-protection charge. Protection can change and increase the actual bill. HTTP 200/404 and early cancellations count as billable under the quoted policy. Read 2026-09-08
Bandwidth and billing conditions
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). Read 2026-09-08
Scraping domains that have anti-bot protection systems in place requires the activation of a bypass mechanism, which is resource-intensive and increases the cost per scrape. Read 2026-09-08
We highly recommend using our API Playground before scraping to understand what the cost per request will be - as domains may switch protection measures. You can also set limits on your API credit expenditure. To find out more, please visit this page. Read 2026-09-08
- Bing base request: 25 credits per request. Bing and all subdomains domain base rate. Assumes no rendering, premium routing or bot-protection charge. Protection can change and increase the actual bill. HTTP 200/404 and early cancellations count as billable under the quoted policy. Read 2026-09-08
Bandwidth and billing conditions
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). Read 2026-09-08
Scraping domains that have anti-bot protection systems in place requires the activation of a bypass mechanism, which is resource-intensive and increases the cost per scrape. Read 2026-09-08
We highly recommend using our API Playground before scraping to understand what the cost per request will be - as domains may switch protection measures. You can also set limits on your API credit expenditure. To find out more, please visit this page. Read 2026-09-08
- LinkedIn base request: 30 credits per request. LinkedIn domain base rate. Assumes no rendering, premium routing or bot-protection charge. Protection can change and increase the actual bill. HTTP 200/404 and early cancellations count as billable under the quoted policy. Read 2026-09-08
Bandwidth and billing conditions
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). Read 2026-09-08
Scraping domains that have anti-bot protection systems in place requires the activation of a bypass mechanism, which is resource-intensive and increases the cost per scrape. Read 2026-09-08
We highly recommend using our API Playground before scraping to understand what the cost per request will be - as domains may switch protection measures. You can also set limits on your API credit expenditure. To find out more, please visit this page. Read 2026-09-08
- JavaScript rendering: 10 credits per request. Normal target with the selected rendering/premium parameters. Excludes named-target rates, protection surcharges, ultra-premium, screenshots and other add-ons. Premium routing cannot be combined with ultra_premium or session_number. No geotargeting or session setting is assumed. HTTP 200/404 and cancellations before 70 seconds are billable under the separately dated policy. Read 2026-09-09
Bandwidth and billing conditions
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). Read 2026-09-08
Scraping domains that have anti-bot protection systems in place requires the activation of a bypass mechanism, which is resource-intensive and increases the cost per scrape. Read 2026-09-08
We highly recommend using our API Playground before scraping to understand what the cost per request will be - as domains may switch protection measures. You can also set limits on your API credit expenditure. To find out more, please visit this page. Read 2026-09-08
JS Rendering Premium Proxies Read 2026-09-08
render=true - 10 API Credits/req Read 2026-09-08
Reuse the same proxy by setting session_number=123 for example. This parameter does not increase the cost of the API request. (Can not be combined with premium/ultra_premium ). Read 2026-09-09
- Premium residential/mobile proxy: 10 credits per request. Normal target with the selected rendering/premium parameters. Excludes named-target rates, protection surcharges, ultra-premium, screenshots and other add-ons. Premium routing cannot be combined with ultra_premium or session_number. No geotargeting or session setting is assumed. HTTP 200/404 and cancellations before 70 seconds are billable under the separately dated policy. Read 2026-09-09
Bandwidth and billing conditions
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). Read 2026-09-08
Scraping domains that have anti-bot protection systems in place requires the activation of a bypass mechanism, which is resource-intensive and increases the cost per scrape. Read 2026-09-08
We highly recommend using our API Playground before scraping to understand what the cost per request will be - as domains may switch protection measures. You can also set limits on your API credit expenditure. To find out more, please visit this page. Read 2026-09-08
JS Rendering Premium Proxies Read 2026-09-08
premium=true - 10 API Credits/req Read 2026-09-08
Reuse the same proxy by setting session_number=123 for example. This parameter does not increase the cost of the API request. (Can not be combined with premium/ultra_premium ). Read 2026-09-09
- JavaScript rendering + premium proxy: 25 credits per request. Normal target with the selected rendering/premium parameters. Excludes named-target rates, protection surcharges, ultra-premium, screenshots and other add-ons. Premium routing cannot be combined with ultra_premium or session_number. No geotargeting or session setting is assumed. HTTP 200/404 and cancellations before 70 seconds are billable under the separately dated policy. Read 2026-09-09
Bandwidth and billing conditions
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). Read 2026-09-08
Scraping domains that have anti-bot protection systems in place requires the activation of a bypass mechanism, which is resource-intensive and increases the cost per scrape. Read 2026-09-08
We highly recommend using our API Playground before scraping to understand what the cost per request will be - as domains may switch protection measures. You can also set limits on your API credit expenditure. To find out more, please visit this page. Read 2026-09-08
JS Rendering Premium Proxies Read 2026-09-08
premium=true + render=true - 25 API Credits/req Read 2026-09-08
Reuse the same proxy by setting session_number=123 for example. This parameter does not increase the cost of the API request. (Can not be combined with premium/ultra_premium ). Read 2026-09-09
ScrapingBee
- Classic Proxy without JavaScript rendering: 1 credit per request. Manual configuration; no AI features or other add-ons. JavaScript is enabled by default, so disable it for the standard or premium-only price. Workload counts billable responses, including 404, 410 and 413. Transparent status mode broadens billing to target responses below 500 and disables retries. Read 2026-09-08
Bandwidth and billing conditions
Response Status Code ScrapingBee returns the following HTTP status codes. These are ScrapingBee's own status codes, not the target page's. By default we do not forward the status the scraped site returned - see transparent HTTP status code for how the two relate, and for how to get the target's status instead. Code Billed? Meaning Solution 200 Yes Successful Call 400 No Bad request Incorrect parameters or parameters type. See the message in the response body. 401 No Out of credits, or an invalid API key Check the key, then upgrade your plan or contact sales. 403 No The account is banned, or the request was redirected to a blocked destination The response body says which. This is never the scraped page's own 403. 404 Yes Requested URL not found Provide a valid URL. 410 Yes Requested URL gone Provide a valid URL. 413 Yes The target page returned 413 (payload too large) Check the URL; the page itself refused the request. 429 No Too many concurrent requests. Please upgrade your plan or contact sales. 500 No We could not scrape the page, or the target returned a status we do not pass through Retry; the response body carries the reason. Transparent HTTP status code transparent_status_code [ boolean ] ( false ) By default ScrapingBee reports its own status rather than the target's: any 2xx becomes 200, 404, 410 and 413 are passed through, and everything else becomes 500. Redirects are followed first, so this is the status at the end of the chain. So a 403 from an anti-bot page, a 401 from a paywall or a 503 from an overloaded site all reach you as a 500, not as their own code. A 500 from us is not billed. To get the same body and status code as the requested URL in any circumstances, use the transparent_status_code=true parameter. When this parameter is set to true: Anything the target returns below 500 is billed, since we no longer replace it with a 500. A 5xx is still free. We do not retry. Without the parameter a failed scrape is tried again on another proxy; with it you get the first attempt. Read 2026-09-08
- Classic Proxy with JavaScript rendering (default): 5 credits per request. Manual configuration; no AI features or other add-ons. JavaScript is enabled by default, so disable it for the standard or premium-only price. Workload counts billable responses, including 404, 410 and 413. Transparent status mode broadens billing to target responses below 500 and disables retries. Read 2026-09-08
Bandwidth and billing conditions
Response Status Code ScrapingBee returns the following HTTP status codes. These are ScrapingBee's own status codes, not the target page's. By default we do not forward the status the scraped site returned - see transparent HTTP status code for how the two relate, and for how to get the target's status instead. Code Billed? Meaning Solution 200 Yes Successful Call 400 No Bad request Incorrect parameters or parameters type. See the message in the response body. 401 No Out of credits, or an invalid API key Check the key, then upgrade your plan or contact sales. 403 No The account is banned, or the request was redirected to a blocked destination The response body says which. This is never the scraped page's own 403. 404 Yes Requested URL not found Provide a valid URL. 410 Yes Requested URL gone Provide a valid URL. 413 Yes The target page returned 413 (payload too large) Check the URL; the page itself refused the request. 429 No Too many concurrent requests. Please upgrade your plan or contact sales. 500 No We could not scrape the page, or the target returned a status we do not pass through Retry; the response body carries the reason. Transparent HTTP status code transparent_status_code [ boolean ] ( false ) By default ScrapingBee reports its own status rather than the target's: any 2xx becomes 200, 404, 410 and 413 are passed through, and everything else becomes 500. Redirects are followed first, so this is the status at the end of the chain. So a 403 from an anti-bot page, a 401 from a paywall or a 503 from an overloaded site all reach you as a 500, not as their own code. A 500 from us is not billed. To get the same body and status code as the requested URL in any circumstances, use the transparent_status_code=true parameter. When this parameter is set to true: Anything the target returns below 500 is billed, since we no longer replace it with a 500. A 5xx is still free. We do not retry. Without the parameter a failed scrape is tried again on another proxy; with it you get the first attempt. Read 2026-09-08
- Premium Proxy without JavaScript rendering: 10 credits per request. Manual configuration; no AI features or other add-ons. JavaScript is enabled by default, so disable it for the standard or premium-only price. Workload counts billable responses, including 404, 410 and 413. Transparent status mode broadens billing to target responses below 500 and disables retries. Read 2026-09-08
Bandwidth and billing conditions
Response Status Code ScrapingBee returns the following HTTP status codes. These are ScrapingBee's own status codes, not the target page's. By default we do not forward the status the scraped site returned - see transparent HTTP status code for how the two relate, and for how to get the target's status instead. Code Billed? Meaning Solution 200 Yes Successful Call 400 No Bad request Incorrect parameters or parameters type. See the message in the response body. 401 No Out of credits, or an invalid API key Check the key, then upgrade your plan or contact sales. 403 No The account is banned, or the request was redirected to a blocked destination The response body says which. This is never the scraped page's own 403. 404 Yes Requested URL not found Provide a valid URL. 410 Yes Requested URL gone Provide a valid URL. 413 Yes The target page returned 413 (payload too large) Check the URL; the page itself refused the request. 429 No Too many concurrent requests. Please upgrade your plan or contact sales. 500 No We could not scrape the page, or the target returned a status we do not pass through Retry; the response body carries the reason. Transparent HTTP status code transparent_status_code [ boolean ] ( false ) By default ScrapingBee reports its own status rather than the target's: any 2xx becomes 200, 404, 410 and 413 are passed through, and everything else becomes 500. Redirects are followed first, so this is the status at the end of the chain. So a 403 from an anti-bot page, a 401 from a paywall or a 503 from an overloaded site all reach you as a 500, not as their own code. A 500 from us is not billed. To get the same body and status code as the requested URL in any circumstances, use the transparent_status_code=true parameter. When this parameter is set to true: Anything the target returns below 500 is billed, since we no longer replace it with a 500. A 5xx is still free. We do not retry. Without the parameter a failed scrape is tried again on another proxy; with it you get the first attempt. Read 2026-09-08
- Premium Proxy with JavaScript rendering: 25 credits per request. Manual configuration; no AI features or other add-ons. JavaScript is enabled by default, so disable it for the standard or premium-only price. Workload counts billable responses, including 404, 410 and 413. Transparent status mode broadens billing to target responses below 500 and disables retries. Read 2026-09-08
Bandwidth and billing conditions
Response Status Code ScrapingBee returns the following HTTP status codes. These are ScrapingBee's own status codes, not the target page's. By default we do not forward the status the scraped site returned - see transparent HTTP status code for how the two relate, and for how to get the target's status instead. Code Billed? Meaning Solution 200 Yes Successful Call 400 No Bad request Incorrect parameters or parameters type. See the message in the response body. 401 No Out of credits, or an invalid API key Check the key, then upgrade your plan or contact sales. 403 No The account is banned, or the request was redirected to a blocked destination The response body says which. This is never the scraped page's own 403. 404 Yes Requested URL not found Provide a valid URL. 410 Yes Requested URL gone Provide a valid URL. 413 Yes The target page returned 413 (payload too large) Check the URL; the page itself refused the request. 429 No Too many concurrent requests. Please upgrade your plan or contact sales. 500 No We could not scrape the page, or the target returned a status we do not pass through Retry; the response body carries the reason. Transparent HTTP status code transparent_status_code [ boolean ] ( false ) By default ScrapingBee reports its own status rather than the target's: any 2xx becomes 200, 404, 410 and 413 are passed through, and everything else becomes 500. Redirects are followed first, so this is the status at the end of the chain. So a 403 from an anti-bot page, a 401 from a paywall or a 503 from an overloaded site all reach you as a 500, not as their own code. A 500 from us is not billed. To get the same body and status code as the requested URL in any circumstances, use the transparent_status_code=true parameter. When this parameter is set to true: Anything the target returns below 500 is billed, since we no longer replace it with a 500. A 5xx is still free. We do not retry. Without the parameter a failed scrape is tried again on another proxy; with it you get the first attempt. Read 2026-09-08
- Google HTML API: Classic Proxy without JavaScript rendering: 15 credits per request. HTML API targeting a Google URL, with the selected classic/premium and JavaScript settings. The target rate is unchanged when JavaScript is disabled. Excludes the separate Google Search API, stealth proxies, Auto-Mode, AI features and other add-ons. JavaScript is on by default; disable it for a no-rendering configuration. Counts billable responses, including 404, 410 and 413. Transparent status mode broadens billing to target responses below 500 and disables retries. Read 2026-09-09
Bandwidth and billing conditions
Response Status Code ScrapingBee returns the following HTTP status codes. These are ScrapingBee's own status codes, not the target page's. By default we do not forward the status the scraped site returned - see transparent HTTP status code for how the two relate, and for how to get the target's status instead. Code Billed? Meaning Solution 200 Yes Successful Call 400 No Bad request Incorrect parameters or parameters type. See the message in the response body. 401 No Out of credits, or an invalid API key Check the key, then upgrade your plan or contact sales. 403 No The account is banned, or the request was redirected to a blocked destination The response body says which. This is never the scraped page's own 403. 404 Yes Requested URL not found Provide a valid URL. 410 Yes Requested URL gone Provide a valid URL. 413 Yes The target page returned 413 (payload too large) Check the URL; the page itself refused the request. 429 No Too many concurrent requests. Please upgrade your plan or contact sales. 500 No We could not scrape the page, or the target returned a status we do not pass through Retry; the response body carries the reason. Transparent HTTP status code transparent_status_code [ boolean ] ( false ) By default ScrapingBee reports its own status rather than the target's: any 2xx becomes 200, 404, 410 and 413 are passed through, and everything else becomes 500. Redirects are followed first, so this is the status at the end of the chain. So a 403 from an anti-bot page, a 401 from a paywall or a 503 from an overloaded site all reach you as a 500, not as their own code. A 500 from us is not billed. To get the same body and status code as the requested URL in any circumstances, use the transparent_status_code=true parameter. When this parameter is set to true: Anything the target returns below 500 is billed, since we no longer replace it with a 500. A 5xx is still free. We do not retry. Without the parameter a failed scrape is tried again on another proxy; with it you get the first attempt. Read 2026-09-08
Classic Proxy without JavaScript rendering 1 Read 2026-09-08
- Google HTML API: Classic Proxy with JavaScript rendering (default): 15 credits per request. HTML API targeting a Google URL, with the selected classic/premium and JavaScript settings. The target rate is unchanged when JavaScript is disabled. Excludes the separate Google Search API, stealth proxies, Auto-Mode, AI features and other add-ons. JavaScript is on by default; disable it for a no-rendering configuration. Counts billable responses, including 404, 410 and 413. Transparent status mode broadens billing to target responses below 500 and disables retries. Read 2026-09-09
Bandwidth and billing conditions
Response Status Code ScrapingBee returns the following HTTP status codes. These are ScrapingBee's own status codes, not the target page's. By default we do not forward the status the scraped site returned - see transparent HTTP status code for how the two relate, and for how to get the target's status instead. Code Billed? Meaning Solution 200 Yes Successful Call 400 No Bad request Incorrect parameters or parameters type. See the message in the response body. 401 No Out of credits, or an invalid API key Check the key, then upgrade your plan or contact sales. 403 No The account is banned, or the request was redirected to a blocked destination The response body says which. This is never the scraped page's own 403. 404 Yes Requested URL not found Provide a valid URL. 410 Yes Requested URL gone Provide a valid URL. 413 Yes The target page returned 413 (payload too large) Check the URL; the page itself refused the request. 429 No Too many concurrent requests. Please upgrade your plan or contact sales. 500 No We could not scrape the page, or the target returned a status we do not pass through Retry; the response body carries the reason. Transparent HTTP status code transparent_status_code [ boolean ] ( false ) By default ScrapingBee reports its own status rather than the target's: any 2xx becomes 200, 404, 410 and 413 are passed through, and everything else becomes 500. Redirects are followed first, so this is the status at the end of the chain. So a 403 from an anti-bot page, a 401 from a paywall or a 503 from an overloaded site all reach you as a 500, not as their own code. A 500 from us is not billed. To get the same body and status code as the requested URL in any circumstances, use the transparent_status_code=true parameter. When this parameter is set to true: Anything the target returns below 500 is billed, since we no longer replace it with a 500. A 5xx is still free. We do not retry. Without the parameter a failed scrape is tried again on another proxy; with it you get the first attempt. Read 2026-09-08
Classic Proxy with JavaScript rendering (default) 5 Read 2026-09-08
- Google HTML API: Premium Proxy without JavaScript rendering: 15 credits per request. HTML API targeting a Google URL, with the selected classic/premium and JavaScript settings. The target rate is unchanged when JavaScript is disabled. Excludes the separate Google Search API, stealth proxies, Auto-Mode, AI features and other add-ons. JavaScript is on by default; disable it for a no-rendering configuration. Counts billable responses, including 404, 410 and 413. Transparent status mode broadens billing to target responses below 500 and disables retries. Read 2026-09-09
Bandwidth and billing conditions
Response Status Code ScrapingBee returns the following HTTP status codes. These are ScrapingBee's own status codes, not the target page's. By default we do not forward the status the scraped site returned - see transparent HTTP status code for how the two relate, and for how to get the target's status instead. Code Billed? Meaning Solution 200 Yes Successful Call 400 No Bad request Incorrect parameters or parameters type. See the message in the response body. 401 No Out of credits, or an invalid API key Check the key, then upgrade your plan or contact sales. 403 No The account is banned, or the request was redirected to a blocked destination The response body says which. This is never the scraped page's own 403. 404 Yes Requested URL not found Provide a valid URL. 410 Yes Requested URL gone Provide a valid URL. 413 Yes The target page returned 413 (payload too large) Check the URL; the page itself refused the request. 429 No Too many concurrent requests. Please upgrade your plan or contact sales. 500 No We could not scrape the page, or the target returned a status we do not pass through Retry; the response body carries the reason. Transparent HTTP status code transparent_status_code [ boolean ] ( false ) By default ScrapingBee reports its own status rather than the target's: any 2xx becomes 200, 404, 410 and 413 are passed through, and everything else becomes 500. Redirects are followed first, so this is the status at the end of the chain. So a 403 from an anti-bot page, a 401 from a paywall or a 503 from an overloaded site all reach you as a 500, not as their own code. A 500 from us is not billed. To get the same body and status code as the requested URL in any circumstances, use the transparent_status_code=true parameter. When this parameter is set to true: Anything the target returns below 500 is billed, since we no longer replace it with a 500. A 5xx is still free. We do not retry. Without the parameter a failed scrape is tried again on another proxy; with it you get the first attempt. Read 2026-09-08
Premium Proxy without JavaScript rendering 10 Read 2026-09-08
- Google HTML API: Premium Proxy with JavaScript rendering: 15 credits per request. HTML API targeting a Google URL, with the selected classic/premium and JavaScript settings. The target rate is unchanged when JavaScript is disabled. Excludes the separate Google Search API, stealth proxies, Auto-Mode, AI features and other add-ons. JavaScript is on by default; disable it for a no-rendering configuration. Counts billable responses, including 404, 410 and 413. Transparent status mode broadens billing to target responses below 500 and disables retries. Read 2026-09-09
Bandwidth and billing conditions
Response Status Code ScrapingBee returns the following HTTP status codes. These are ScrapingBee's own status codes, not the target page's. By default we do not forward the status the scraped site returned - see transparent HTTP status code for how the two relate, and for how to get the target's status instead. Code Billed? Meaning Solution 200 Yes Successful Call 400 No Bad request Incorrect parameters or parameters type. See the message in the response body. 401 No Out of credits, or an invalid API key Check the key, then upgrade your plan or contact sales. 403 No The account is banned, or the request was redirected to a blocked destination The response body says which. This is never the scraped page's own 403. 404 Yes Requested URL not found Provide a valid URL. 410 Yes Requested URL gone Provide a valid URL. 413 Yes The target page returned 413 (payload too large) Check the URL; the page itself refused the request. 429 No Too many concurrent requests. Please upgrade your plan or contact sales. 500 No We could not scrape the page, or the target returned a status we do not pass through Retry; the response body carries the reason. Transparent HTTP status code transparent_status_code [ boolean ] ( false ) By default ScrapingBee reports its own status rather than the target's: any 2xx becomes 200, 404, 410 and 413 are passed through, and everything else becomes 500. Redirects are followed first, so this is the status at the end of the chain. So a 403 from an anti-bot page, a 401 from a paywall or a 503 from an overloaded site all reach you as a 500, not as their own code. A 500 from us is not billed. To get the same body and status code as the requested URL in any circumstances, use the transparent_status_code=true parameter. When this parameter is set to true: Anything the target returns below 500 is billed, since we no longer replace it with a 500. A 5xx is still free. We do not retry. Without the parameter a failed scrape is tried again on another proxy; with it you get the first attempt. Read 2026-09-08
Premium Proxy with JavaScript rendering 25 Read 2026-09-08
Crawlbase
- Standard request: 1 credit per request. Standard site tier; excludes screenshots and storage. Counts billable responses under Crawlbase's status definition, including 404 and 410; excludes custom_success_codes overrides. Read 2026-09-08
Bandwidth and billing conditions
Billable requests Crawlbase only charges requests where cb_status is 200 and original_status is one of: Code Meaning 200 OK 201 Created 204 No Content 301 Moved Permanently 302 Found - only when the redirect was followed and returned content 404 Not Found 410 Gone Any other original_status is free, and so is any non- 200 cb_status. Use this list when reconciling a usage invoice against your application logs. Read 2026-09-09
Comma-separated list of HTTP status codes to treat as successful - e.g. custom_success_codes=403,429,503. Crawlbase won't retry these, and the original status is preserved in original_status. Use it when the target legitimately returns these codes for your endpoint (auth-gated APIs, region-blocked pages you still want the body of). Read 2026-09-09
- JavaScript rendering on a standard site: 2 credits per request. One standard-site credit multiplied by the stated rendering factor of two. Other site tiers cost more; screenshots and storage are excluded. Counts billable responses under Crawlbase's status definition, including 404 and 410; excludes custom_success_codes overrides. Scrolling is excluded: its processing time can count as multiple billed requests. Rendering price sources disagree: this estimate uses the pricing page's factor of two, while the endpoint introduction states the same price for both paths. Read 2026-09-08
Bandwidth and billing conditions
Billable requests Crawlbase only charges requests where cb_status is 200 and original_status is one of: Code Meaning 200 OK 201 Created 204 No Content 301 Moved Permanently 302 Found - only when the redirect was followed and returned content 404 Not Found 410 Gone Any other original_status is free, and so is any non- 200 cb_status. Use this list when reconciling a usage invoice against your application logs. Read 2026-09-09
Comma-separated list of HTTP status codes to treat as successful - e.g. custom_success_codes=403,429,503. Crawlbase won't retry these, and the original status is preserved in original_status. Use it when the target legitimately returns these codes for your endpoint (auth-gated APIs, region-blocked pages you still want the body of). Read 2026-09-09
How scroll is billed. Scroll-enabled requests are billed by total server-side processing time. The first 8 seconds (page load + scrolling combined) count as 1 request; every additional 5 seconds beyond that adds 1 more billed request. A 20s scroll = 1 (first 8s) + 1 (9-13s) + 1 (14-18s) + 1 (19-20s, partial blocks count in full) = 4 billed requests. If the page completes before scroll_interval, only the actual processing time is billed. Read 2026-09-09
The same endpoint covers all three. Pass only the parameters you need - there's no separate "JS-rendering API" or "anti-bot API". If you don't pass JS-token-only parameters, the request takes the cheap, fast path; the moment you do, the request shifts to the rendering path. Pricing is the same per successful response either way. Read 2026-09-09
Firecrawl
- Scrape: 1 credit per request. Basic Scrape endpoint per returned document, including target error pages such as 403 and 404. Excludes PDF parsing, JSON extraction, prompt-injection checks, Zero Data Retention, threat scans, FIRE-1 navigation, lockdown cache mode and X/Twitter URLs. These options and other endpoints have separate charges, including some failures without a document. Read 2026-09-08
Bandwidth and billing conditions
What decides the charge is whether Firecrawl returned a document, not whether the target site returned a successful HTTP status code. Firecrawl returned a document: 1 credit per page, plus any of the option costs above. This includes pages that come back with an error status such as 403 Forbidden or 404 Not Found. The target responded, Firecrawl captured that response, and you get it back as a document. Check the metadata.statusCode field in the response to spot these cases and stop retrying URLs that are consistently blocked. Firecrawl returned no document: 0 credits. A scrape that fails outright, for example because the site never responded or every rendering attempt failed, is not charged. A few cases still charge when no document comes back. They cover work that Firecrawl already performed on your behalf before the scrape ended. Case What is charged Threat protection scan 2 credits per scanned URL, including a scrape that the scan itself blocked Prompt injection check 5 credits, once the checkPromptInjection guard has run FIRE-1 agent Usage-based, for the navigation the agent already did lockdown cache miss 1 credit Monitor check A page that errors during a check is charged the base 1 credit per page Interact and Browser sessions Charged per browser minute of session time, with a one-minute minimum, whether or not the session got what you wanted Read 2026-09-09
Additional credit costs for scrape options Certain scrape options add credits on top of the base cost per page: Option Additional Cost Description PDF parsing +1 credit / PDF page Extract content from PDF documents JSON format (LLM extraction) +4 credits / page Use an LLM to extract structured JSON data from the page Prompt injection check +4 credits / page Opt-in checkPromptInjection guard for JSON format (see Prompt injection detection ). If the scrape fails after the check has run, 5 credits are billed. See When credits are charged. Zero Data Retention (ZDR) +1 credit / page Ensures no data is persisted beyond the request (see Scrape ZDR ) These modifiers stack. For example, scraping a page with both JSON format and Zero Data Retention costs 1 + 4 + 1 = 6 credits per page. These same modifiers apply to the Crawl and Search endpoints since they use scrape internally for each page. Requests to x.com and other X/Twitter URLs use the Grok API and have separate pricing. See X (x.com) billing at the bottom of this page. Read 2026-09-09
Questions
How much does a scraping API cost per 1,000 pages?
Choose a target, request configuration and monthly billed-request count. The calculator multiplies that count by the quoted credit cost, then selects the cheapest recorded purchase with enough credits. The effective rate includes credits you buy but do not use. Billed requests can include failures and early cancellations under the provider's policy.
Why is the cheapest monthly plan not the cheapest per page?
A plan's advertised rate assumes you use its whole allowance. A monthly purchase can include far more credits than your workload needs. The effective rate here divides the actual purchase by your requested pages, so those unused credits still count toward your cost.
Can I compare credit costs between scraping APIs?
Only when the request configuration has a quoted rate. JavaScript and premium proxies can cost different numbers of credits, and their combination can have its own price. Named targets use separately collected base rates. Unquoted protection charges, parameter combinations and other operations remain excluded. A missing target/configuration rate leaves that provider unpriced.
Is a scraping API cheaper than buying proxies?
It depends on page weight. A proxy bill is a function of bytes and a scraping API bill is a function of pages, so heavy pages favour the per-request product and light ones favour the per-gigabyte one. Work out what your pages actually weigh before comparing the two.
Prices on this page were read from each provider’s own site. The oldest was checked . How we check
