Cost estimate
- 2,000,000 pages/mo
- 20% JS
- medium anti-bot
- any country
- 10 concurrent
Pricing checked Sep 26, 2026 · engine 0.1.0 · cheapest plan that fits, per provider
Compare the three cheapest side by side →Managed scraping APIs
Proxies, retries and unblocking are handled for you; you pay per request or credit.
- ZenRows · Fetch (Universal Scraper API)
Credits · plan Scale S3
$999expected / month$912 – $1,199 range · $0.4995 per 1K pages
Sources:docs-pricingWhy not the other plans
- enterprise — price not public
- build-b1 — needs 10,275,000 more credit than the plan allows
- build-b2 — needs 10,240,000 more credit than the plan allows
- build-b3 — needs 10,200,000 more credit than the plan allows
- launch-l1 — needs 10,070,000 more credit than the plan allows
- launch-l2 — needs 9,820,000 more credit than the plan allows
- launch-l3 — needs 9,620,000 more credit than the plan allows
- growth-g1 — needs 9,120,000 more credit than the plan allows
- growth-g2 — needs 8,320,000 more credit than the plan allows
- growth-g3 — needs 7,320,000 more credit than the plan allows
- scale-s1 — needs 5,320,000 more credit than the plan allows
- Zyte · Zyte API
Per successful request · plan $500 monthly commitment
$1,104expected / month$560 – $2,080 range · $0.552 per 1K pages
Sources:pricingWhy not the other plans
- enterprise — price not public
- payg — usage $2,312.00 exceeds the $100.00 spending limit
- commit-100 — usage $1,728.00 exceeds the $200.00 spending limit
- commit-200 — usage $1,376.00 exceeds the $400.00 spending limit
- commit-350 — no published rates for this plan
- ScraperAPI · ScraperAPI
Credits · plan Advanced
$1,975expected / month$1,975 – $1,975 range · $0.9875 per 1K pages
Why not the other plans
- enterprise — price not public
- hobby — needs 17,620,000 more credit than the plan allows
- startup — needs 16,720,000 more credit than the plan allows
- business — needs 14,720,000 more credit than the plan allows
- scaling — needs 12,720,000 more credit than the plan allows
- professional — needs 7,220,000 more credit than the plan allows
- Bright Data · Web Unlocker API
Per successful request · plan Scale $1,999
$1,999expected / month$1,999 – $1,999 range · $0.9995 per 1K pages
Sources:unlocker-pricingWhy not the other plans
- enterprise — price not public
- Oxylabs · Web Unblocker
Per GB of traffic · plan Corporate
$4,800expected / month$4,800 – $4,800 range · $2.40 per 1K pages
Sources:wu-pricingWhy not the other plans
- micro — needs 952 more gb than the plan allows
- starter — needs 922 more gb than the plan allows
- advanced — needs 872 more gb than the plan allows
- venture — needs 832 more gb than the plan allows
Self-managed infrastructure
You run the crawler and handle anti-bot yourself; costs depend more on assumptions.
- Apify · Apify Platform
Compute units · plan Business
$2,682expected / month$1,879 – $3,980 range · $1.34 per 1K pages
Sources:pricingusage-docsWhy not the other plans
- enterprise — price not public
- free — needs 3,264 more usd than the plan allows
- Browserless · Browserless Cloud (BaaS, BrowserQL, REST APIs)
Browser time · plan Scale
$9,944expected / month$7,296 – $14,205 range · $4.97 per 1K pages
Sources:pricingpricing-bundleWhy not the other plans
- free — concurrency 2 < 10
- prototyping — concurrency 5 < 10
- enterprise — price not public
Can't be priced for this workload
No published plan fits, or the rates needed are not public. Nothing here is guessed.
Oxylabs · Web Scraper API
- custom-plus — price not public
- micro — needs 2,331 more usd than the plan allows
- starter — needs 2,181 more usd than the plan allows
- business — needs 601 more usd than the plan allows
ScrapingBee · Web Scraping API
- hobby — needs 10,245,000 more credit than the plan allows
- freelance — needs 10,070,000 more credit than the plan allows
- startup — needs 9,320,000 more credit than the plan allows
- business — needs 7,320,000 more credit than the plan allows
- business-plus — needs 2,320,000 more credit than the plan allows
Estimates use list prices and exclude promotions and taxes. Prices change; the provider's checkout is authoritative. Links may earn ScrapeSelect a commission, which never affects the order.
JSON and API request
The same estimate from the API:
curl -X POST https://scrapeselect.com/api/v1/estimate \
-H 'content-type: application/json' \
-d '{"workload":{"successful_pages_per_month":2000000,"javascript_ratio":0.2,"anti_bot_level":"medium","target_country":null,"country_required":false,"peak_concurrency":10,"monthly_billing_only":false,"expected_success_rate":null,"average_page_size_kb":null,"average_browser_seconds":null}}'{
"workload": {
"successful_pages_per_month": 2000000,
"javascript_ratio": "0.2",
"anti_bot_level": "medium",
"target_country": null,
"country_required": false,
"domain_class": null,
"peak_concurrency": 10,
"monthly_billing_only": false,
"expected_success_rate": null,
"average_page_size_kb": null,
"average_browser_seconds": null
},
"assumptions": [
{
"key": "success_rate",
"label": "Success rate",
"value": "97% / 93% / 88%",
"origin": "default",
"note": "Low / expected / high scenario for medium anti-bot targets. Only changes cost where failed attempts are billed."
},
{
"key": "protected_share",
"label": "Pages needing premium proxies",
"value": "20% / 30% / 45%",
"origin": "editorial",
"note": "Share of pages behind anti-bot protection for medium targets."
},
{
"key": "difficulty_tier",
"label": "Website difficulty tier",
"value": "2 / 3 / 4",
"origin": "editorial",
"note": "Only used by providers that price by site tier (e.g. Zyte); their own estimator gives the real tier."
},
{
"key": "page_size_kb",
"label": "Average page size",
"value": "300 KB",
"origin": "default",
"note": "Drives cost for traffic-billed products and proxy traffic."
},
{
"key": "browser_traffic_multiplier",
"label": "Browser page traffic",
"value": "4x the HTML size",
"origin": "editorial",
"note": "Rendered pages also load scripts, styles and images."
},
{
"key": "browser_seconds",
"label": "Browser time per rendered page",
"value": "10 s",
"origin": "default",
"note": null
},
{
"key": "compute_units",
"label": "Compute per 1,000 pages",
"value": "0.8 CU (HTTP), 6 CU (browser)",
"origin": "public_observation",
"note": "From Apify's Website Content Crawler README (0.8 CU HTTP, 2-20 CU browser)."
}
],
"estimates": [
{
"provider": "zenrows",
"provider_name": "ZenRows",
"product": "fetch",
"product_name": "Fetch (Universal Scraper API)",
"category": "scraping_api",
"billing_model": "credit",
"architecture": "managed_api",
"feasible": true,
"low": {
"plan_key": "scale-s2",
"plan_name": "Scale S2",
"monthly_cost_usd": 912,
"cost_per_1k_pages_usd": 0.456
},
"expected": {
"plan_key": "scale-s3",
"plan_name": "Scale S3",
"monthly_cost_usd": 999,
"cost_per_1k_pages_usd": 0.4995
},
"high": {
"plan_key": "scale-s3",
"plan_name": "Scale S3",
"monthly_cost_usd": 1199,
"cost_per_1k_pages_usd": 0.5995
},
"rejected_plans": {
"enterprise": "price not public",
"build-b1": "needs 10,275,000 more credit than the plan allows",
"build-b2": "needs 10,240,000 more credit than the plan allows",
"build-b3": "needs 10,200,000 more credit than the plan allows",
"launch-l1": "needs 10,070,000 more credit than the plan allows",
"launch-l2": "needs 9,820,000 more credit than the plan allows",
"launch-l3": "needs 9,620,000 more credit than the plan allows",
"growth-g1": "needs 9,120,000 more credit than the plan allows",
"growth-g2": "needs 8,320,000 more credit than the plan allows",
"growth-g3": "needs 7,320,000 more credit than the plan allows",
"scale-s1": "needs 5,320,000 more credit than the plan allows"
},
"sources": [
{
"key": "docs-pricing",
"url": "https://docs.zenrows.com/first-steps/pricing",
"title": "ZenRows pricing docs",
"observed_at": "2026-09-26T06:10:04.146951Z",
"excerpts": [
"These credit weights are fixed and never change … on every plan",
"JS Rendering + Premium Proxies (protected) | 25",
"Rollover = unused monthly plan credits carry into the next billing period, once",
"Does Zenrows offer Pay-As-You-Go plans? Not as a standalone option today",
"your full year's credit allowance up front, as a single balance you draw down anytime over the year",
"Residential Proxies, used standalone, meter at a flat 25,000 credits per GB"
],
"fact_type": "official_claim",
"freshness": "fresh"
}
]
},
{
"provider": "zyte",
"provider_name": "Zyte",
"product": "zyte-api",
"product_name": "Zyte API",
"category": "scraping_api",
"billing_model": "per_successful_request",
"architecture": "managed_api",
"feasible": true,
"low": {
"plan_key": "commit-500",
"plan_name": "$500 monthly commitment",
"monthly_cost_usd": 560,
"cost_per_1k_pages_usd": 0.28
},
"expected": {
"plan_key": "commit-500",
"plan_name": "$500 monthly commitment",
"monthly_cost_usd": 1104,
"cost_per_1k_pages_usd": 0.552
},
"high": {
"plan_key": "commit-500",
"plan_name": "$500 monthly commitment",
"monthly_cost_usd": 2080,
"cost_per_1k_pages_usd": 1.04
},
"rejected_plans": {
"enterprise": "price not public",
"payg": "usage $2,312.00 exceeds the $100.00 spending limit",
"commit-100": "usage $1,728.00 exceeds the $200.00 spending limit",
"commit-200": "usage $1,376.00 exceeds the $400.00 spending limit",
"commit-350": "no published rates for this plan"
},
"sources": [
{
"key": "pricing",
"url": "https://www.zyte.com/pricing/",
"title": "Zyte API pricing",
"observed_at": "2026-09-26T06:10:04.146951Z",
"excerpts": [
"Websites are priced in five tiers, with datacenter, residential, rendering and more included in one automated API – you're charged only for what's needed.",
"1 Simple $0.13 · 2 Easy $0.23 · 3 Moderate $0.44 · 4 Complex $0.70 · 5 Advanced $1.27",
"Browser rendered: $1.01 … $2.01 … $4.02 … $8.04 … $16.08",
"Try Zyte API with $5 free credit",
"No overage penalties: If you exceed your minimum commitment, you're only charged at your current discounted rate—never an additional fee.",
"Add a website URL above to see prices for your specific site."
],
"fact_type": "official_claim",
"freshness": "fresh"
}
]
},
{
"provider": "scraperapi",
"provider_name": "ScraperAPI",
"product": "scraping-api",
"product_name": "ScraperAPI",
"category": "scraping_api",
"billing_model": "credit",
"architecture": "managed_api",
"feasible": true,
"low": {
"plan_key": "advanced",
"plan_name": "Advanced",
"monthly_cost_usd": 1975,
"cost_per_1k_pages_usd": 0.9875
},
"expected": {
"plan_key": "advanced",
"plan_name": "Advanced",
"monthly_cost_usd": 1975,
"cost_per_1k_pages_usd": 0.9875
},
"high": null,
"rejected_plans": {
"enterprise": "price not public",
"hobby": "needs 17,620,000 more credit than the plan allows",
"startup": "needs 16,720,000 more credit than the plan allows",
"business": "needs 14,720,000 more credit than the plan allows",
"scaling": "needs 12,720,000 more credit than the plan allows",
"professional": "needs 7,220,000 more credit than the plan allows"
},
"sources": [
{
"key": "credits",
"url": "https://docs.scraperapi.com/getting-started/quick-start/credits-and-requests-costs",
"title": "Credits and request costs",
"observed_at": "2026-09-25T06:10:05.286194Z",
"excerpts": [
"premium=true - 10 … render=true - 10 … scrensshot=true - 10 … ultra_premium=true - 30* … premium=true + render=true - 25 … ultra_premium=true + render=true - 75*",
"E-Commerce Amazon, Walmart, eBay 5 · SERP Google, Bing - (applies to all subdomains) 25 · Social Media LinkedIn 30",
"Cloudflare Bypass 10 … Datadome Bypass 10 … PerimeterX/Human Bypass 10",
"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)."
],
"fact_type": "official_claim",
"freshness": "recent"
},
{
"key": "premium",
"url": "https://docs.scraperapi.com/control-and-optimization/premium-residential-mobile-proxy-pools",
"title": "Premium residential and mobile proxy pools",
"observed_at": "2026-09-26T06:10:04.146951Z",
"excerpts": [
"both javascript rendering and our premium proxy pools will be charged at 25 times the normal rate",
"These two parameters are mutually exclusive"
],
"fact_type": "official_claim",
"freshness": "fresh"
},
{
"key": "pricing",
"url": "https://www.scraperapi.com/pricing/",
"title": "ScraperAPI pricing",
"observed_at": "2026-09-26T06:10:04.146951Z",
"excerpts": [
"Monthly / Yearly 10% off",
"Hobby … $49 /month $44.10 /month billed annually … 100,000 API Credits 20 Concurrent Threads Geotargeting: US & EU only",
"A standard page costs 1 credit. Amazon costs 5, Google and Bing (including their subdomains) cost 25, and LinkedIn costs 30. Sites behind bot protection like Cloudflare, Datadome, or PerimeterX add 10 credits per request when we bypass them.",
"Pay-As-You-Go is available on our Scaling, Professional, Advanced, and Enterprise plans.",
"you'll get a 429 response … There's no extra charge for going over",
"Start collecting data with our 7-day trial and 5,000 API credits. No credit card required."
],
"fact_type": "official_claim",
"freshness": "fresh"
}
]
},
{
"provider": "bright-data",
"provider_name": "Bright Data",
"product": "web-unlocker",
"product_name": "Web Unlocker API",
"category": "web_unlocker",
"billing_model": "per_successful_request",
"architecture": "managed_api",
"feasible": true,
"low": {
"plan_key": "scale-1999",
"plan_name": "Scale $1,999",
"monthly_cost_usd": 1999,
"cost_per_1k_pages_usd": 0.9995
},
"expected": {
"plan_key": "scale-1999",
"plan_name": "Scale $1,999",
"monthly_cost_usd": 1999,
"cost_per_1k_pages_usd": 0.9995
},
"high": {
"plan_key": "scale-1999",
"plan_name": "Scale $1,999",
"monthly_cost_usd": 1999,
"cost_per_1k_pages_usd": 0.9995
},
"rejected_plans": {
"enterprise": "price not public"
},
"sources": [
{
"key": "unlocker-pricing",
"url": "https://brightdata.com/pricing/web-unlocker",
"title": "Web Unlocker pricing",
"observed_at": "2026-09-26T06:10:04.146951Z",
"excerpts": [
"Free Tier | 5K requests per month | No credit card required",
"Pay as you go | $1.5 /1K requests | Pay only for success | Set monthly spend limits | Unlimited concurrency",
"Scale | $499 /month | Slide to adjust plan | 383K requests included | $1.3/1K additional requests | Cancel anytime",
"data-tiers: {\"price\":999,\"records\":\"908K\",\"rate\":1.1} {\"price\":1999,\"records\":\"2M\",\"rate\":1}"
],
"fact_type": "official_claim",
"freshness": "fresh"
}
]
},
{
"provider": "apify",
"provider_name": "Apify",
"product": "platform",
"product_name": "Apify Platform",
"category": "scraping_platform",
"billing_model": "compute_unit",
"architecture": "self_managed",
"feasible": true,
"low": {
"plan_key": "business",
"plan_name": "Business",
"monthly_cost_usd": 1878.76,
"cost_per_1k_pages_usd": 0.9394
},
"expected": {
"plan_key": "business",
"plan_name": "Business",
"monthly_cost_usd": 2682.15,
"cost_per_1k_pages_usd": 1.3411
},
"high": {
"plan_key": "business",
"plan_name": "Business",
"monthly_cost_usd": 3980,
"cost_per_1k_pages_usd": 1.99
},
"rejected_plans": {
"enterprise": "price not public",
"free": "needs 3,264 more usd than the plan allows"
},
"sources": [
{
"key": "pricing",
"url": "https://apify.com/pricing",
"title": "Apify pricing",
"observed_at": "2026-09-26T06:10:04.146951Z",
"excerpts": [
"Starter $19 / month + pay as you go $19 to spend in Apify Store or on your own Actors $0.2 per compute unit",
"Compute units (CU) 1 GB of RAM/hour $0.2 / CU $0.2 / CU $0.16 / CU $0.13 / CU Custom Actor RAM 16 GB 64 GB 256 GB 512 GB Custom Max concurrent runs 5 32 128 256 Custom",
"Residential proxies $8 / GB $8 / GB $7.5 / GB $7 / GB Custom",
"Unblocker $1.5 / 1,000 requests $1.5 / 1,000 requests $1.25 / 1,000 requests $1 / 1,000 requests",
"Bill monthly -10% Bill annually",
"If you're a paying user, you can continue using the platform and will be charged for overage until you reach the usage limit configured in the billing. If you're on the free plan, you'll be blocked until the next billing cycle.",
"If you don't consume all your prepaid usage, it disappears at the end of the billing cycle."
],
"fact_type": "official_claim",
"freshness": "fresh"
},
{
"key": "usage-docs",
"url": "https://docs.apify.com/platform/actors/running/usage-and-resources",
"title": "Usage and resources",
"observed_at": "2026-09-26T06:10:04.146951Z",
"excerpts": [
"running an Actor with 1024MB of allocated memory for 1 hour will consume 1 CU",
"The minimum granularity is a second."
],
"fact_type": "official_claim",
"freshness": "fresh"
}
]
},
{
"provider": "oxylabs",
"provider_name": "Oxylabs",
"product": "web-unblocker",
"product_name": "Web Unblocker",
"category": "web_unlocker",
"billing_model": "bandwidth",
"architecture": "managed_api",
"feasible": true,
"low": {
"plan_key": "corporate",
"plan_name": "Corporate",
"monthly_cost_usd": 4800,
"cost_per_1k_pages_usd": 2.4
},
"expected": {
"plan_key": "corporate",
"plan_name": "Corporate",
"monthly_cost_usd": 4800,
"cost_per_1k_pages_usd": 2.4
},
"high": {
"plan_key": "corporate",
"plan_name": "Corporate",
"monthly_cost_usd": 4800,
"cost_per_1k_pages_usd": 2.4
},
"rejected_plans": {
"micro": "needs 952 more gb than the plan allows",
"starter": "needs 922 more gb than the plan allows",
"advanced": "needs 872 more gb than the plan allows",
"venture": "needs 832 more gb than the plan allows"
},
"sources": [
{
"key": "wu-pricing",
"url": "https://oxylabs.io/products/web-unblocker/pricing",
"title": "Web Unblocker pricing",
"observed_at": "2026-09-26T06:10:04.146951Z",
"excerpts": [
"Micro {\"quantity\":8,\"rate\":5.64,\"monthly_price\":45,\"original_rate\":9.4,\"original_monthly_price\":75}",
"Corporate {\"quantity\":700,\"rate\":3,\"monthly_price\":2100,\"original_rate\":5,\"original_monthly_price\":3500}",
"Use coupon code: WU40"
],
"fact_type": "official_claim",
"freshness": "fresh"
}
]
},
{
"provider": "browserless",
"provider_name": "Browserless",
"product": "browser-cloud",
"product_name": "Browserless Cloud (BaaS, BrowserQL, REST APIs)",
"category": "browser_api",
"billing_model": "browser_time",
"architecture": "self_managed",
"feasible": true,
"low": {
"plan_key": "scale",
"plan_name": "Scale",
"monthly_cost_usd": 7296.39,
"cost_per_1k_pages_usd": 3.6482
},
"expected": {
"plan_key": "scale",
"plan_name": "Scale",
"monthly_cost_usd": 9943.55,
"cost_per_1k_pages_usd": 4.9718
},
"high": {
"plan_key": "scale",
"plan_name": "Scale",
"monthly_cost_usd": 14204.55,
"cost_per_1k_pages_usd": 7.1023
},
"rejected_plans": {
"free": "concurrency 2 < 10",
"prototyping": "concurrency 5 < 10",
"enterprise": "price not public"
},
"sources": [
{
"key": "pricing",
"url": "https://www.browserless.io/pricing",
"title": "Browserless pricing",
"observed_at": "2026-09-26T06:10:04.146951Z",
"excerpts": [
"Prototyping $25 /month billed annually 10 max concurrent browsers + 5 … 20k units per month 15 min. max session time $0.0020 per unit overages",
"Starter $140 /month billed annually 40 max concurrent browsers + 10 … 180k units per month 30 min. max session time $0.0017 per unit overages",
"Scale $350 /month billed annually 100 max concurrent browsers + 20 … 500k units per month 60 min. max session time $0.0015 per unit overages",
"A 'Unit' is a block of browser time of up to 30 seconds per browser connection… Session-reconnects count as new browser connections and incur a fresh Unit charge.",
"6 Units per MB for Residential Proxy 2 Units per MB for Datacenter Proxy 10 Units per successful Captcha solve",
"Annual billing saves 30% and includes additional concurrency on the Prototyping, Starter, and Scale plans."
],
"fact_type": "official_claim",
"freshness": "fresh"
},
{
"key": "pricing-bundle",
"url": "https://www.browserless.io/_next/static/chunks/pages/pricing-7f2dc67704ee3259.js",
"title": "Browserless pricing page data (monthly toggle)",
"observed_at": "2026-09-25T06:10:05.286194Z",
"excerpts": [
"prototyping:{... calls:2e4, monthlyConcurrency:5, yearlyConcurrency:10, monthlyPrice:35, yearlyPrice:25 ...}",
"starter:{calls:18e4, monthlyConcurrency:30, yearlyConcurrency:40, monthlyPrice:200, yearlyPrice:140}",
"scale:{calls:5e5, monthlyConcurrency:80, yearlyConcurrency:100, monthlyPrice:500, yearlyPrice:350}"
],
"fact_type": "official_claim",
"freshness": "recent"
}
]
},
{
"provider": "oxylabs",
"provider_name": "Oxylabs",
"product": "web-scraper-api",
"product_name": "Web Scraper API",
"category": "scraping_api",
"billing_model": "per_successful_request",
"architecture": "managed_api",
"feasible": false,
"low": null,
"expected": null,
"high": null,
"rejected_plans": {
"custom-plus": "price not public",
"micro": "needs 2,331 more usd than the plan allows",
"starter": "needs 2,181 more usd than the plan allows",
"business": "needs 601 more usd than the plan allows"
},
"sources": []
},
{
"provider": "scrapingbee",
"provider_name": "ScrapingBee",
"product": "web-scraping-api",
"product_name": "Web Scraping API",
"category": "scraping_api",
"billing_model": "credit",
"architecture": "managed_api",
"feasible": false,
"low": null,
"expected": null,
"high": null,
"rejected_plans": {
"hobby": "needs 10,245,000 more credit than the plan allows",
"freelance": "needs 10,070,000 more credit than the plan allows",
"startup": "needs 9,320,000 more credit than the plan allows",
"business": "needs 7,320,000 more credit than the plan allows",
"business-plus": "needs 2,320,000 more credit than the plan allows"
},
"sources": []
}
],
"engine_version": "0.1.0",
"meta": {
"data_checked_at": "2026-09-26T06:10:04.146951Z",
"freshness": "fresh",
"schema_version": "1.0"
}
}