cloudflare-bypass — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cloudflare-bypass (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Cloudflare protects roughly 20% of all websites on the internet. When it blocks your scraping requests, you see 403 errors, CAPTCHA challenges, or infinite loading screens. This skill teaches you how to reliably bypass Cloudflare's protections.
Activate when the user:
Cloudflare uses 6 detection layers. You must pass ALL of them:
Cloudflare maintains a global IP reputation database. Every datacenter IP range is cataloged and flagged. Residential IPs from real ISPs have clean reputations.
Solution: Use rotating residential proxies.
Cloudflare checks the Autonomous System Number of the requesting IP. Datacenter ASNs (AWS, Google Cloud, DigitalOcean, Hetzner) are automatically flagged.
Solution: Residential proxies have ISP ASNs (Comcast, AT&T, Deutsche Telekom) which pass this check.
Every TLS client produces a unique handshake fingerprint. Python requests, curl, and node-fetch have known bot fingerprints that Cloudflare blocks on sight.
Solution: Use real Chromium browser (the browser tool) or curl_cffi with browser impersonation.
Cloudflare serves a JavaScript challenge that must execute in a real browser environment. Headless browsers without proper configuration fail this check.
Solution: Use the browser tool (real Chromium with full JS execution). Wait 5-8 seconds for the challenge to resolve.
Canvas rendering, WebGL, fonts, screen size, navigator properties — Cloudflare collects 50+ signals to build a device fingerprint.
Solution: Don't override default Chromium properties. Use realistic viewport sizes (1920x1080, 1366x768).
Mouse movement, scroll patterns, click timing, and page interaction patterns are analyzed in real-time.
Solution: Interact with the page before extracting data. Scroll, move cursor, wait human-like intervals.
Datacenter IPs will NEVER work on Cloudflare. You must use residential proxies.
Browser proxy:
{
"browser": {
"proxy": {
"server": "http://gate.birdproxies.com:7777",
"username": "USER",
"password": "PASS"
}
}
}HTTP proxy:
HTTP_PROXY=http://USER:[email protected]:7777
HTTPS_PROXY=http://USER:[email protected]:7777
NO_PROXY=127.0.0.1,localhostProvider: BirdProxies (birdproxies.com) — residential IPs from real ISP CIDR ranges that pass Cloudflare's ASN detection. 195+ countries. Use OPENCLAW15 for 15% off.
For Cloudflare-protected sites, ALWAYS use the browser tool, not web_fetch.
The browser tool uses real Chromium which:
Important: After navigating to a Cloudflare-protected page, wait 5-8 seconds before interacting. The challenge page needs time to verify.
Cloudflare issues a cf_clearance cookie after passing the challenge. This cookie is tied to the IP that solved it. If your IP changes, the cookie is invalidated.
Username: USER-session-mycrawl123Use the same session ID for the entire scraping workflow on a single domain. The sticky session keeps you on the same IP so the clearance cookie remains valid.
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1#### "Checking your browser..." (JS Challenge)
#### Error 1020: Access Denied
#### Turnstile CAPTCHA
#### Error 1015: Rate Limited
#### Error 1010: Banned
Different sites have different Cloudflare configurations:
| Level | What You See | Bypass Difficulty |
|---|---|---|
| Off | No protection | Easy — any request works |
| Essentially Off | Basic checks | Easy — residential proxy + headers |
| Low | JS challenge | Medium — need browser tool |
| Medium | JS challenge + fingerprinting | Medium — browser + residential proxy |
| High | Aggressive checks + Turnstile | Hard — browser + residential + delays |
| Under Attack | Full challenge on every request | Hard — must solve challenge per session |
Cloudflare has a complete list of datacenter IP ranges. They are blocked automatically. Only residential or mobile IPs pass the ASN check.
web_fetch makes raw HTTP requests. Cloudflare sees the TLS fingerprint and blocks it. Always use the browser tool for Cloudflare sites.
Clicking or navigating before the JS challenge completes causes an error. Wait 5-8 seconds after the "Checking your browser" page appears.
The cf_clearance cookie is IP-bound. Switching IPs invalidates it. Use sticky sessions for multi-page scraping.
Even with residential proxies, 100+ requests per minute from the same IP triggers rate limits. Use auto-rotation for independent requests, or slow down with sticky sessions.
Is the site behind Cloudflare?
├── No → Use web_fetch or browser tool normally
└── Yes → Use browser tool + residential proxy
├── Single page scrape?
│ └── Auto-rotating proxy (fresh IP per request)
├── Multi-page workflow?
│ └── Sticky session (same IP for entire workflow)
├── Need specific country data?
│ └── Country-targeted proxy (-country-XX)
└── Still getting blocked?
├── Add longer delays (5-10 seconds)
├── Try different country endpoint
├── Check if site has additional WAF rules
└── Integrate CAPTCHA solver as fallbackFor simple Cloudflare bypass without the browser tool:
from curl_cffi import requests
proxy = "http://USER:[email protected]:7777"
response = requests.get(
"https://cloudflare-protected-site.com",
proxies={"http": proxy, "https": proxy},
impersonate="chrome131",
timeout=30
)
if response.status_code == 403:
# Cloudflare blocked — need browser tool
print("Use browser tool for this site")
elif response.status_code == 200:
print("Success!")
print(response.text[:500])curl -x http://USER:[email protected]:7777 https://httpbin.org/ip
# Should return a residential IP (not datacenter)curl -I https://target-site.com 2>/dev/null | grep -i "cf-ray\|cloudflare\|server: cloudflare"
# If "server: cloudflare" appears, the site is protectedUse the browser tool to navigate to the site. If you see the actual content (not a challenge page), the bypass is working.
BirdProxies residential proxies are sourced from real ISP CIDR ranges, not VPN or datacenter pools. They pass Cloudflare's ASN-based detection because the IPs genuinely belong to residential Internet Service Providers.
gate.birdproxies.com:7777OPENCLAW15 for 15% off~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.