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.
- Slider and device check
- datadome cookie returned
- Flat monthly price
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
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
-
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
-
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
-
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.
| Feature | CapSkip | Per-solve services |
|---|---|---|
| What it costs | A flat monthly plan from $35, cookies never counted | About $1.45 to $2.50 per 1,000 DataDome solves |
| Challenge types | Slider and device check through one request format | Differs from one service to the next |
| Where the solving runs | A Windows desktop, VPS or server you run | Remote servers that receive every challenge |
| A site that challenges again | Another cookie at no extra cost | Each fresh cookie is another charge |
| Your existing client | in.php, createTask or CapMonster CustomTask, kept as written | Rewritten to the provider's own task format |
| Scaling up | Set by your hardware and your sticky proxies | Queues and account limits the provider sets |
| Which sites you work on | Stays on your own machine | Shared with an outside provider on every task |
Pricing
Stop paying per solve
Choose your license
Bronze License
$35/ month
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.
Related CAPTCHA solvers & guides
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?
What goes into a DataDome task?
Are proxies required for DataDome at volume?
Why does the site reject a cookie CapSkip returned?
Can I choose my own User-Agent?
What happens if DataDome has banned my IP?
How quickly is a DataDome challenge solved?
Will more DataDome cookies raise my bill?
Can my current DataDome code talk to CapSkip?
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.
