DataDome

DataDome Solver: Bypass DataDome and Get the datadome Cookie

DataDome halts a scraper at a slider or a device check until it holds a valid datadome cookie. CapSkip clears the challenge on your own Windows PC or VPS and replies with the cookie, the User-Agent it is bound to and, where it applies, the proxy, all on one flat monthly plan.

Windows x64·Runs locally, so no CAPTCHA leaves your machine
  • Slider and device check
  • datadome cookie returned
  • Flat monthly price
DataDome cookies a month30,000
30.0k250.0k
Metered elsewhere, about $1.98 per 1,000$59.40
CapSkip Bronze, flat$35.00
$24.40stays in your pocketevery month, at this volume

Many large shops, marketplaces and news sites sit behind DataDome, and when it doubts a request it swaps the page for a block screen holding a slider or a short device check. CapSkip is a DataDome solver that clears that screen for your scripts and hands back the datadome cookie, so your HTTP client keeps fetching the site without a person stepping in. It runs on a Windows desktop, VPS or server that you control.

You send the challenge address from the block page, the URL of the page you asked for and the proxy your later requests will go out through. The reply carries the cookie together with the User-Agent it was earned with, plus the proxy whenever CapSkip took one from its own list. Use all three together, because DataDome accepts a cookie only from the IP and the User-Agent that earned it.

Metered services bill somewhere between $1.45 and $2.50 for every thousand DataDome solves, and each fresh challenge counts again. CapSkip is a flat plan from $35 a month, priced per machine rather than per cookie. Code that targets the legacy in.php / res.php API, createTask with DataDomeSliderTask, or for a CapMonster CustomTask with class DataDome can hand their jobs to CapSkip as they are.

Bring sticky proxies for volume. A DataDome cookie only works from the IP that earned it, so once you move past testing, plan one sticky residential proxy per task and keep using each cookie through that same proxy. Read the DataDome API reference

What the DataDome solver covers

Slider and device check

A blocked visitor sees either a slider to drag or a device check that runs by itself for a few seconds. Both go through the same request, and if a device check moves on to a slider, CapSkip follows it there.

A cookie that is ready to send

You receive the datadome cookie exactly as the site set it, with its domain, path and lifetime. Put the part before the first semicolon in your Cookie header and repeat the request that was blocked.

User-Agent and proxy in the reply

Each answer states the User-Agent the cookie belongs to, and names the proxy when one came from the app's own DataDome list, so your client always knows which identity to present next.

Sticky proxies for real volume

A single address will do for a handful of tests. Past that, give every task and its follow-up requests their own sticky residential proxy, so no IP collects enough block pages to be banned.

Three request formats understood

method=datadome on in.php, createTask with DataDomeSliderTask and the CapMonster CustomTask with class DataDome are all accepted, and each gets its answer in the shape that client already reads.

Repeat challenges included

DataDome may challenge the same session again later in the day. Every new cookie falls under the monthly plan, so a site that asks often never inflates what you pay.

Three ways to send DataDome jobs to CapSkip

Python
import requests
from capskip import CapSkip

solver = CapSkip(host="127.0.0.1", port=8080)
PROXY = "login:[email protected]:8080"  # one sticky residential proxy per task

# captcha_url is the challenge address built from the block page's dd object.
result = solver.datadome(
    captcha_url=captcha_url,
    pageurl="https://www.example.com/",
    proxy={"type": "HTTP", "uri": PROXY},
)

# Same IP, same User-Agent: the cookie only works from the address that earned it.
# Sent without a proxy, CapSkip may use its own DataDome list and names it in result["proxy"].
page = requests.get(
    "https://www.example.com/",
    headers={"User-Agent": result["userAgent"], "Cookie": result["cookie"]},
    proxies={"http": "http://" + PROXY, "https": "http://" + PROXY},
)

With the CapSkip Python SDK it is a single call: pass the challenge address along with the proxy your scraper uses, then send the cookie back through that proxy with the User-Agent from the result.

Legacy in.php and res.php

Post method=datadome with the captcha_url and the page URL, poll res.php, and read the cookie after OK|. JSON mode returns the User-Agent and any list proxy as fields of their own.

createTask with DataDomeSliderTask

JSON clients submit a DataDomeSliderTask, or the DatadomeSliderTask spelling CapSolver uses, and collect the cookie from the solution object that getTaskResult returns.

CapMonster CustomTask

Tools built for CapMonster keep sending a CustomTask with class DataDome. The answer lists the datadome cookie under the site's domain, exactly where that client looks for it.

Your first datadome cookie in three steps

  1. Set CapSkip up on your machine

    Put the app on the desktop, VPS or server that will run your DataDome jobs, and give it generous memory if many will run at once. Download CapSkip

  2. Pick your plan, or test it first

    Plans are priced by the number of machines, never by cookies. Not ready to pay yet? Start the free trial, then sign in with the login we send by email. See the plans

  3. Send a job with its proxy

    Submit the captcha_url, the page URL and the sticky proxy your scraper uses, then send the returned cookie through that proxy with the same User-Agent. Open the DataDome docs

Flat-rate DataDome solving vs paying per cookie

The challenge is the same either way. What differs is where the work runs, who learns your targets and how the bill grows.

FeatureCapSkipPer-solve services
What it costsA flat monthly plan from $35, cookies never countedAbout $1.45 to $2.50 per 1,000 DataDome solves
Challenge typesSlider and device check through one request formatDiffers from one service to the next
Where the solving runsA Windows desktop, VPS or server you runRemote servers that receive every challenge
A site that challenges againAnother cookie at no extra costEach fresh cookie is another charge
Your existing clientin.php, createTask or CapMonster CustomTask, kept as writtenRewritten to the provider's own task format
Scaling upSet by your hardware and your sticky proxiesQueues and account limits the provider sets
Which sites you work onStays on your own machineShared with an outside provider on every task

