Bright Data vs Apify
- 500,000 pages/mo
- 20% JS
- medium anti-bot
- United States
- 40 concurrent
- monthly billing
- Example workload — edit it below
Pricing checked Nov 14, 2026 · engine 0.1.0 · cheapest plan that fits, per product
| Product | Bright Data · Web Unlocker API Web Unlocker · Per successful request | Apify · Apify Platform Scraping platform · Compute units |
|---|---|---|
| Expected monthly costFor this workload | ||
| Capabilities | ||
| JavaScript rendering | Yesunlocker-features | Yesusage-docs |
| Premium proxy | Yesunlocker-pricing | Not documented |
| Country targeting | Yesunlocker-features | Yesresidential-docs |
| City targeting | Nounlocker-features | Not documented |
| Cookie persistence | Nounlocker-features | Not documented |
| Unlimited concurrency | Yesunlocker-pricing | Not documented |
| Residential proxy | Not documented | Yesresidential-docs |
| Sticky session | Not documented | Yesresidential-docs |
| Self managed code | Not documented | Yespricing |
| Limits | ||
| Max concurrent runs | Not documented | |
| Things to know |
|
|
| Evidence | Sources and check dates → | Sources and check dates → |
“Not documented” means the provider's pages don't say — not that the capability is missing. Estimates use list prices and exclude promotions and taxes; the provider's checkout is authoritative.
JSON and API request
The same comparison from the API:
curl -X POST https://scrapeselect.com/api/v1/compare \
-H 'content-type: application/json' \
-d '{"products":["bright-data/web-unlocker","apify/platform"],"workload":{"successful_pages_per_month":500000,"javascript_ratio":0.2,"anti_bot_level":"medium","target_country":"US","country_required":true,"peak_concurrency":40,"monthly_billing_only":true,"expected_success_rate":null,"average_page_size_kb":null,"average_browser_seconds":null}}'{
"products": [
{
"estimate": {
"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-499",
"plan_name": "Scale $499",
"monthly_cost_usd": 651.1,
"cost_per_1k_pages_usd": 1.3022
},
"expected": {
"plan_key": "scale-499",
"plan_name": "Scale $499",
"monthly_cost_usd": 651.1,
"cost_per_1k_pages_usd": 1.3022
},
"high": {
"plan_key": "scale-499",
"plan_name": "Scale $499",
"monthly_cost_usd": 651.1,
"cost_per_1k_pages_usd": 1.3022
},
"rejected_plans": {
"enterprise": "price not public"
},
"sources": [
{
"key": "unlocker-pricing",
"url": "https://brightdata.com/pricing/web-unlocker",
"title": "Web Unlocker pricing",
"observed_at": "2026-11-14T06:10:04.383306Z",
"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"
}
]
},
"features": [
{
"key": "javascript-rendering",
"label": "JavaScript rendering",
"value": true,
"notes": null,
"source": "unlocker-features"
},
{
"key": "premium-proxy",
"label": "Premium proxy",
"value": true,
"notes": "Proxy selection is automatic.",
"source": "unlocker-pricing"
},
{
"key": "country-targeting",
"label": "Country targeting",
"value": true,
"notes": null,
"source": "unlocker-features"
},
{
"key": "city-targeting",
"label": "City targeting",
"value": false,
"notes": "City/ZIP only documented for Amazon.",
"source": "unlocker-features"
},
{
"key": "cookie-persistence",
"label": "Cookie persistence",
"value": false,
"notes": "Cookies may not be used for login or authentication; custom cookies need approval and make every request billable.",
"source": "unlocker-features"
},
{
"key": "unlimited-concurrency",
"label": "Unlimited concurrency",
"value": true,
"notes": null,
"source": "unlocker-pricing"
}
],
"limits": [],
"notes": [
"JS rendering and proxy selection are included in the per-request price; no surcharge is published.",
"Enabling custom headers, cookies or 'expect' makes 100% of requests billable, including failures.",
"Premium domains, a quarterly-updated list of hard sites, cost more when 'Premium Domains' is enabled on the zone. The docs had marked this deprecated on 20 May 2026 and describe it again since October 2026; the premium rate isn't published, so estimates use the standard rate.",
"The Scale plan is a slider with three price points; its rate is both the effective and the overage price.",
"Temporary promos (deposit match up to $500) are not included."
],
"url": "/products/bright-data/web-unlocker"
},
{
"estimate": {
"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": "scale",
"plan_name": "Scale",
"monthly_cost_usd": 522.89,
"cost_per_1k_pages_usd": 1.0458
},
"expected": {
"plan_key": "scale",
"plan_name": "Scale",
"monthly_cost_usd": 738.92,
"cost_per_1k_pages_usd": 1.4778
},
"high": {
"plan_key": "business",
"plan_name": "Business",
"monthly_cost_usd": 999,
"cost_per_1k_pages_usd": 1.998
},
"rejected_plans": {
"enterprise": "price not public",
"free": "needs 812 more usd than the plan allows"
},
"sources": [
{
"key": "pricing",
"url": "https://apify.com/pricing",
"title": "Apify pricing",
"observed_at": "2026-11-14T06:10:04.383306Z",
"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-11-14T06:10:04.383306Z",
"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"
}
]
},
"features": [
{
"key": "javascript-rendering",
"label": "JavaScript rendering",
"value": true,
"notes": "Via browser-based Actors.",
"source": "usage-docs"
},
{
"key": "residential-proxy",
"label": "Residential proxy",
"value": true,
"notes": null,
"source": "residential-docs"
},
{
"key": "country-targeting",
"label": "Country targeting",
"value": true,
"notes": null,
"source": "residential-docs"
},
{
"key": "sticky-session",
"label": "Sticky session",
"value": true,
"notes": null,
"source": "residential-docs"
},
{
"key": "self-managed-code",
"label": "Self managed code",
"value": true,
"notes": "You build or pick an Actor; anti-bot handling is your responsibility.",
"source": "pricing"
}
],
"limits": [
{
"key": "max-concurrent-runs",
"value": 5,
"unit": null,
"plan": "free",
"notes": "Concurrent Actor runs; one run can crawl many pages in parallel.",
"source": "pricing"
},
{
"key": "max-concurrent-runs",
"value": 32,
"unit": null,
"plan": "starter",
"notes": null,
"source": "pricing"
},
{
"key": "max-concurrent-runs",
"value": 128,
"unit": null,
"plan": "scale",
"notes": null,
"source": "pricing"
},
{
"key": "max-concurrent-runs",
"value": 256,
"unit": null,
"plan": "business",
"notes": null,
"source": "pricing"
}
],
"notes": [
"The subscription price is prepaid platform usage; compute, proxy and storage are drawn from it and extra usage is billed as overage on paid plans.",
"Compute is billed by RAM-time whether or not a page succeeds, so failed attempts cost money.",
"Pages per compute unit are not published as a price. Apify's own Website Content Crawler README reports roughly 0.8 CU per 1,000 pages over raw HTTP and 2-20 CU per 1,000 pages with a headless browser; the cost engine uses these as labelled assumptions.",
"Annual billing is 10% off; exact annual prices were not verifiable in the static page.",
"Store Actors can instead be priced per event/result by their developers; not modelled here.",
"Free-plan concurrency conflicts between the pricing page (5) and the limits doc (25)."
],
"url": "/products/apify/platform"
}
],
"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)."
},
{
"key": "geotargeting",
"label": "Country targeting",
"value": "US (required)",
"origin": "user",
"note": "Some providers only allow country targeting with premium proxies."
}
],
"engine_version": "0.1.0",
"meta": {
"data_checked_at": "2026-11-14T06:10:04.383306Z",
"freshness": "fresh",
"schema_version": "1.0"
}
}