DataDomeSliderCookieProxyLess
Solve the DataDome slider from a captured challenge page and get the cleared datadome cookie back.
This is the self-driven DataDome slider solve. You capture the challenge page yourself and hand it over with the User-Agent you fetched it with; the solver works out the puzzle answer, verifies it, and returns the cleared datadome cookie value to set on your session. No proxy is sent to the solver, so the solve costs less than the managed DataDomeSliderCookie.
Recognising a slider block
The block arrives as a 403 with a small HTML page containing a dd object where rt is 'c', and it loads https://ct.captcha-delivery.com/c.js. JSON and XHR endpoints skip the HTML and return { "url": "https://geo.captcha-delivery.com/captcha/?…" } inline. A /captcha/ path is the slider; /interstitial/ means DataDomeInterstitialCookieProxyLess.
Building the request
Use the JSON url or captcha iframe src when available. Otherwise build captchaUrl from the var dd object
with URLSearchParams, the current datadome cookie as cid, the full websiteURL as referer, and dm=cd.
GET captchaUrl with the same User-Agent you will pass to the task, and base64-encode the whole response
body. That is challengePage.
websiteURL.solution.datadome as the datadome cookie on the protected domain and retry the blocked request.cid, hsh, t, s and e come from the dd object on the block page; datadomeCookie is the datadome cookie set on the blocked response, and blockedUrl is the URL you were blocked on:
const { cid, hsh, t, s, e } = dd;
const params = new URLSearchParams({
initialCid: cid,
hash: hsh,
cid: datadomeCookie,
t,
referer: blockedUrl,
s,
e,
dm: 'cd',
});
const captchaUrl = `https://geo.captcha-delivery.com/captcha/?${params}`;t=bv means the IP is burned
The t parameter must be fe. t=bv means the IP is hard-blocked at the network level: solving cannot clear it
and every attempt is wasted spend. Rotate the IP and re-trigger the block.
One identity, start to finish
The cookie is bound to the session behind cid and to the userAgent you submitted. Fetch the challenge page and
replay the cookie from the same IP and the same User-Agent, with a TLS fingerprint and header order that match a
real browser: a valid cookie on a mismatched client still gets a 403.
The full Set-Cookie line is in raw
solution.datadome is the cookie value on its own. The attributes the solver received (Max-Age, Domain, Path,
Secure, SameSite) stay available in solution.raw if you need to mirror them.
Related tasks
- DataDomeSliderCookie: proxy-required variant using the same captured challenge page.
- DataDomeTagsCookie: warm a session first so DataDome challenges you less often.
Supported Providers
| Provider | Price per 1,000 | Routing |
|---|---|---|
| $2.76 |
Request Schema
| Field | Type | Required | Description |
|---|---|---|---|
clientKey* | string | Yes | Your API key. Create one in the AnySolver dashboard. Example: |
task* | object | Yes | The task body. Required fields depend on the task type. See Tasks for per-task schemas. View task properties |
settings | object | No | Per-request settings for routing, auto retry, auto fallback, and proxy behavior. See Routing Strategies. View settings reference |
Task Object Properties
The task field accepts an object with the following properties:
| Field | Type | Required | Description |
|---|---|---|---|
type* | Yes | ||
websiteURL* | URL | Yes | Full URL of the protected page that returned the DataDome block. Use this exact URL as the Example: |
challengePage* | string | Yes | Base64-encoded raw response body from a GET to Example: |
userAgent* | string | Yes | User-Agent used to request the protected page and Example: |
captchaUrl* | URL | Yes | Full Example: |
{ "clientKey": "your-api-key-from-dashboard", "task": { "type": "DataDomeSliderCookieProxyLess", "websiteURL": "https://www.pokemoncenter.com/", "challengePage": "PCFET0NUWVBFIGh0bWw+PGh0bWw+…", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36", "captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMAlk-FmAyNOW8AUyTH_g%3D%3D&hash=5B45875B653A484CC79E57036CE9FC&cid=noJuZstmvINksqOxaXWQogbPBd01y3VaH3r&t=fe&referer=https%3A%2F%2Fwww.pokemoncenter.com%2F&s=9817&e=2b1d5a78107ded0d&dm=cd" }}Optional fields are not guaranteed across providers
Response Schema
| Field | Type | Required | Description |
|---|---|---|---|
status* | Yes | Task status: "processing", "ready", or "failed". Example: | |
errorId* | Yes | 0 = success, 1 = external error, 2 = internal error. Example: | |
taskId | string | No | Unique identifier returned when the task was created. Example: |
errorCode | No | Machine-readable error code. Example: | |
errorDescription | string | No | Human-readable error message with resolution hints. Example: |
cost | number | No | Actual cost charged for this task in USD. Example: |
taskType | No | The type of CAPTCHA task to solve. Example: | |
provider | No | Provider that handled this task. While processing, the provider currently solving it. Example: | |
solution | object | No |
Solution Object Properties
The solution field contains an object with the following properties:
| Field | Type | Required | Description |
|---|---|---|---|
datadome* | string | Yes | The solved DataDome cookie value to replay on the target. Example: |
raw* | Record<string, unknown> | Yes | Raw provider response data for advanced use cases. |
userAgent | string | No | User-Agent string used during solving (if applicable). Example: |