Pricing

Stop paying per solve

Choose your license

Bronze License

$35/ month

Subscribe to Bronze

Instant license activation

Billed monthly. Cancel from your account whenever you like.

Same features. More machines, more throughput.

Every machine solves as fast as its own CPU and memory allow. More machines run more threads at the same time, so Silver solves twice as many CAPTCHAs at once and Gold three times as many.

  • Unlimited solving, no daily cap
  • Unlimited threads, speed scales with your hardware
  • 90% to 100% recognition accuracy
  • Drop-in replacement for the major solving service APIs
  • Works with almost any tool, no coding required
  • REST API, SDKs and a browser extension
  • Free training when a new CAPTCHA type appears
  • Runs on your machine, nothing leaves it

Every CAPTCHA type CapSkip solves is on every license. See the coverage band

Just want to try it first?

Start with a free 3-day trial and solve 500 CAPTCHAs of any type on your own targets.

Start the free trial

How DataDome blocks scrapers, and how to get the cookie through an API

DataDome is a bot protection service that sits in front of a website and scores every request as it arrives. A request it trusts goes straight through. One it doubts receives HTTP status 403, sometimes 401, and a small HTML page in place of the content. That page defines a script object called dd and loads the challenge in an iframe from geo.captcha-delivery.com. Only a passed challenge earns the datadome cookie that lets the following requests in.

The challenge comes in two forms. The slider, under the path /captcha/ in the iframe address, asks the visitor to drag a handle along a bar. The device check, under /interstitial/, shows a brief verification screen and needs no input, though DataDome can follow it with a slider. A DataDome bypass for automation has to cope with either, and CapSkip takes both through the same captcha_url field, which you assemble from the fields of the dd object.

The cookie is bound to the IP address and the User-Agent that earned it. Replay it from another address, or under another User-Agent, and the block page comes straight back. So send the proxy your scraper will use with each task, reuse the User-Agent named in the reply, and keep the newest datadome cookie whenever the site hands out a replacement. When the site challenges again, build a new captcha_url from the new block page and submit another task.

Sort out your proxies before you scale. DataDome weighs the address as heavily as the visitor, so a steady run of block pages from one IP ends in a ban on that site, and a block page marked as banned cannot be passed from that address at all. Use residential proxies that keep the same exit IP for at least a few minutes, one per task, and use each cookie through the proxy that solved it. A proxy that switches IP on every connection cannot produce a working cookie.

Related guides: DataDome API reference · CAPTCHA solving for web scraping · AWS WAF CAPTCHA solver

What does CapSkip return when it solves DataDome?
The datadome cookie, in the shape your client expects. The legacy res.php call gives the full cookie string after OK|, and with json=1 it adds a userAgent field and, when the proxy came from the app's list, a proxy field. A DataDomeSliderTask returns the cookie in its solution, and a CapMonster CustomTask lists it under the site's domain.
What goes into a DataDome task?
Three things matter: the captcha_url, which is the challenge iframe address you build from the block page, the pageurl of the page that was blocked, and the proxy your later requests will use. A userAgent is optional. The API docs show field by field how to assemble the captcha_url from the dd object.
Are proxies required for DataDome at volume?
For a few tests, your own connection is enough. For volume, yes: plan on one sticky residential proxy per task, kept on the same exit IP for at least a few minutes. Proxies that rotate on every connection will not work, because the cookie only passes from the address that earned it. You can pass a proxy per task or load a list into the app.
Why does the site reject a cookie CapSkip returned?
Almost always because it was sent from a different IP or with a different User-Agent than the solve used. Send it through the same proxy, with the User-Agent named in the reply. If the block page returns anyway, the site has chosen to challenge again, so build a new captcha_url from it and submit a fresh task.
Can I choose my own User-Agent?
Within limits. If you send one, it has to be a User-Agent CapSkip can earn a valid cookie with, and others are refused at once with ERROR_WRONG_USERAGENT rather than producing a cookie the site would turn down. Leave it out and CapSkip picks one and names it in the reply, ready to copy. The API docs list exactly which are accepted.
What happens if DataDome has banned my IP?
A ban cannot be passed from that address, so CapSkip refuses the task straight away with ERROR_PROXY_BANNED instead of spending time on it. You can spot it before submitting: the dd object on the block page carries t set to bv rather than fe. Switch to another proxy and request the page again.
How quickly is a DataDome challenge solved?
Usually between 3 and 20 seconds. Device checks sit at the short end of that range and sliders at the long end. Your jobs never wait behind those of other customers, so your machine and your proxy set the pace, and the number of DataDome jobs that run side by side is a setting in the app.
Will more DataDome cookies raise my bill?
No. What you pay follows the number of machines running CapSkip, starting with Bronze at $35 a month for one, and solves are never counted. A site that challenges every session costs the same as one that rarely does, and retries after a ban or an expired cookie are included too.
Can my current DataDome code talk to CapSkip?
Usually without edits. CapSkip accepts in.php with method=datadome, createTask with DataDomeSliderTask (CapSolver's DatadomeSliderTask spelling as well) and the CapMonster CustomTask with class DataDome. Select that service in the app and the requests your code already makes are answered on your own machine.

Get past DataDome without paying per cookie

Set CapSkip up once, sign in and route your DataDome block pages to a machine you control. Sliders, device checks and repeat challenges all fall under one monthly plan.