Zenrows
Talk to sales Start building free

Bypass · Cloudflare

The checkpoint clears.The page is yours.

Bot Management, Under Attack Mode, and Turnstile stall most scrapers. Zenrows Fetch returns the page behind them in one call.

Scroll to clear it

The wall

Cloudflare reads you five ways before the page.

Every layer scores you independently. A stock HTTP client fails the first one and never reaches the page. Hover a layer to see where it trips.

01

TLS fingerprint

Your client's TLS handshake (JA3/JA4) is matched against real browsers before a byte of HTML is sent. Stock clients don't match.

flagged pre-HTML
02

HTTP/2 & headers

Header order, casing, and HTTP/2 frame settings betray requests, curl, and default libraries. Real Chrome sends a precise shape yours doesn't.

shape mismatch
03

JavaScript challenge

The interstitial runs JS that probes the browser environment. Headless setups miss the timing, canvas, and API signals it expects.

env probe fails
04

Turnstile & managed challenge

The widget scores the session with proof-of-work and behavioral checks. A bare request has no valid token to present.

no valid token
05

IP reputation

Datacenter ASNs and reused addresses carry a low trust score. Cloudflare rate-limits or challenges them on sight.

low-trust ASN

Straight through

One call. Every layer, handled.

Point Fetch at a Cloudflare-protected URL. Protected Web Access resolves the challenge, renders the page, and routes through a trusted network. You get the HTML.

No solver to maintain. No headless fleet. No proxy rotation. One request.

Fetch · one call
curl "https://api.zenrows.com/v1/" \
  -G \
  --data-urlencode "url=https://protected.example.com" \
  --data-urlencode "apikey=YOUR_KEY" \
  --data-urlencode "js_render=true" \
  --data-urlencode "premium_proxy=true"
< HTTP/2 200  ·  challenge cleared  ·  full HTML returned

What comes back is ready to use.

The rendered page, in the shape your pipeline wants. Switch the format on one parameter.

<html>
  <head><title>Protected page</title></head>
  <body>
    <h1>Live pricing</h1>
    <span class="price">$249.00</span>
  </body>
</html>
# Live pricing

The rendered page as clean Markdown,
ready to drop into an LLM prompt.

**Price:** $249.00
{
  "title": "Live pricing",
  "price": "$249.00",
  "status": 200,
  "rendered": true
}
Challenge handled Page rendered Trusted network Auto-retry on block HTML · Markdown · JSON

Cloudflare is one wall. Zenrows handles the rest.

The same one call reaches pages behind every major anti-bot system. Point Fetch at a URL and get what's there.

Start building free 10,000 credits/month for free, always