String is the better fit when protected pages have to return consistently and you want a published rate for each fetch path. Zyte is the better fit when you already use Scrapy, want the vendor to choose the lowest-cost technology for each domain, or your sites land in Zyte's inexpensive HTTP tiers. In the August 2026 Web Data Frontier Benchmark, String returned verified content on 97.0% of 495 requests. Zyte's HTTP path returned it on 72.7%.
Zyte still wins meaningful cases. It returned Skyscanner on two of five attempts while String returned nothing, matched String at 100% against Kasada, and charges $0.10 to $0.95 per 1,000 successful HTTP responses at a $100 commitment. Every Zyte HTTP tier costs less than String's $2.00 premium-request rate. Buyers should test the path and domains they will actually use.
Last updated August 31, 2026. Benchmark figures come from the August 11, 2026 run. Zyte product, pricing, tier-assignment, and billing claims were checked against its published pricing page, pricing documentation, error documentation, and API reference on August 31, 2026.
| String | Zyte | |
|---|---|---|
| Product shape | One fetch API, plus search, sitemap crawling, remote Chrome, and MCP | Zyte API with HTTP, browser, automatic extraction, and Scrapy integration |
| Benchmark path | String selects the request or browser path | httpResponseBody, the HTTP path |
| Benchmark success | 97.0% (480/495) | 72.7% (360/495) |
| Failure-aware latency score | 9.98s, second of 15 | 14.85s, eighth of 15 |
| Sites passed on all 5 attempts | 92 of 99 | 60 of 99 |
| Sites passed on no attempts | 2 of 99 | 18 of 99 |
| Entry offer | 5,000 free requests; Starter $20 plus usage | $5 free credit for 30 days, no commitment |
| Roughly $100 tier | Growth $100 plus $0.20 to $4.00 per 1,000 verified requests | $100 commitment; HTTP $0.10 to $0.95, browser $0.75 to $12.00 per 1,000 successful responses |
| Pricing control | Four published paths chosen per request | Five automatic tiers per domain and request type |
| Best fit | Protected pages that must return consistently | Scrapy teams and domains assigned to inexpensive Zyte tiers |
The Web Data Frontier Benchmark sends every provider the same 99 URLs five times. A response passes only when it contains a marker from the real page. A CAPTCHA or block page that returns HTTP 200 still fails. The August run made 7,425 live requests across 15 providers.
String built the benchmark and sells the product that ranked first. The test is public so that conflict is inspectable: the target list and pass criteria, Zyte adapter, and complete results JSON are available for review.
| Provider | Successful requests | Success rate | Latency score |
|---|---|---|---|
| String | 480/495 | 97.0% | 9.98s |
| Zyte | 360/495 | 72.7% | 14.85s |
The latency score is failure-aware. For each target it takes the p75 of successful attempts; a provider that never returns the page inherits the p75 of providers that did. That prevents a fast block page from looking like good performance.
The Zyte adapter posts to /v1/extract with httpResponseBody: true. Zyte's HTTP documentation says this path does not reflect content loaded at runtime by JavaScript.
Zyte also sells browser requests that return rendered HTML, screenshots, execute actions, and capture network traffic. A browser request could plausibly clear pages the HTTP path missed. It is also a different price band: at a $100 commitment, tier 1 rises from $0.10 to $0.75 per 1,000 and tier 5 from $0.95 to $12.00.
The 72.7% result is therefore not a claim about the ceiling of every Zyte configuration. It is the measured result for the lower-cost HTTP path. String chooses its request or browser path behind the same endpoint and bills the path actually used.
Zyte returned nothing on all five attempts for 18 sites: Temu, Mouser, Trustpilot, Best Buy, Lowe's, Realtor.com, Home Depot, Louis Vuitton, Yelp, Coupang, StubHub, American Airlines, Cars.com, Yellow Pages, Google, LinkedIn, Kroger, and AXS.
String returned content on 17 of those 18. It passed all five attempts on 15 and four of five on Mouser and Coupang. Temu shut out both providers.
Zyte also won four targets. It returned Skyscanner on two of five attempts where String returned nothing, and cleared Neiman Marcus, Allegro, and Booking.com on all five where String passed four. The target list, not the aggregate, should decide the purchase.
| Anti-bot system | String | Zyte |
|---|---|---|
| Cloudflare | 100% | 61% |
| Akamai | 98% | 53% |
| DataDome | 98% | 82% |
| PerimeterX | 89% | 87% |
| Kasada | 100% | 100% |
Zyte stayed close on DataDome and PerimeterX and tied String on Kasada. Its largest gaps were Cloudflare and Akamai, which together protected 35 of the 99 targets.
Zyte API combines automatic proxy selection, anti-ban work, HTTP fetching, browser rendering, and extraction. The API reference supports httpResponseBody, browserHtml, screenshots, actions, sessions, and structured extraction for products, articles, jobs, forums, and search results.
Zyte is particularly natural for Scrapy teams. Its HTTP path works through scrapy-zyte-api, while the browser path supplies rendered DOM and actions. Zyte decides which infrastructure a domain needs and folds datacenter, residential, and rendering costs into the assigned tier.
String is narrower. Send a URL to the Web Access API and get Markdown, HTML, or JSON. Proxy rotation, fingerprinting, CAPTCHA solving, and browser escalation happen behind the endpoint. String also provides search, an asynchronous sitemap crawl, remote Chrome over CDP, and an MCP server.
String publishes a server in the official MCP registry as ai.usestring/web-access. Zyte publishes a guide to building an MCP server, but does not publish a hosted official server. MCP is an advantage for String; native Scrapy integration is an advantage for Zyte.
Zyte API pricing assigns every combination of website and request type to one of five tiers.
| Zyte tier | HTTP PAYG | HTTP at $100 | Browser PAYG | Browser at $100 |
|---|---|---|---|---|
| Simple | $0.13 | $0.10 | $1.01 | $0.75 |
| Easy | $0.23 | $0.17 | $2.01 | $1.50 |
| Moderate | $0.44 | $0.33 | $4.02 | $3.00 |
| Complex | $0.70 | $0.53 | $8.04 | $6.00 |
| Advanced | $1.27 | $0.95 | $16.08 | $12.00 |
Rates are per 1,000 successful responses. Zyte's pricing documentation says new domain and request-type combinations begin on a temporary tier, permanent assignments are reviewed quarterly, and affected customers get two weeks' notice. A $100 spending limit has no commitment; a $100 commitment buys a $200 spending limit and a 25% discount.
Zyte does not charge rate-limit or unsuccessful responses. Its error documentation says an unavoidable ban returns a 520 response and is free. A non-ban response such as a target 404 is returned as a successful Zyte response and is billable.
String charges a subscription plus requests that return verified content. The first 5,000 requests are free. Starter is $20 per month and Growth is $100. Growth rates are:
| Fetch path | Price per 1,000 verified requests |
|---|---|
| Request, standard proxy | $0.20 |
| Browser, standard proxy | $1.00 |
| Request, premium proxy | $2.00 |
| Browser, premium proxy | $4.00 |
The honest price comparison runs both ways. All five Zyte HTTP tiers undercut String's $2.00 premium-request rate, and Zyte's Simple and Easy HTTP tiers undercut String's $0.20 standard rate. String is cheaper than Zyte's Moderate-through-Advanced browser tiers and publishes the same four path prices for every domain.
Do not divide either provider's success-billed rate by benchmark success. A blocked request costs neither provider anything. Success rate answers whether the page arrives. The rate card answers what a successful response costs. The broader 13-provider pricing comparison keeps those questions separate.
Keep Zyte for inexpensive HTTP-tier domains, structured extraction, or a Scrapy-native workflow, and send the pages that miss through String. The reverse can also work: use String for protected retrieval and Zyte for automatic extraction or browser actions.
Both products offer a free evaluation. Compare Zyte's HTTP and browser paths with String against a representative target list before changing production traffic.
If Zyte is one option among several, the Zyte alternatives comparison places six substitutes next to the same benchmark.
On the August 2026 Web Data Frontier Benchmark overall, yes. String returned verified content on 97.0% of 495 requests and Zyte's HTTP path on 72.7%. Zyte tied String on Kasada and beat it on four targets, including Skyscanner. Run the public test harness against your own domains.
Not always. At a $100 commitment, every Zyte HTTP tier from $0.10 to $0.95 per 1,000 successful responses is cheaper than String's $2.00 premium-request path. The two cheapest tiers also undercut String's $0.20 standard rate. String is cheaper than Zyte's $6.00 and $12.00 high-tier browser rates, and its prices do not change by domain.
No. Zyte's error documentation says ban, rate-limit, and unsuccessful responses are free. A target response that is not a ban, such as a real 404 page, counts as a successful response and is billable. String bills only when verified content returns.
No. It tested httpResponseBody, the lower-priced HTTP path. Zyte's browser path could clear JavaScript-heavy pages the HTTP path missed, but it costs 7.5 to 12.6 times more within the same tier at a $100 commitment.
String on the failure-aware benchmark score: 9.98 seconds against Zyte's 14.85. That score includes the cost of targets a provider fails and should not be read as a raw response-time promise for every successful page.
Stay when you use Scrapy, your domains sit in inexpensive Zyte tiers, or you need structured extraction and browser actions through the same API. Zyte is also competitive against Kasada, DataDome, and PerimeterX and returned four targets more reliably than String.
Yes. The benchmark repository, Zyte adapter, and August results file are public. A full run makes thousands of billable requests, so begin with a subset.