Docs / Guides

How to Bypass Cloudflare 403 Errors When Scraping

Why Cloudflare returns 403 to your scraper and how to fix it: solve the challenge once, then send the clearance cookie + User-Agent through the matching exit proxy on every request.

A 403(or a 503 “Just a moment…” page) from Cloudflare means your request was flagged before it ever reached the site. Rotating User-Agents or adding headers won’t fix it — Cloudflare wants proof a real browser solved its challenge.

What actually gets you through

Miss any one and you’re back to 403. RaptorWayz returns all three from one call, so you solve a domain once and then make your own requests through the matching proxy:

solve
curl -X POST https://raptorwayz.com/v1/solve \
  -H "Authorization: Bearer $API_KEY" \
  -d '{"domain":"example.com"}'
# → { "cf_clearance": "...", "user_agent": "Mozilla/5.0 ...",
#     "proxy": "http://$API_KEY:x@raptorwayz.com:8080", "expires_at": 1750000000 }
python
import requests

# 1. Ask RaptorWayz to solve the challenge.
r = requests.post(
    "https://raptorwayz.com/v1/solve",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"domain": "example.com"},
).json()

# 2. Use the cookie + User-Agent + proxy TOGETHER on your own request.
resp = requests.get(
    "https://example.com/",
    headers={"User-Agent": r["user_agent"]},
    cookies={"cf_clearance": r["cf_clearance"]},
    proxies={"https": r["proxy"]},
)
print(resp.status_code)  # 200

Keep it working at scale

Each API key does one fresh solve per 25 minutes and caches the clearance, so high-volume scrapes reuse the same cookie until it expires. Need parallelism across many sites? Add more keys — each is an independent lane. Full details in the API docs, or learn how to solve challenges in Python.

Try it on your target domain

3 free solves on signup, no card required.

Get a free key