String vs Nimble (2026): 100 protected sites
Which is better, String or Nimble?
String won the measured fetch comparison. On the September 16, 2026 Web Data Frontier Benchmark, String returned verified content on 97.0% of 500 requests and Nimble returned 68.6%, up 2.3 points on the August run. String's failure-aware latency score was 7.06 seconds against Nimble's 21.54. The September run called Nimble with render: "auto", which hands each request to Nimble's own escalation engine; the August run had rendering off.
- Choose String if protected-page coverage decides it. String returned 97.0% of requests and Nimble 68.6%, and a usable page on 98 of 100 sites to Nimble's 75.
- Choose Nimble if you need search agents, extraction templates, crawling, batches, residential proxies, or its published SOC 2 Type II controls.
- Do not switch if Nimble already returns your pages and premium-path cost decides it. Extract costs $1 per 1,000 successful URLs.
TL;DR
- Success rate: String 97.0% (485/500), Nimble 68.6% (343/500)
- Latency score: String 7.06s (first of 16), Nimble 21.54s (13th of 16)
- Perfect targets: String 93 of 100, Nimble 57. Total shutouts: String 2, Nimble 25
- Nimble's clean wins: AutoTrader and Allegro, both 5/5 against String's 4/5
- Price: Nimble's current Extract API is $1 per 1,000 successful URLs with no commitment
- Method caveat: the benchmark used v1 with
render: "auto", while new integrations should use v2 - Every benchmark number comes from a public harness you can run with your own keys
| String | Nimble | |
|---|---|---|
| Product type | Fetch, search, sitemap, and remote browser | Extract, search, map, crawl, agents, templates, media, and proxies |
| Benchmark success rate | 97.0% (485/500) | 68.6% (343/500) |
| Latency score | 7.06s, first of 16 | 21.54s, 13th of 16 |
| Per-target outcome | 93 perfect, 5 partial, 2 zero | 57 perfect, 18 partial, 25 zero |
| Anti-bot highlights | 100% Cloudflare, PerimeterX, AWS WAF and Fastly | 93.3% Kasada, 100% Fastly, 85.2% on sites with no named vendor |
| Pricing basis | Plan plus successful-request usage; credits roll over | $1 per 1,000 successful Extract URLs, no commitment |
| Free evaluation | First 20,000 standard fetches | 5,000 free pages, no card required |
| Agent tooling | Hosted MCP and HTTP API | Hosted MCP, Web Search Agents, CLI, Python, Node, and Go SDKs |
| Where it wins | Measured protected-page coverage and latency | Two targets, flat extraction price, product breadth, enterprise controls |
How we tested, and why Nimble's adapter needs another run
We built the Web Data Frontier Benchmark and sell the product that ranks first. The defense against that conflict is reproducibility. The targets and pass criteria, provider adapters, and raw results 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 Nimble adapter called POST https://sdk.nimbleway.com/v1/extract with the URL and render: "auto", which lets Nimble's own engine choose rendering and driver. Before the September run it sent render: false, raw HTML over a residential Nimble IP with no headless browser; the harness changed it in pull request 16.
One qualification remains. Nimble's current v2 introduction says new integrations should target v2, and the current Extract API supports auto, VX6, VX8, VX10, VX12, Pro variants, JavaScript rendering, and browser actions. The September run still called v1, so a v2 rerun could score differently. Until that run exists, this page reports the measured result and refuses to present it as Nimble's product ceiling.
The harness is open to a corrected adapter. A Firecrawl engineer used that route in benchmark pull request 6; the next run improved Firecrawl's result by 7.7 points. Nimble can do the same.
Pricing and product claims were checked against live first-party pages on August 31, 2026. Performance figures are from the September 16, 2026 run.
What Nimble is
Nimble's current platform is much broader than the endpoint the benchmark tested. The v2 API includes URL extraction, web search, Web Search Agents, extraction templates, mapping, crawling, SERP retrieval, media downloads, scheduled jobs, and async task and batch APIs. Its Web API combines Nimble's browser drivers with its residential proxy network and can deliver raw or structured data.
The Extract endpoint can return HTML and Markdown, parse structured output, choose a driver, render JavaScript, run browser actions, set location and device parameters, capture network traffic, and manage sessions. Current docs list a default 83 queries per second for the VX driver family.
Nimble also ships a hosted MCP server with tools for search, extract, map, crawl, extraction templates, and research agents. String is narrower: one fetch endpoint with automatic escalation, plus search, sitemap crawling, a remote browser over CDP, and MCP.
The same request in Nimble and String
One job, done both ways: fetch a JavaScript-heavy product page and get its content back. Each request follows the vendor's own docs for that job, checked against those docs on October 15, 2026. Each one reads its key from an environment variable, such as $STRING_API_KEY.
curl -X POST https://sdk.nimbleway.com/v2/extract \
-H "Authorization: Bearer $NIMBLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.example.com/product/123", "render": true, "driver": "vx10", "formats": ["markdown"]}'
curl https://request.usestring.ai/v1/fetch \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.example.com/product/123", "format": "markdown"}'
Nimble's Extract endpoint replaced its Web API and moved from Basic to bearer auth. It defaults to the vx6 HTTP driver with no JavaScript. Rendering needs render: true on the vx8 or vx10 driver, and vx10 is the stealth driver. formats: ["markdown"] returns markdown. String takes the key in a header, picks the fetch path and proxy class for each request, and bills the path it used. Add "executeJS": true if you want to force a browser.
Success rate: String 97.0%, Nimble 68.6%
The benchmark sent 16 providers the same 100 URLs five times each. Most targets are protected retail, travel, news, real-estate, and social pages.
| Provider | Successful requests | Success rate | Latency score |
|---|---|---|---|
| String | 485/500 | 97.0% | 7.06s |
| Scrapfly | 431/500 | 86.2% | 19.79s |
| ScraperAPI | 420/500 | 84.0% | 12.97s |
| Firecrawl | 401/500 | 80.2% | 9.11s |
| Bright Data | 373/500 | 74.6% | 15.62s |
| Nimble | 343/500 | 68.6% | 21.54s |
Nimble ranked tenth for success and 13th on the latency score. The score uses each target's p75 successful latency. A complete miss inherits that target's p75 from providers that did return content, or the 90-second timeout when nobody did. Fast failures do not improve it.
Again, those ranks belong to Nimble's v1 Extract endpoint with render: "auto". They do not answer what v2 with a chosen rendered VX driver would have done.
Nimble wins AutoTrader and Allegro
Nimble passed AutoTrader and Allegro on all five attempts. String passed each four times. They were the only two targets where Nimble beat String outright.
The industry view has other strengths. Nimble reached 97.8% in news and finance, 95.0% across social platforms, 93.3% in developer and research, and 100% in gaming. Against named anti-bot systems, it posted 93.3% on Kasada, level with String, 84.4% on PerimeterX, and 100% on the single Fastly target.
Those results are the reason to read the category table rather than the headline. Nimble is close to String on news, finance and social platforms, and far behind on retail at 49.4% and on reviews and local at 26.7%. Teams targeting the first group should test Nimble directly.
The measured coverage gap is 21 rescued targets
| Outcome across 100 sites | String | Nimble |
|---|---|---|
| Passed all 5 attempts | 93 | 57 |
| Passed 1 to 4 attempts | 5 | 18 |
| Passed none | 2 | 25 |
Nimble returned nothing on 25 sites. The list includes Temu, Mouser, Trustpilot, Best Buy, Crunchbase, Lowe's, Realtor.com, Skyscanner, Home Depot, AutoZone, Yelp, Neiman Marcus, Saks Fifth Avenue, G2, Coupang, Idealista, StubHub, StockX, Zara, Google Search, Indeed, AT&T, CarGurus, Kroger and AXS. String passed 21 of the 25 on all five attempts, Yelp and Coupang four times, and also failed Temu and Idealista.
The anti-bot columns show the same shape. Nimble passed 62.7% of Cloudflare requests against String's 100%, 53.0% of Akamai against 98.0%, and 58.9% of DataDome against 92.6%. Its Cloudflare result nearly doubled from 34.7% in the August run. Its strongest multi-site named wall is Kasada at 93.3%, level with String.
Pricing: Nimble wins when String needs premium fetches
Nimble's current API pricing charges $1 per 1,000 successful Extraction Tool URLs, with no commitment. Only successful requests bill. The free trial includes 5,000 pages with no card. Search costs $1.10 per 1,000 lite inputs or $5 per 1,000 fast inputs. Web Search Agents range from $0.025 to $2 per task by effort. Residential proxy traffic is $5.30 per GB.
String's plan fee is paid in as usage credit. Starter is $19 per month, which includes $19 of usage at $0.25 per 1,000 standard fetches or $2.40 per 1,000 premium fetches. Growth is $99 per month, which includes $99 of usage at $0.16 or $0.90. Usage above the included amount bills at the same rates. Blocks are free and unused credit rolls over.
At 100,000 calls against the benchmark target mix, the cheapest published String plan for each path gives this model:
| Assumption | Monthly cost | Cost per 1,000 usable pages | |
|---|---|---|---|
| Nimble Extract | 68,600 successful URLs at $1/1k; failures free | $68.60 | $1.00 |
| String Starter, standard fetch | 97,000 successes at $0.25/1k, above the $19 included | $24.25 | $0.25 |
| String Growth, premium fetch | 97,000 successes at $0.90/1k ($87.30), inside the $99 fee | $99.00 | $1.02 |
This is a model, not a bill. String chooses a path based on what a page needs, so production traffic mixes rates. Nimble's current price page lists one $1 extraction rate rather than a separate rendered surcharge. On the premium path the two are close: String's usage sits under the $99 Growth fee, which covers it, and any of it you do not use rolls over. That puts String at $1.02 per 1,000 usable pages against Nimble's $1.00, while Nimble's monthly bill is lower. String is cheaper when most requests use its standard path. Both vendors exclude failed requests from billing, so retries do not create the same cost penalty as call-based competitors.
Product breadth and enterprise controls: Nimble wins
Nimble's advantage grows outside one-page fetches. Its Search API can retrieve and summarize results with domain, date, locale, and focus controls. Map discovers a site's URLs. Crawl retrieves multiple pages asynchronously. Extract Templates add reusable structured parsers, and Web Search Agents run longer cited research tasks. The platform offers batch and async extraction plus its own residential proxy API.
For agent clients, Nimble's hosted MCP server exposes that surface through Streamable HTTP. It also offers a CLI and Python, Node, and Go SDKs. String's MCP is centered on fetch, search, and sitemap tools.
Nimble also publishes a stronger enterprise-control page. Its compliance documentation states SOC 2 Type II, zero data retention, GDPR and CCPA coverage, standard contractual clauses, encryption, RBAC, and audit trails. Choose Nimble when those controls and the surrounding data platform outweigh the measured fetch gap.
Which one should you pick?
- Choose String when the core requirement is measured protected-page coverage. It returned at least one usable page on 98 of 100 targets; Nimble did so on 75.
- Choose Nimble when premium-path economics decide the purchase. Current Extract pricing is $1 per 1,000 successful URLs with no base commitment.
- Choose String when latency across failures matters. Its score was 7.06 seconds against 21.54. On the 55 sites both returned in full, the median per-site time was 2.20 seconds for String and 4.60 for Nimble.
- Choose Nimble when the workload also needs search agents, templates, mapping, crawling, batches, residential proxies, or published enterprise controls.
- If you are evaluating current Nimble, do not copy the benchmark adapter unchanged. Test v2 with an appropriate rendered or automatic driver, then compare the result with String on your own URLs.
- Re-run the open benchmark or a smaller target subset before committing spend.
Switching from Nimble to String
What carries over. A POST to sdk.nimbleway.com/v2/extract, or to the legacy api.webit.live Web API, becomes a POST to String's /v1/fetch with a bearer key. formats: ["markdown"] maps to "format": "markdown", render: true to "executeJS": true, and browser actions to String's actions. The driver choice goes away, because String picks the fetch path.
What you rebuild. Extract Templates and scheduled Extract Jobs, async and batch extraction with callbacks, Search, Map, Crawl, agent research runs, file parsing, and the residential proxy gateway. String's /search endpoint and sitemap crawl cover search and URL discovery. Templates become jsonSchema extraction or your own parser.
Integrations to reconnect. Nimble publishes Python, Node, and Go SDKs, a CLI, a hosted MCP server, plugins for coding agents, and integrations for LangChain, LlamaIndex, the Vercel AI SDK, Databricks, and Snowflake. Its docs list no n8n, Zapier, or Make integration. String ships no language SDK, so an SDK call becomes one HTTP POST. Its hosted MCP server runs at mcp.usestring.ai, n8n calls String through the HTTP Request node, and Zapier, LangChain, and the Vercel AI SDK have setup guides in String's docs.
Test on your own failing URLs first. Take the URLs that fail on Nimble today and run them through String. In this run Nimble returned nothing on 25 of the 100 sites, and String returned 21 of those on every attempt. Test Nimble's current Extract endpoint with a rendering driver beside it, compare pages returned and cost per usable page, and move only the targets that improve. Leave custom headers off for the test: String does not bill a blocked request unless that request sent custom headers. The first 20,000 String standard fetches are free with no card. If Nimble is one option among several, the Nimble alternatives comparison ranks the substitutes on the same benchmark.
FAQ
Is Nimble better than String?
String was better on the measured fetch task: 97.0% success against 68.6%, with 2 total shutouts against 25 and a faster failure-aware latency score. Nimble is broader, cheaper than String's premium fetch path at the volume modeled above, and close to String on news, finance and social platforms.
Is Nimble cheaper than String?
Nimble Extract is $1 per 1,000 successful URLs with no commitment. String Starter is $19 a month, which includes $19 of usage at $0.25 per 1,000 standard fetches; Growth is $99 a month, which includes $99 of usage at $0.90 per 1,000 premium fetches. String is cheaper for mostly standard traffic. On mostly premium traffic the two are close per usable page: at 100,000 calls String works out to $1.02 per 1,000 against Nimble's $1.00, and above about 102,000 calls a month String comes in lower, falling toward its $0.90 rate. Nimble's monthly bill stays lower because it bills fewer successful pages.
Does Nimble charge for failed requests?
No. Nimble's pricing page says only successful API requests are charged. String also bills only requests that return content.
What Nimble configuration did the benchmark use?
The public adapter called legacy POST /v1/extract with render: "auto", which lets Nimble's engine choose rendering and driver. It did not use v2 Extract, browser actions, or a fixed driver choice. The August run sent render: false.
Does Nimble bypass Cloudflare?
Sometimes. It passed 62.7% of requests across 15 Cloudflare targets, while String passed 100%. The run used v1 with render: "auto"; v2 with a chosen rendered driver was not tested.
Does Nimble have an MCP server?
Yes. Its hosted MCP server exposes search, extract, map, crawl, templates, and Web Search Agent operations to compatible clients through Streamable HTTP.
When should I use Nimble instead of String?
Use Nimble when you need one web-data platform for extraction, search, research agents, maps, crawls, templates, proxies, and enterprise controls, or when its flat $1 successful-extract rate beats your String path mix. Use String when verified page retrieval is the main job.
How can I verify the benchmark numbers?
Run the open-source benchmark with your own keys. The results JSON, target markers, and provider adapters are public. For Nimble, update the adapter to v2 and choose the driver configuration you actually plan to buy.