ScrapeSelect

Zyte vs ScraperAPI

  • 500,000 pages/mo
  • 20% JS
  • medium anti-bot
  • United States
  • 40 concurrent
  • monthly billing
  • Example workload — edit it below

Pricing checked Nov 13, 2026 · engine 0.1.0 · cheapest plan that fits, per product

ProductZyte · Zyte API

Scraping API · Per successful request

ScraperAPI · ScraperAPI

Scraping API · Credits

Expected monthly costFor this workload
$344Lowest

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

Plan $200 monthly commitment

pricing

$475

$475 – $975 range · $0.95 per 1K pages

Plan Scaling

creditspremiumpricing

Capabilities
JavaScript renderingYespricingYescredits
Premium proxyYespricingYespremium
Country targetingYesfaqYespricing
City targetingNofaqNogeo-faq
Sticky sessionYesdocs-pricingYessessions
ScreenshotYesdocs-pricingYescredits
Structured outputYesdocs-pricingNot documented
Async requestNot documentedYespricing
Limits
Requests per minuteNot documented
Max response sizeNot documented
Session durationNot documented
Request timeoutNot documented
Geotargeting countriesNot documented
Things to know
  • 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.
  • Credit costs are an absolute lookup table, not stacked multipliers (premium + render = 25, not 10 x 10).
  • How domain costs combine with render/premium parameters is not documented; the provider points to its urlcost endpoint. Only the documented case (a standard page without render/premium) is encoded; other combinations fall back to the generic rows and are flagged as unverified.
  • PAYG credits exist on Scaling and above but the per-credit rate is not published, so no overage is modelled; lower plans must upgrade.
  • Professional and Advanced currently show limited-time bonus credits (+250K / +500K), not included here.
  • Requests cancelled by the client before 70 seconds are billed.
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":["zyte/zyte-api","scraperapi/scraping-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": "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-13T06:10:04.664359Z",
            "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"
    },
    {
      "estimate": {
        "provider": "scraperapi",
        "provider_name": "ScraperAPI",
        "product": "scraping-api",
        "product_name": "ScraperAPI",
        "category": "scraping_api",
        "billing_model": "credit",
        "architecture": "managed_api",
        "feasible": true,
        "low": {
          "plan_key": "scaling",
          "plan_name": "Scaling",
          "monthly_cost_usd": 475,
          "cost_per_1k_pages_usd": 0.95
        },
        "expected": {
          "plan_key": "scaling",
          "plan_name": "Scaling",
          "monthly_cost_usd": 475,
          "cost_per_1k_pages_usd": 0.95
        },
        "high": {
          "plan_key": "professional",
          "plan_name": "Professional",
          "monthly_cost_usd": 975,
          "cost_per_1k_pages_usd": 1.95
        },
        "rejected_plans": {
          "hobby": "concurrency 20 < 40",
          "enterprise": "price not public",
          "startup": "needs 3,430,000 more credit than the plan allows",
          "business": "needs 1,430,000 more credit than the plan allows"
        },
        "sources": [
          {
            "key": "credits",
            "url": "https://docs.scraperapi.com/getting-started/quick-start/credits-and-requests-costs",
            "title": "Credits and request costs",
            "observed_at": "2026-11-13T06:10:04.664359Z",
            "excerpts": [
              "premium=true - 10 … render=true - 10 … scrensshot=true - 10 … ultra_premium=true - 30* … premium=true + render=true - 25 … ultra_premium=true + render=true - 75*",
              "E-Commerce Amazon, Walmart, eBay 5 · SERP Google, Bing - (applies to all subdomains) 25 · Social Media LinkedIn 30",
              "Cloudflare Bypass 10 … Datadome Bypass 10 … PerimeterX/Human Bypass 10",
              "We only charge for successful requests (200 and 404 status codes) and for requests that have been cancelled from your side before giving us enough time to finish them (70 seconds)."
            ],
            "fact_type": "official_claim",
            "freshness": "fresh"
          },
          {
            "key": "premium",
            "url": "https://docs.scraperapi.com/control-and-optimization/premium-residential-mobile-proxy-pools",
            "title": "Premium residential and mobile proxy pools",
            "observed_at": "2026-11-13T06:10:04.664359Z",
            "excerpts": [
              "both javascript rendering and our premium proxy pools will be charged at 25 times the normal rate",
              "These two parameters are mutually exclusive"
            ],
            "fact_type": "official_claim",
            "freshness": "fresh"
          },
          {
            "key": "pricing",
            "url": "https://www.scraperapi.com/pricing/",
            "title": "ScraperAPI pricing",
            "observed_at": "2026-11-13T06:10:04.664359Z",
            "excerpts": [
              "Monthly / Yearly 10% off",
              "Hobby … $49 /month $44.10 /month billed annually … 100,000 API Credits 20 Concurrent Threads Geotargeting: US & EU only",
              "A standard page costs 1 credit. Amazon costs 5, Google and Bing (including their subdomains) cost 25, and LinkedIn costs 30. Sites behind bot protection like Cloudflare, Datadome, or PerimeterX add 10 credits per request when we bypass them.",
              "Pay-As-You-Go is available on our Scaling, Professional, Advanced, and Enterprise plans.",
              "you'll get a 429 response … There's no extra charge for going over",
              "Start collecting data with our 7-day trial and 5,000 API credits. No credit card required."
            ],
            "fact_type": "official_claim",
            "freshness": "fresh"
          }
        ]
      },
      "features": [
        {
          "key": "javascript-rendering",
          "label": "JavaScript rendering",
          "value": true,
          "notes": null,
          "source": "credits"
        },
        {
          "key": "premium-proxy",
          "label": "Premium proxy",
          "value": true,
          "notes": null,
          "source": "premium"
        },
        {
          "key": "country-targeting",
          "label": "Country targeting",
          "value": true,
          "notes": "Hobby and Startup are limited to US & EU.",
          "source": "pricing"
        },
        {
          "key": "city-targeting",
          "label": "City targeting",
          "value": false,
          "notes": null,
          "source": "geo-faq"
        },
        {
          "key": "sticky-session",
          "label": "Sticky session",
          "value": true,
          "notes": null,
          "source": "sessions"
        },
        {
          "key": "screenshot",
          "label": "Screenshot",
          "value": true,
          "notes": null,
          "source": "credits"
        },
        {
          "key": "async-request",
          "label": "Async request",
          "value": true,
          "notes": null,
          "source": "pricing"
        }
      ],
      "limits": [
        {
          "key": "session-duration",
          "value": 900,
          "unit": "seconds",
          "plan": null,
          "notes": "Expires 15 minutes after last use.",
          "source": "sessions"
        },
        {
          "key": "request-timeout",
          "value": 60,
          "unit": "seconds",
          "plan": null,
          "notes": "Retries internally for up to 60 s before returning 500.",
          "source": "general-faq"
        },
        {
          "key": "geotargeting-countries",
          "value": "US",
          "unit": null,
          "plan": "hobby",
          "notes": "US, or Europe as a region; no individual countries.",
          "source": "standard-geo"
        },
        {
          "key": "geotargeting-countries",
          "value": "US",
          "unit": null,
          "plan": "startup",
          "notes": "US, or Europe as a region; no individual countries.",
          "source": "standard-geo"
        }
      ],
      "notes": [
        "Credit costs are an absolute lookup table, not stacked multipliers (premium + render = 25, not 10 x 10).",
        "How domain costs combine with render/premium parameters is not documented; the provider points to its urlcost endpoint. Only the documented case (a standard page without render/premium) is encoded; other combinations fall back to the generic rows and are flagged as unverified.",
        "PAYG credits exist on Scaling and above but the per-credit rate is not published, so no overage is modelled; lower plans must upgrade.",
        "Professional and Advanced currently show limited-time bonus credits (+250K / +500K), not included here.",
        "Requests cancelled by the client before 70 seconds are billed."
      ],
      "url": "/products/scraperapi/scraping-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-13T06:10:04.664359Z",
    "freshness": "fresh",
    "schema_version": "1.0"
  }
}