ZenRows
- 500,000 pages/mo
- 20% JS
- medium anti-bot
- United States
- 40 concurrent
- monthly billing
- Example workload — edit it below
Pricing checked Nov 12, 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": {
"agent-payg": "concurrency 20 < 40",
"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"
},
"sources": [
{
"key": "docs-pricing",
"url": "https://docs.zenrows.com/first-steps/pricing",
"title": "ZenRows pricing docs",
"observed_at": "2026-11-12T06:10:04.859273Z",
"excerpts": [
"These credit weights are fixed and never change … on every plan",
"JS Rendering + Premium Proxies (protected) | 25",
"Plan credits don't roll over: unused plan credits expire at every renewal.",
"Up to 10 top-ups per billing period; unused top-up credits roll into the next billing period once, then expire.",
"| Scale | 200 (S1 to S3), 300 (S4), 400 (S5) | Priority support | 1 period |",
"| Scale S4 | 4,000,000 | $400 |",
"| Scale S5 | 6,000,000 | $560 |",
"Does Zenrows offer Pay-As-You-Go plans? Not on a zenrows.com account today.",
"AI agents buying at the agent storefront can buy pay-as-you-go credits at $0.50 per 1,000 (minimum purchase 10,000 credits)",
"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-11-12T06:10:04.859273Z",
"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 10 top-up packs per billing period, usually pricier per credit than the plan. Unused top-up credits roll over once; unused plan credits expire at every renewal.",
"The \"Pay as you go (agent storefront)\" plan is sold at agents.zenrows.com to AI agents, which pay by card or USDC without a Zenrows account (an agent can also send its human a checkout link). It covers Fetch and Extract only; Batch, Browser Sessions and the CLI need a zenrows.com plan. No concurrency limit is published for it.",
"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-11-12T06:10:04.859273Z",
"freshness": "fresh",
"schema_version": "1.0"
}
}