String won the measured fetch comparison. ScrapingAnt won Skyscanner, returned raw attempts quickly, and charges less than String's premium path at some plan sizes. On the open Web Data Frontier Benchmark, String returned verified content on 97.0% of 495 requests and ScrapingAnt returned 30.7%. String's failure-aware latency score was 9.98 seconds against ScrapingAnt's 16.08. The public ScrapingAnt adapter used residential proxies without browser rendering. That is a strong proxy path, but it is not ScrapingAnt's 125-credit browser-plus-residential mode, so the result is not a ceiling on every configuration.
TL;DR
| String | ScrapingAnt | |
|---|---|---|
| Product type | Fetch, search, sitemap, and remote browser | Web scraping platform with Chrome, rotating proxies, Markdown, AI extraction, and MCP |
| Benchmark success rate | 97.0% (480/495) | 30.7% (152/495), residential proxy and raw HTML |
| Latency score | 9.98s, second of 15 | 16.08s, ninth of 15 |
| Mean attempt time | 7.67s | 2.57s, second fastest |
| Per-target outcome | 92 perfect, 5 partial, 2 zero | 20 perfect, 19 partial, 60 zero |
| Anti-bot highlights | 100% Cloudflare, Kasada, and Fastly | 60.0% Fastly, 48.9% PerimeterX, 67.7% proprietary or other |
| Pricing basis | Plan plus successful-request usage; credits roll over | Monthly credit pool; unused credits expire; failed requests cost zero |
| Entry point | First 5,000 requests free | 10,000 free monthly credits, no card |
| Agent tooling | Hosted MCP and HTTP API | Hosted MCP, Markdown, AI extraction, and integrations |
| Where it wins | Measured coverage and completion time | Skyscanner, raw-attempt speed, proxy controls, extraction tools, and some premium-path prices |
We built the Web Data Frontier Benchmark and sell the product that ranks first. The defense against that conflict is reproducibility. The 99 targets and pass criteria, every provider adapter, and the August results JSON are public. A request passes only when its body contains an expected marker from the real page. A captcha or empty shell with HTTP 200 fails.
The ScrapingAnt adapter called GET /v2/general with proxy_type: "residential" and browser: false. ScrapingAnt's proxy documentation describes residential as its premium proxy type. Its request reference confirms that disabling browser returns the target response without a headless browser.
That configuration costs 25 credits for each successful response. ScrapingAnt also supports JavaScript rendering with datacenter proxies for 10 credits and browser rendering with residential proxies for 125 credits. The credit table makes the fivefold step from the tested mode explicit. The benchmark did not measure that 125-credit path, custom JavaScript, a wait selector, cookies, or a chosen proxy country. We cannot infer what those settings would score.
If ScrapingAnt believes another general configuration is fairer, the adapter is one file and a pull request changes the next run. A Firecrawl engineer used that route in benchmark pull request 6, and the next run raised Firecrawl's result by 7.7 points.
Pricing and product claims were checked against live first-party pages on August 31, 2026. Performance figures are from the August 11 run.
ScrapingAnt is a web scraping platform built around a general API backed by headless Chrome and rotating proxies. Its request endpoint can use a datacenter or residential proxy, choose a country, forward cookies and headers, run custom JavaScript, wait for a selector, and return raw or rendered HTML. A separate proxy mode exposes the same API behavior through an HTTP or HTTPS proxy port.
The platform also has a Markdown endpoint, a natural-language AI extractor, and a hosted MCP server with HTML, Markdown, and text tools. ScrapingAnt publishes official JavaScript and Python clients, plus GitHub Actions, Make, and n8n integrations.
ScrapingAnt also sells standalone residential and datacenter proxy bandwidth. String does not sell a raw proxy product. String's narrower access surface adapts each fetch behind one endpoint, with search, sitemap crawling, a remote browser over CDP, and MCP beside it.
The benchmark sent 15 providers the same 99 URLs five times each. Most targets are protected retail, travel, news, real-estate, and social pages.
| Provider | Successful requests | Success rate | Latency score |
|---|---|---|---|
| String | 480/495 | 97.0% | 9.98s |
| Scrapingdog | 269/495 | 54.3% | 12.51s |
| Browserbase | 209/495 | 42.2% | 14.19s |
| ZenRows | 170/495 | 34.3% | 17.60s |
| ScrapingAnt | 152/495 | 30.7% | 16.08s |
| ScrapingBee | 147/495 | 29.7% | 16.97s |
ScrapingAnt ranked 14th for success and ninth on the failure-aware latency score. Its raw mean attempt was 2.57 seconds, second fastest in the field. Those measurements are not contradictory. ScrapingAnt returned or failed quickly, while the latency score charges a complete miss the target's successful-provider p75, or 90 seconds when nobody succeeded. A fast block does not finish the data job.
The 66.3-point success gap should be read with the configuration caveat above. It measures ScrapingAnt's residential, non-browser path. It does not measure every combination ScrapingAnt sells.
ScrapingAnt returned verified Skyscanner content on all five attempts while String returned none. That is a decisive target win. For a workload centered on Skyscanner, this result matters more than the aggregate score.
ScrapingAnt was also perfect on Ticketmaster, Kayak, Instacart, Facebook, Bloomberg, Airbnb, Rightmove, YouTube, GitHub, arXiv, Bing, and nine other targets. Its strongest industry groups were social media at 67.5%, developer and research at 66.7%, and travel at 44.4%.
Against named anti-bot groups, ScrapingAnt reached 60.0% on the benchmark's Fastly target and 48.9% across PerimeterX. Its proprietary or other group reached 67.7%. These are useful pockets even though the aggregate result was low.
| Outcome across 99 sites | String | ScrapingAnt |
|---|---|---|
| Passed all 5 attempts | 92 | 20 |
| Passed 1 to 4 attempts | 5 | 19 |
| Passed none | 2 | 60 |
| Passed at least once | 97 | 39 |
Of ScrapingAnt's 60 shutouts, String passed 54 on all five attempts and five on four attempts. Both providers failed Temu. The five partial String results were Mouser, Neiman Marcus, Coupang, Allegro, and Booking.com.
The anti-bot columns show where the gap formed. ScrapingAnt passed 6.7% of Cloudflare requests against String's 100%, 8.4% of DataDome against 97.9%, 16.0% of Akamai against 98.0%, and 13.3% of Kasada against 100%. Its closer result was PerimeterX at 48.9% against String's 88.9%.
ScrapingAnt had 19 partial targets, including Instagram, X, Pinterest, Walmart, Vinted, and TradingView at 80%. Retrying helped those sites. It did not change the 60 targets that missed every attempt.
ScrapingAnt's current plans include 10,000 free credits per month, then 100,000 for $19, 500,000 for $49, 3 million for $249, and 8 million for $599. No card is required for the free allowance. Failed requests cost zero, and unused credits do not roll over.
| Request path | Credits per success | $49 Startup capacity | Startup cost per 1,000 successes |
|---|---|---|---|
| Datacenter, no browser | 1 | 500,000 | $0.10 |
| Datacenter, browser + JS | 10 | 50,000 | $0.98 |
| Residential, no browser, benchmark mode | 25 | 20,000 | $2.45 |
| Residential, browser + JS | 125 | 4,000 | $12.25 |
String charges a monthly plan plus successful-request usage. Starter is $20 per month, then $0.40 per 1,000 standard fetches or $4 per 1,000 premium fetches. Growth is $100, then $0.20 or $2. Browser paths cost more. Blocks are free and credits roll over.
The honest comparison depends on the path. ScrapingAnt's tested residential mode costs $2.45 per 1,000 successes on Startup, below String Starter premium at $4 and slightly above String Growth premium at $2 before String's monthly plan fee. ScrapingAnt's untested browser-plus-residential path costs $12.25 per 1,000 on the same plan. String's standard path is cheaper, but a hard target may require premium or browser work.
ScrapingAnt can also be cheaper at higher commitments. The $249 Business plan makes the tested 25-credit path about $2.08 per 1,000 successes; the $599 Business Pro plan makes it about $1.87. Those prices buy successful responses, not coverage: on this run ScrapingAnt delivered 152 pages for every 480 String delivered.
ScrapingAnt exposes more knobs on a single scrape. Its browser documentation covers real Chrome rendering, custom JavaScript, and selector waits. The request can also carry cookies, headers, a country, and a proxy type. ScrapingAnt says every plan has no concurrency cap and can send 1,000 parallel requests through an auto-scaling Chrome cluster.
For downstream data work, the Markdown and extraction APIs return LLM-ready text or JSON described in natural language. The hosted MCP server gives agents three direct page-reading tools. Official clients and workflow integrations reduce setup work, while standalone proxies support teams that do not want a managed scrape response.
String wins the measured retrieval layer. ScrapingAnt wins when the purchase also needs raw proxy bandwidth, explicit browser controls, first-party AI extraction, broad workflow integrations, or uncapped parallel submission.
String was better on the measured fetch task: 97.0% success against 30.7%, with a 9.98-second latency score against 16.08. ScrapingAnt was better on Skyscanner, raw-attempt speed, explicit controls, proxy products, and extraction breadth.
Sometimes. The tested residential, non-browser path costs $2.45 per 1,000 successful pages on ScrapingAnt Startup. That is below String Starter premium at $4 and above String Growth premium at $2, before String's monthly fee. ScrapingAnt browser plus residential costs $12.25 per 1,000 on Startup. Standard paths are much cheaper for both.
No. ScrapingAnt's pricing page says failed requests cost zero. String also bills only requests that return content.
The public adapter used the /v2/general endpoint with residential proxies and browser: false. That returns raw page HTML and costs 25 credits for each successful response.
No. It did not test browser rendering with residential proxies, a 125-credit path. It also did not use custom JavaScript, selector waits, cookies, or location targeting. The 30.7% result applies to the published adapter, not every possible configuration.
Sometimes, but not reliably in this run. ScrapingAnt passed 6.7% across 15 Cloudflare targets. It did better on PerimeterX at 48.9% and on the single Fastly target at 60.0%.
Yes. ScrapingAnt documents a hosted MCP server with tools for HTML, Markdown, and plain text. It uses the same account credits as the API.
Run the open-source benchmark with your own keys. The results JSON, target markers, and provider adapters are public. Start with your target subset because a full run makes thousands of billable calls.