Cost estimate
- 5,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.
- Bright Data · Web Unlocker API
Per successful request · plan Scale $1,999
$4,999expected / month$4,999 – $4,999 range · $0.9998 per 1K pages
Sources:unlocker-pricingWhy not the other plans
- enterprise — price not public
Self-managed infrastructure
You run the crawler and handle anti-bot yourself; costs depend more on assumptions.
- Apify · Apify Platform
Compute units · plan Business
$6,705expected / month$4,697 – $9,950 range · $1.34 per 1K pages
Sources:pricingusage-docsWhy not the other plans
- enterprise — price not public
- free — needs 8,167 more usd than the plan allows
- Browserless · Browserless Cloud (BaaS, BrowserQL, REST APIs)
Browser time · plan Scale
$25,234expected / month$18,616 – $35,886 range · $5.05 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 5,901 more usd than the plan allows
- starter — needs 5,601 more usd than the plan allows
- business — needs 3,001 more usd than the plan allows
Oxylabs · Web Unblocker
- micro — needs 2,392 more gb than the plan allows
- starter — needs 2,362 more gb than the plan allows
- advanced — needs 2,312 more gb than the plan allows
- venture — needs 2,272 more gb than the plan allows
- business — needs 2,067 more gb than the plan allows
- corporate — needs 1,700 more gb than the plan allows
ScraperAPI · ScraperAPI
- enterprise — price not public
- hobby — needs 44,200,000 more credit than the plan allows
- startup — needs 43,300,000 more credit than the plan allows
- business — needs 41,300,000 more credit than the plan allows
- scaling — needs 39,300,000 more credit than the plan allows
- professional — needs 33,800,000 more credit than the plan allows
- advanced — needs 22,800,000 more credit than the plan allows
ScrapingBee · Web Scraping API
- hobby — needs 25,725,000 more credit than the plan allows
- freelance — needs 25,550,000 more credit than the plan allows
- startup — needs 24,800,000 more credit than the plan allows
- business — needs 22,800,000 more credit than the plan allows
- business-plus — needs 17,800,000 more credit than the plan allows
ZenRows · Fetch (Universal Scraper API)
- enterprise — price not public
- build-b1 — needs 25,755,000 more credit than the plan allows
- build-b2 — needs 25,720,000 more credit than the plan allows
- build-b3 — needs 25,680,000 more credit than the plan allows
- launch-l1 — needs 25,550,000 more credit than the plan allows
- launch-l2 — needs 25,300,000 more credit than the plan allows
- launch-l3 — needs 25,100,000 more credit than the plan allows
- growth-g1 — needs 24,600,000 more credit than the plan allows
- growth-g2 — needs 23,800,000 more credit than the plan allows
- growth-g3 — needs 22,800,000 more credit than the plan allows
- scale-s1 — needs 20,800,000 more credit than the plan allows
- scale-s2 — needs 17,800,000 more credit than the plan allows
- scale-s3 — needs 13,300,000 more credit than the plan allows
Zyte · Zyte API
- enterprise — price not public
- payg — usage $5,780.00 exceeds the $100.00 spending limit
- commit-100 — usage $4,320.00 exceeds the $200.00 spending limit
- commit-200 — usage $3,440.00 exceeds the $400.00 spending limit
- commit-350 — no published rates for this plan
- commit-500 — usage $2,760.00 exceeds the $2,500.00 spending limit
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":5000000,"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": 5000000,
"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": "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": 4999,
"cost_per_1k_pages_usd": 0.9998
},
"expected": {
"plan_key": "scale-1999",
"plan_name": "Scale $1,999",
"monthly_cost_usd": 4999,
"cost_per_1k_pages_usd": 0.9998
},
"high": {
"plan_key": "scale-1999",
"plan_name": "Scale $1,999",
"monthly_cost_usd": 4999,
"cost_per_1k_pages_usd": 0.9998
},
"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": 4696.91,
"cost_per_1k_pages_usd": 0.9394
},
"expected": {
"plan_key": "business",
"plan_name": "Business",
"monthly_cost_usd": 6705.38,
"cost_per_1k_pages_usd": 1.3411
},
"high": {
"plan_key": "business",
"plan_name": "Business",
"monthly_cost_usd": 9950,
"cost_per_1k_pages_usd": 1.99
},
"rejected_plans": {
"enterprise": "price not public",
"free": "needs 8,167 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": "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": 18615.98,
"cost_per_1k_pages_usd": 3.7232
},
"expected": {
"plan_key": "scale",
"plan_name": "Scale",
"monthly_cost_usd": 25233.87,
"cost_per_1k_pages_usd": 5.0468
},
"high": {
"plan_key": "scale",
"plan_name": "Scale",
"monthly_cost_usd": 35886.36,
"cost_per_1k_pages_usd": 7.1773
},
"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 5,901 more usd than the plan allows",
"starter": "needs 5,601 more usd than the plan allows",
"business": "needs 3,001 more usd than the plan allows"
},
"sources": []
},
{
"provider": "oxylabs",
"provider_name": "Oxylabs",
"product": "web-unblocker",
"product_name": "Web Unblocker",
"category": "web_unlocker",
"billing_model": "bandwidth",
"architecture": "managed_api",
"feasible": false,
"low": null,
"expected": null,
"high": null,
"rejected_plans": {
"micro": "needs 2,392 more gb than the plan allows",
"starter": "needs 2,362 more gb than the plan allows",
"advanced": "needs 2,312 more gb than the plan allows",
"venture": "needs 2,272 more gb than the plan allows",
"business": "needs 2,067 more gb than the plan allows",
"corporate": "needs 1,700 more gb than the plan allows"
},
"sources": []
},
{
"provider": "scraperapi",
"provider_name": "ScraperAPI",
"product": "scraping-api",
"product_name": "ScraperAPI",
"category": "scraping_api",
"billing_model": "credit",
"architecture": "managed_api",
"feasible": false,
"low": null,
"expected": null,
"high": null,
"rejected_plans": {
"enterprise": "price not public",
"hobby": "needs 44,200,000 more credit than the plan allows",
"startup": "needs 43,300,000 more credit than the plan allows",
"business": "needs 41,300,000 more credit than the plan allows",
"scaling": "needs 39,300,000 more credit than the plan allows",
"professional": "needs 33,800,000 more credit than the plan allows",
"advanced": "needs 22,800,000 more credit 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 25,725,000 more credit than the plan allows",
"freelance": "needs 25,550,000 more credit than the plan allows",
"startup": "needs 24,800,000 more credit than the plan allows",
"business": "needs 22,800,000 more credit than the plan allows",
"business-plus": "needs 17,800,000 more credit than the plan allows"
},
"sources": []
},
{
"provider": "zenrows",
"provider_name": "ZenRows",
"product": "fetch",
"product_name": "Fetch (Universal Scraper API)",
"category": "scraping_api",
"billing_model": "credit",
"architecture": "managed_api",
"feasible": false,
"low": null,
"expected": null,
"high": null,
"rejected_plans": {
"enterprise": "price not public",
"build-b1": "needs 25,755,000 more credit than the plan allows",
"build-b2": "needs 25,720,000 more credit than the plan allows",
"build-b3": "needs 25,680,000 more credit than the plan allows",
"launch-l1": "needs 25,550,000 more credit than the plan allows",
"launch-l2": "needs 25,300,000 more credit than the plan allows",
"launch-l3": "needs 25,100,000 more credit than the plan allows",
"growth-g1": "needs 24,600,000 more credit than the plan allows",
"growth-g2": "needs 23,800,000 more credit than the plan allows",
"growth-g3": "needs 22,800,000 more credit than the plan allows",
"scale-s1": "needs 20,800,000 more credit than the plan allows",
"scale-s2": "needs 17,800,000 more credit than the plan allows",
"scale-s3": "needs 13,300,000 more credit than the plan allows"
},
"sources": []
},
{
"provider": "zyte",
"provider_name": "Zyte",
"product": "zyte-api",
"product_name": "Zyte API",
"category": "scraping_api",
"billing_model": "per_successful_request",
"architecture": "managed_api",
"feasible": false,
"low": {
"plan_key": "commit-500",
"plan_name": "$500 monthly commitment",
"monthly_cost_usd": 1400,
"cost_per_1k_pages_usd": 0.28
},
"expected": null,
"high": null,
"rejected_plans": {
"enterprise": "price not public",
"payg": "usage $5,780.00 exceeds the $100.00 spending limit",
"commit-100": "usage $4,320.00 exceeds the $200.00 spending limit",
"commit-200": "usage $3,440.00 exceeds the $400.00 spending limit",
"commit-350": "no published rates for this plan",
"commit-500": "usage $2,760.00 exceeds the $2,500.00 spending limit"
},
"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"
}
]
}
],
"engine_version": "0.1.0",
"meta": {
"data_checked_at": "2026-09-26T06:10:04.146951Z",
"freshness": "fresh",
"schema_version": "1.0"
}
}