Skip to content
../products
Kasada Bot DefenseKasadaCaptchaTaskproxy required

Kasada Bot Defense Solver, solved in 5.0s.

Bypass Kasada bot defense. Returns x-kpsdk-ct/cd tokens + cookies in ~1.6 seconds.

Proxy required for Kasada Bot Defense Solver

Tokens are bound to the solving IP. Use KasadaCaptchaTask with proxyAddress + userAgent. The *TaskProxyLess variant returns ERROR_PROXY_REQUIRED at no charge.

$2.00per 1,000
~5.0savg solve
99%+success
12/mthroughput
proxyPort: 8080…0.00s
POST/createTask type=KasadaCaptchaTask
taskId tsk_4gmtyrg2
POLL/getTaskResult status=processing
status ready
token 0x999cc9c4334ed...
type: KasadaCaptchaTask● running on production solvers

What is Kasada Bot Defense?

Kasada is a bot defense platform that uses a custom JavaScript VM (ips.js) to fingerprint browsers and generate proof-of-work tokens. Kasada uses two tokens: x-kpsdk-ct (client token, ~30 min lifetime) and x-kpsdk-cd (single-use per-request proof-of-work).

How it works

1

Send Task

POST your KasadaCaptchaTask with the target URL and sitekey to our API. We'll queue it instantly.

2

We Solve

Capzy's proprietary solver returns the Kasada x-kpsdk-ct + x-kpsdk-cd tokens and KP_UIDz session cookies needed for protected requests. Designed for authorized testing and automation.

3

Get Token

Poll getTaskResult — when status is 'ready', the solution contains the token to inject into the target page.

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": "KasadaCaptchaTask",
        "proxyPort": "8080",
        "proxyType": "http",
        "proxyLogin": "user",
        "websiteURL": "https://example.com/",
        "proxyAddress": "123.45.67.89",
        "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)

# Step 3: Use the result — Kasada uses custom headers, not a Cookie:
sol = result["solution"]
headers = {
    "x-kpsdk-ct": sol["x-kpsdk-ct"],
    "x-kpsdk-cd": sol["x-kpsdk-cd"],   # single-use per request
    "User-Agent": sol.get("userAgent", ""),
}
cookies = sol.get("cookies", {})
resp = requests.get("https://target.example.com/", headers=headers, cookies=cookies)
print(resp.status_code)

Task parameters

Proxy fields below are required for this captcha — userAgent must match the one you’ll use when submitting the resulting token.
typetypestringreqyesKasadaCaptchaTaskProxyLess or KasadaCaptchaTask
websiteURLtypestringreqyesAny URL on the Kasada-protected domain
proxyTypetypestringreqyesProxy protocol: http or https
proxyAddresstypestringreqyesProxy IP address or hostname
proxyPorttypenumberreqyesProxy port number
proxyLogintypestringreqnoProxy username (if auth required)
proxyPasswordtypestringreqnoProxy password (if auth required)
userAgenttypestringreqyesUser-Agent string to use. Must match the UA you use when submitting the token

Solution response

x-kpsdk-cttypestringThe primary Kasada clearance token. Submit as the `x-kpsdk-ct` HTTP header on subsequent requests.
x-kpsdk-cdtypestringSingle-use challenge response token — must be submitted as `x-kpsdk-cd` header on the FIRST request after the solve. Subsequent requests don't need it.
x-kpsdk-vtypestringKasada SDK version identifier — submit as `x-kpsdk-v` header so the server expects payload v matching.
x-kpsdk-rtypestringRandom nonce token — submit as `x-kpsdk-r` header. Kasada rotates this per session.
x-kpsdk-sttypestringSession-state token — submit as `x-kpsdk-st` header.
x-kpsdk-fctypestringFingerprint-confirmation token — submit as `x-kpsdk-fc` header on the first protected request.
x-kpsdk-htypestringHeader-binding token — submit as `x-kpsdk-h` header. Ties the clearance to the specific UA + headers.
cookiestypeobjectKasada session cookies as `{KP_UIDz, KP_UIDz-ssn}` (object form, not array). Set both before the next request — replay without them invalidates the clearance.
userAgenttypestringExact User-Agent the solver used. Reuse verbatim — Kasada correlates UA with the TLS fingerprint that produced the clearance.
expiresAttypenumberUnix epoch (seconds) when the `x-kpsdk-ct` token expires. Typically ~30 minutes from solve time. Re-solve before this deadline if your session is long-lived.

Example response

Full getTaskResult response shape. The fields in the table above describe what's inside solution — the outer envelope (errorId, status) is identical for every captcha type.

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "cookies": {
      "KP_UIDz": "session_uid_value",
      "KP_UIDz-ssn": "ssn_value"
    },
    "expiresAt": 1715301000,
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
    "x-kpsdk-h": "header_binding_token",
    "x-kpsdk-r": "random_nonce_per_session_value",
    "x-kpsdk-v": "j-1.0.0",
    "x-kpsdk-cd": "challenge_response_single_use_token",
    "x-kpsdk-ct": "01HZ8X9Y...long_kasada_clearance_token...AAAAAAA",
    "x-kpsdk-fc": "fingerprint_confirmation_token",
    "x-kpsdk-st": "session_state_token_value"
  }
}

Error response

Failures use the same envelope with errorId: 1 plus errorCode + errorDescription. See the error-code reference for the full list.

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

Pending response

While the solver is still working, getTaskResult returns status: "processing". Poll every 1–2 seconds until ready or failed.

{
  "errorId": 0,
  "status": "processing"
}

Features

~1.6 second solve time
Captures x-kpsdk-ct + x-kpsdk-cd + cookies
Capzy proprietary infrastructure — high-quality solves
Returns the full token chain (ct + cd + cookies) in one request
CT reusable for ~30 minutes

task types

required: KasadaCaptchaTask

Frequently asked questions

start solving kasada bot defense.

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