ScrapeSelect

Browserless vs Zyte

  • 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

ProductBrowserless · Browserless Cloud (BaaS, BrowserQL, REST APIs)

Browser infrastructure · Browser time

Zyte · Zyte API

Scraping API · Per successful request

Expected monthly costFor this workload
$2,298Over budget

$1,637 – $3,364 range · $4.60 per 1K pages

Plan Scale

pricingpricing-bundle

$344Lowest

$200 – $520 range · $0.688 per 1K pages

Plan $200 monthly commitment

pricing

Capabilities
JavaScript renderingYespricingYespricing
Residential proxyYespricingNot documented
Country targetingYesproxies-docsYesfaq
City targetingYesproxies-docsNofaq
Sticky sessionYesproxies-docsYesdocs-pricing
Cookie persistenceYespersist-docsNot documented
CAPTCHA handlingYespricingNot documented
Premium proxyNot documentedYespricing
ScreenshotNot documentedYesdocs-pricing
Structured outputNot documentedYesdocs-pricing
Limits
Requests per minuteNot documented
Max response sizeNot documented
Things to know
  • Every page runs in a real browser, so even static pages cost at least one 30-second unit; there is no cheaper HTTP tier.
  • Browser time is billed whether or not the page succeeds; a successful CAPTCHA solve is billed even if the site then rejects the token.
  • Annual billing is 30% cheaper and adds concurrency (monthly concurrency is stored here).
  • Proxy traffic through a browser includes page subresources, so proxy units usually dominate cost for heavy pages.
  • Price depends on a website difficulty tier (1-5) that Zyte assigns per website and request type; users cannot know it without Zyte's estimator. The cost engine maps anti-bot level to an assumed tier range and labels it an assumption.
  • Commitment plans bill max(commitment, usage) and stop at the spending limit; above $2,500/month requires Enterprise.
  • Any target response that is not a ban counts as successful and is billed, whatever its HTTP status (e.g. 404); ban, rate-limiting and error responses are free.
  • The $350 commitment level (48% discount) is documented but its per-tier rates are not published.
  • No concurrency cap; throughput is limited to 3,000 requests/minute on standard plans.
  • Extended geolocation, actions and network captures carry extra, unpublished usage-based costs.
EvidenceSources 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.

Products and workload

Defaults you don't set are listed as assumptions — never applied silently.

