Skip to content
DataDome
DataDomeSlider
proxy required

DataDome Solver, solved in 5.0s.

Bypass DataDome bot protection — slider/click and interstitial/device-check challenges. Returns the datadome cookie. Routed for you (ProxyLess) by default.

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

DataDome runs ~85,000 per-customer ML models and is widely considered the hardest anti-bot system in the industry. It scores behavior + IP reputation + TLS/JA3 fingerprint, with the slider being only the visible tip. Deployed on major e-commerce, ticketing, and travel sites where low-reputation IPs almost always fail.

Quick Integration

Send the captchaUrl your client captured from the blocked page's iframe, the datadome cookie from that session, and the userAgent you'll replay with. We embed the challenge and solve the slider.

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": "DataDomeSlider",
        "captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrl...&hash=789361B6...&cid=6QAEcL8coBYT...&t=fe&referer=https%3A%2F%2Fwww.example.com%2F&s=40070&e=3e531bd3...",
        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
        "cookies": [{"name":"datadome","value":"<datadome cookie from your blocked session>","domain":".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 — drop-in Cookie: header replay
sol = result["solution"]
headers = {
    "Cookie": sol["cookie"],
    "User-Agent": sol.get("userAgent", ""),
}
# IMPORTANT: route through the SAME proxy you supplied at solve time
resp = requests.get("https://target.example.com/", headers=headers, proxies={
    "http":  "http://USER:PASS@PROXY_HOST:PORT",
    "https": "http://USER:PASS@PROXY_HOST:PORT",
})
print(resp.status_code, len(resp.text), "bytes")

1. Send Payload

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

2. Solving Engine

Capzy's proprietary solver handles DataDome's slider challenge end-to-end. The ProxyLess path is routed for you because low-trust IPs are auto-classified before the slider even renders. DataDomeSlider uses your own proxy directly. A fast cookie path (AntiDataDomeTask) is in beta: it builds the device link, generates the signed payload, and returns the datadome cookie over HTTP — ~80% faster and ~90% less bandwidth, covering both interstitial and slider.

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.
typetypestringreqyesDataDomeSlider for the slider/click puzzle, or DataDomeInterstitial for the interstitial / device-check page (no user interaction — we run DataDome's challenge in a real browser and return the cookie).
captchaUrltypestringreqyesThe DataDome challenge URL (geo.captcha-delivery.com/captcha/?initialCid=...&cid=...&hash=...&t=fe&referer=...&s=...&e=...) captured from the blocked page's iframe. This is the primary input — we embed it and solve the slider. It already contains the site (referer), the challenge params, and the cid (your datadome cookie). Pair it with a sticky proxy on the IP that was blocked. If t=bv the IP is hard-blocked — switch proxy.
websiteURLtypestringreqnoOptional. The site the challenge appeared on. We derive this from the captchaUrl's referer automatically; only pass it to override that.
userAgenttypestringreqyesThe User-Agent you will replay your requests with. DataDome binds the cookie to it, so it MUST match exactly. Supported: modern Chrome on Windows (Chrome 120–149, Windows NT 10.0).
cookiestypearrayreqnoThe datadome cookie from your blocked session: [{ name: "datadome", value: "...", domain: ".yoursite.com" }]. Strongly recommended — without it DataDome may serve a block page instead of the slider. (If omitted, we fall back to the cid embedded in the captchaUrl.)
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

cookietypestringThe full Set-Cookie string: datadome=VALUE; Max-Age=31536000; Domain=; Path=/; Secure; SameSite=Lax. Set it on your HTTP client for the target domain. IP-bound — replay from the same proxy IP.
tokentypestringThe bare datadome cookie VALUE (no attributes) — for integrations that read a generic .token field.
userAgenttypestringThe User-Agent the cookie is bound to. You MUST replay your requests with this exact User-Agent (and the same proxy IP) or DataDome rejects the cookie.

Example response

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "cookie": "datadome=<long opaque value>; Max-Age=31536000; Domain=; Path=/; Secure; SameSite=Lax",
    "token": "<long opaque datadome cookie value, IP-bound>",
    "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

Routed for you (ProxyLess) by default (low-trust IPs auto-fail on enterprise sites)
Capzy proprietary infrastructure — high-quality solves
Solves the slider challenge reliably
Handles slider, click, and interstitial challenge variants
Automatic session-warming for captchaUrl-mode (loads only DD's JS, ~31 KB per warm-up)
Fast-fail on hard-blocked IPs (t=bv) — returns ERROR_IP_BLOCKED in <1s instead of hanging
Captures cookie directly from DD's /check response — works even when the challenge runs out-of-iframe
Returns datadome cookie + matching User-Agent

Pricing & Stats

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

Start solving datadome.

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

Frequently asked questions