ZenRows
- 500,000 pages/mo
- 20% JS
- medium anti-bot
- United States
- 40 concurrent
- monthly billing
- Example workload — edit it below
Pricing checked Sep 26, 2026 · engine 0.1.0 · cheapest plan that fits, per product
| Product | ZenRows · Fetch (Universal Scraper API) Scraping API · Credits |
|---|---|
| Expected monthly costFor this workload | |
| Capabilities | |
| JavaScript rendering | Yesdocs-pricing |
| Premium proxy | Yesdocs-pricing |
| Country targeting | Yesproxy-country |
| Sticky session | Yesfeatures-other |
| Screenshot | Yesdocs-pricing |
| Limits | |
| Session duration |
|
| Max response size |
|
| Things to know |
|
| Evidence | 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":["zenrows/fetch"],"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": "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": 749,
"cost_per_1k_pages_usd": 1.498
},
"expected": {
"plan_key": "scale-s2",
"plan_name": "Scale S2",
"monthly_cost_usd": 749,
"cost_per_1k_pages_usd": 1.498
},
"high": {
"plan_key": "scale-s2",
"plan_name": "Scale S2",
"monthly_cost_usd": 749,
"cost_per_1k_pages_usd": 1.498
},
"rejected_plans": {
"build-b1": "concurrency 20 < 40",
"build-b2": "concurrency 20 < 40",
"build-b3": "concurrency 20 < 40",
"enterprise": "price not public",
"launch-l1": "needs 6,250,000 more credit than the plan allows",
"launch-l2": "needs 6,000,000 more credit than the plan allows",
"launch-l3": "needs 5,800,000 more credit than the plan allows",
"growth-g1": "needs 5,300,000 more credit than the plan allows",
"growth-g2": "needs 4,500,000 more credit than the plan allows",
"growth-g3": "needs 3,500,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"
},
{
"key": "proxy-country",
"url": "https://docs.zenrows.com/fetch/features/proxy-country.md",
"title": "Proxy country",
"observed_at": "2026-09-26T06:10:04.146951Z",
"excerpts": [
"Proxy Country requires Premium Proxy to be enabled"
],
"fact_type": "official_claim",
"freshness": "fresh"
}
]
},
"features": [
{
"key": "javascript-rendering",
"label": "JavaScript rendering",
"value": true,
"notes": null,
"source": "docs-pricing"
},
{
"key": "premium-proxy",
"label": "Premium proxy",
"value": true,
"notes": null,
"source": "docs-pricing"
},
{
"key": "country-targeting",
"label": "Country targeting",
"value": true,
"notes": "Requires premium proxy; 190+ countries.",
"source": "proxy-country"
},
{
"key": "sticky-session",
"label": "Sticky session",
"value": true,
"notes": null,
"source": "features-other"
},
{
"key": "screenshot",
"label": "Screenshot",
"value": true,
"notes": "Requires JS rendering.",
"source": "docs-pricing"
}
],
"limits": [
{
"key": "session-duration",
"value": 600,
"unit": "seconds",
"plan": null,
"notes": null,
"source": "features-other"
},
{
"key": "max-response-size",
"value": 5,
"unit": "MB",
"plan": "build-b1",
"notes": null,
"source": "docs-pricing"
},
{
"key": "max-response-size",
"value": 20,
"unit": "MB",
"plan": "scale-s1",
"notes": null,
"source": "docs-pricing"
}
],
"notes": [
"Formerly \"Universal Scraper API\"; per-plan dollar-per-1K pricing from earlier years is obsolete.",
"Annual billing grants the full year's credits up front as one balance.",
"Country targeting requires premium proxies, so a geotargeted request costs at least 10 credits.",
"No metered overage; up to 4 top-up packs per billing period, usually pricier per credit than the plan.",
"Site Not Found (RESP007) errors are also billed according to the error-code docs."
],
"url": "/products/zenrows/fetch"
}
],
"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-09-26T06:10:04.146951Z",
"freshness": "fresh",
"schema_version": "1.0"
}
}