Products to compare (up to three)
Advanced (otherwise defaults are used)
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":["browserless/browser-cloud","zyte/zyte-api"],"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": "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": 1636.6,
          "cost_per_1k_pages_usd": 3.2732
        },
        "expected": {
          "plan_key": "scale",
          "plan_name": "Scale",
          "monthly_cost_usd": 2298.39,
          "cost_per_1k_pages_usd": 4.5968
        },
        "high": {
          "plan_key": "scale",
          "plan_name": "Scale",
          "monthly_cost_usd": 3363.64,
          "cost_per_1k_pages_usd": 6.7273
        },
        "rejected_plans": {
          "free": "concurrency 2 < 40",
          "prototyping": "concurrency 5 < 40",
          "starter": "concurrency 30 < 40",
          "enterprise": "price not public"
        },
        "sources": [
          {
            "key": "pricing",
            "url": "https://www.browserless.io/pricing",
            "title": "Browserless pricing",
            "observed_at": "2026-11-14T06:10:04.383306Z",
            "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-b79c19ab9507c815.js",
            "title": "Browserless pricing page data (monthly toggle)",
            "observed_at": "2026-11-14T06:10:04.383306Z",
            "excerpts": [
              "prototyping:{name:\"Prototyping\",calls:2e4,monthlyConcurrency:5,yearlyConcurrency:10,monthlyPrice:35,yearlyPrice:25",
              "starter:{name:\"Starter\",calls:18e4,monthlyConcurrency:30,yearlyConcurrency:40,monthlyPrice:200,yearlyPrice:140",
              "scale:{name:\"Scale\",calls:5e5,monthlyConcurrency:80,yearlyConcurrency:100,monthlyPrice:500,yearlyPrice:350"
            ],
            "fact_type": "official_claim",
            "freshness": "fresh"
          }
        ]
      },
      "features": [
        {
          "key": "javascript-rendering",
          "label": "JavaScript rendering",
          "value": true,
          "notes": null,
          "source": "pricing"
        },
        {
          "key": "residential-proxy",
          "label": "Residential proxy",
          "value": true,
          "notes": null,
          "source": "pricing"
        },
        {
          "key": "country-targeting",
          "label": "Country targeting",
          "value": true,
          "notes": null,
          "source": "proxies-docs"
        },
        {
          "key": "city-targeting",
          "label": "City targeting",
          "value": true,
          "notes": "Scale plan and above.",
          "source": "proxies-docs"
        },
        {
          "key": "sticky-session",
          "label": "Sticky session",
          "value": true,
          "notes": null,
          "source": "proxies-docs"
        },
        {
          "key": "cookie-persistence",
          "label": "Cookie persistence",
          "value": true,
          "notes": null,
          "source": "persist-docs"
        },
        {
          "key": "captcha-handling",
          "label": "CAPTCHA handling",
          "value": true,
          "notes": null,
          "source": "pricing"
        }
      ],
      "limits": [],
      "notes": [
        "Every page runs in a real browser, so even static pages cost at least one 30-second unit; there is no cheaper HTTP tier.",
        "Browser time is billed whether or not the page succeeds; a successful CAPTCHA solve is billed even if the site then rejects the token.",
        "Annual billing is 30% cheaper and adds concurrency (monthly concurrency is stored here).",
        "Proxy traffic through a browser includes page subresources, so proxy units usually dominate cost for heavy pages."
      ],
      "url": "/products/browserless/browser-cloud"
    },
    {
      "estimate": {
        "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-200",
          "plan_name": "$200 monthly commitment",
          "monthly_cost_usd": 200,
          "cost_per_1k_pages_usd": 0.4
        },
        "expected": {
          "plan_key": "commit-200",
          "plan_name": "$200 monthly commitment",
          "monthly_cost_usd": 344,
          "cost_per_1k_pages_usd": 0.688
        },
        "high": {
          "plan_key": "commit-500",
          "plan_name": "$500 monthly commitment",
          "monthly_cost_usd": 520,
          "cost_per_1k_pages_usd": 1.04
        },
        "rejected_plans": {
          "enterprise": "price not public",
          "payg": "usage $578.00 exceeds the $100.00 spending limit",
          "commit-100": "usage $432.00 exceeds the $200.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-11-14T06:10:04.383306Z",
            "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"
          }
        ]
      },
      "features": [
        {
          "key": "javascript-rendering",
          "label": "JavaScript rendering",
          "value": true,
          "notes": null,
          "source": "pricing"
        },
        {
          "key": "premium-proxy",
          "label": "Premium proxy",
          "value": true,
          "notes": "Residential and datacenter selection is automatic and included in the tier price.",
          "source": "pricing"
        },
        {
          "key": "country-targeting",
          "label": "Country targeting",
          "value": true,
          "notes": null,
          "source": "faq"
        },
        {
          "key": "city-targeting",
          "label": "City targeting",
          "value": false,
          "notes": null,
          "source": "faq"
        },
        {
          "key": "sticky-session",
          "label": "Sticky session",
          "value": true,
          "notes": null,
          "source": "docs-pricing"
        },
        {
          "key": "screenshot",
          "label": "Screenshot",
          "value": true,
          "notes": null,
          "source": "docs-pricing"
        },
        {
          "key": "structured-output",
          "label": "Structured output",
          "value": true,
          "notes": "Automatic extraction at $0.0004-$0.0016 per data type.",
          "source": "docs-pricing"
        }
      ],
      "limits": [
        {
          "key": "requests-per-minute",
          "value": 3000,
          "unit": null,
          "plan": null,
          "notes": "Standard plans; Enterprise 10,000 RPM.",
          "source": "rate-limit"
        },
        {
          "key": "max-response-size",
          "value": 10,
          "unit": "MB",
          "plan": null,
          "notes": null,
          "source": "docs-pricing"
        }
      ],
      "notes": [
        "Price depends on a website difficulty tier (1-5) that Zyte assigns per website and request type; users cannot know it without Zyte's estimator. The cost engine maps anti-bot level to an assumed tier range and labels it an assumption.",
        "Commitment plans bill max(commitment, usage) and stop at the spending limit; above $2,500/month requires Enterprise.",
        "Any target response that is not a ban counts as successful and is billed, whatever its HTTP status (e.g. 404); ban, rate-limiting and error responses are free.",
        "The $350 commitment level (48% discount) is documented but its per-tier rates are not published.",
        "No concurrency cap; throughput is limited to 3,000 requests/minute on standard plans.",
        "Extended geolocation, actions and network captures carry extra, unpublished usage-based costs."
      ],
      "url": "/products/zyte/zyte-api"
    }
  ],
  "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"
  }
}