NewLaunching String Web Access APIRead the manifesto →
Web Access API

Access any page.
Even the hardest ones.

One HTTP call against any URL. String returns clean content, and you only pay when it comes back.

Get an API key ↗Read the docs
First request in seconds · Free to start · Pay only on success
Live · fetch
$ curl https://request.usestring.ai/v1/fetch \
  -H "Authorization: Bearer sk_live_…" \
  -d '{ "url": "https://www.zillow.com/homedetails/…" }'
200 · 412ms · 18.4 KB clean text
<!doctype html> … fully rendered, anti-bot cleared, no proxy to manage.

Fast

0.41s
p50 latency
0.9s
p95 latency

Warm browser pools and a rendering path that skips a cold spin-up wherever a target allows it. Concurrency holds the tail flat under load, so a burst of requests doesn't turn into a queue.

Reliable

Reliable means it gets through the systems that others can't, and recovers on its own when a target shifts.

CloudflareDataDomePerimeterXAkamaiKasadaCAPTCHA challenges

Every request escalates automatically: lightweight request-based fetches, full browser rendering, residential proxies, geolocated routing, and CAPTCHA solving - which compliance-sensitive teams can switch off per request.

Who it's for

AI application companies

Provide your agents access to live web data better, faster and cheaper than Firecrawl, Browserbase, Exa, and Parallel.

Want to give your users the ability to query live web data? Plug in our API / MCP and see their satisfaction rates jump.

GTM teams

Enrichment: Build agents that can use String to pull live web data for any deal or contact to superpower your sales teams.

Every GTM engineer's dream: a Claygent that actually works, that doesn't get blocked, and that's way more affordable.

Data companies

Quality: Access data you previously couldn't due to anti-bot or engineering-capacity limits - we get you data from the whole web.

Tired of customers finding issues with your data - stale, lacking coverage? Use String's API and get access to the entire web without issues. Customers have reported a 50%+ reduction in triage tickets.

Vibe coders

Ship without a scraping stack: point a script at any page and get clean data back, no proxies, retries, or bot walls to babysit.

Building a side project or an agent on a weekend? Pull the pages you need with a single call instead of losing Saturday to rotating proxies and a Cloudflare challenge that wasn't there yesterday.

Q3 2026 · re-run monthly

The Web Data Frontier Benchmark, in full.

Every provider, every target, same time, head to head. The two numbers that decide whether a scraper is worth running: did it get through, and how fast.

90 hard targets14 providers450 requests per providerdata generated July 15, 2026View the open-source benchmark on GitHub ↗
Benchmark methodology
Real pages, real defenses, verified content.

We tested String Web Access API against fourteen other web access APIs by loading 90 real-world pages known to be difficult to scrape, including targets protected by anti-bot and WAF systems such as DataDome, Akamai, Cloudflare, and Kasada.

The suite covers pages with high scraping value: product detail pages, search results, social platforms, and similarly protected surfaces. Each URL was requested 5 times per provider - 450 requests each - and a request only counted as successful when the API returned a 2xx and the response contained the page's expected content.

Latency includes every target. Content uses the 75th percentile of successful attempt latencies. A complete miss uses the 75th percentile of providers that returned content for that target, or the 90-second timeout when nobody succeeds.

01 · Overall success rate
All targets, all requests. Higher is better.
string
95.8%
bright
80.9%
context_dev
78.7%
firecrawl
70.9%
scraperapi
69.3%
oxylabs
68.9%
zyte
68.2%
decodo
67.8%
nimble
59.3%
browserbase
50.0%
zenrows
44.2%
scrapingant
35.1%
scrapingdog
35.1%
scrapingbee
33.3%
0%25%50%75%100%
02 · Average latency
Mean per-target p75 latency; complete misses use that target's successful-provider p75. Lower is better - read it alongside success rate.
string
11.07s
bright
24.33s
context_dev
13.62s
firecrawl
14.70s
scraperapi
13.31s
oxylabs
20.85s
zyte
17.50s
decodo
29.74s
nimble
21.43s
browserbase
15.25s
zenrows
21.35s
scrapingant
15.46s
scrapingdog
15.01s
scrapingbee
18.15s
0s9s18s27s36s
Get an API key ↗Free to start · Pay only on success
Data generated July 15, 2026 (Q3 2026 run).

One call. That's the integration.

Send a URL, get clean content back. No proxy list to rotate, no headless browser to babysit.

Request · curl
curl https://request.usestring.ai/v1/fetch \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://hard-target.com", "format": "markdown" }'
200 · 412ms · 18.4 KB clean text

Give your agents the same reach.

Add String over MCP and your agent fetches any page, even the hardest ones, as a single tool call, in Claude, ChatGPT, Cursor, or anything that speaks the protocol.

MCP · Claude / ChatGPT / Cursor
{
    "mcpServers": {
        "string": {
            "url": "https://mcp.usestring.ai/v1/mcp",
            "headers": { "Authorization": "Bearer sk_live_…" }
        }
    }
}

Get your API key now.

Get an API key ↗
First request in seconds · Free to start · Pay only on success
© 2026 StringBuilt in New York City 🗽 🍎