Skip to content
capzy
Cloudflare Challenge
AntiCloudflareTask
proxy required

Cloudflare Challenge Solver, solved in 5.0s.

Bypass Cloudflare's full-page 'Checking your browser...' interstitial and get a valid cf_clearance cookie. Static or sticky proxy required.

Avg Speed~5.0s
Success99%+
Cost / 1k$2.00
Throughput12/m

Cloudflare Challenge is the full-page block that sites show when Cloudflare's bot-management layer decides your IP needs to prove it's a real browser. Titles include 'Just a moment...', 'Checking your browser before accessing', or 'Attention Required!'. Unlike Turnstile (a widget that returns a token), this is a hard block that produces a cf_clearance cookie once cleared. The cookie is valid for 30 minutes and is cryptographically bound to the exact IP that solved the challenge. Any request to the site from a different IP will fail even with the cookie.

Quick Integration

solve.py
import requests, time

API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"

# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "AntiCloudflareTask",
        "websiteURL": "https://example.com/",
        "proxyType": "http",
        "proxyAddress": "123.45.67.89",
        "proxyPort": "8080",
        "proxyLogin": "user",
        "proxyPassword": "pass"
    }
}).json()

task_id = task["taskId"]
print(f"Task created: {task_id}")

# Step 2: Poll for result
while True:
    result = requests.post(f"{API}/getTaskResult", json={
        "clientKey": KEY,
        "taskId": task_id
    }).json()

    if result["status"] == "ready":
        print("Solved!", result["solution"])
        break
    elif result["status"] == "failed":
        print("Failed:", result.get("errorDescription"))
        break

    time.sleep(1)

Using the result

use_result.py
# Step 3: Use the result — paste the token into the site's captcha form field
token = result["solution"]["token"]
# Browser side: set the textarea value or the hidden input. Then submit.
# Server-to-server: post the token alongside the form fields you normally send.
resp = requests.post("https://target.example.com/submit", data={
    "username": "...",
    "captcha_response": token,   # <-- replace with the field name your site uses
})
print(resp.status_code)

1. Send Payload

Dispatch your AntiCloudflareTask to our processing cluster via the secure API endpoint.

2. Solving Engine

Capzy's proprietary infrastructure handles the Cloudflare Challenge using YOUR provided proxy — there's no proxyless variant because the resulting cookie can't be transferred between IPs. We return the cf_clearance cookie along with the exact user-agent and headers used, so your client can replay them. Intended for authorized QA, accessibility testing, and automation against sites you own or are permitted to test.

3. Get Result

Poll getTaskResult for the validated token, then finalize your automated request.

Task Parameters

API Spec
Proxy fields below are required for this captcha — userAgent must match the one you’ll use when submitting the resulting token.
typetypestringreqyesAntiCloudflareTask (only valid option — proxy required)
websiteURLtypestringreqyesThe URL of the page showing the Cloudflare challenge
userAgenttypestringreqnoAdvisory only — we do NOT spoof an arbitrary UA (Cloudflare cross-checks UA against Client Hints + TLS, so a string-only override fails the solve). We solve with a real, coherent browser and RETURN its user-agent in the solution — pin THAT value on every replay.
htmltypestringreqnoOptional: the 403 HTML body containing 'Just a moment...' that you received. Helps us detect Managed vs Under-Attack tier and may improve solve speed on edge cases.
proxyTypetypestringreqyesProxy protocol: http, https, socks4, or socks5
proxyAddresstypestringreqyesProxy IP address or hostname
proxyPorttypenumberreqyesProxy port number
proxyLogintypestringreqnoProxy username (if auth required)
proxyPasswordtypestringreqnoProxy password (if auth required)
userAgenttypestringreqnoUser-Agent string to use. Must match the UA you use when submitting the token

Response Shape

tokentypestringThe cf_clearance cookie value — set this as the cf_clearance cookie on the target domain
cf_clearancetypestringAlias for token (same value)
cookiestypeobjectAll target-domain cookies issued during the solve, as {name: value}. Set these alongside cf_clearance for best compatibility
userAgenttypestringThe exact user-agent the solver used. You MUST use this UA on subsequent requests — any mismatch invalidates the cookie

Example response

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "token": "<cf_clearance cookie value>",
    "cf_clearance": "<same as token — alias>",
    "cookies": {
      "cf_clearance": "<value>",
      "__cf_bm": "<value>"
    },
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
  }
}

Error response

{
  "errorId": 1,
  "errorCode": "ERROR_CAPTCHA_UNSOLVABLE",
  "errorDescription": "Solver gave up."
}

Features

Returns cf_clearance cookie + matching user-agent
Handles hybrid challenge pages with embedded Turnstile
Capzy proprietary infrastructure — high-quality solves
Works on hard-gated sites that use Cloudflare's strictest Challenge variants
Cookie valid for 30 minutes on the solving IP

Pricing & Stats

Per 1,000 solves$2.00
Avg solve time~5.0s
Success rate99%+
Throughput12/m

Start solving cloudflare challenge.

$0.10 in free credits — no card. ~250 free solves to test before you spend.

Frequently asked questions