Skip to main content
Glama

Solve DataDome

capskip_solve_datadome

Solves a DataDome challenge (slider or device check) and returns the datadome cookie plus User-Agent to reuse from the same IP, so a blocked request returns the protected page's content.

Instructions

Pass a DataDome challenge — the block page (HTTP 403, sometimes 401) a DataDome-protected site returns instead of its content, with a slider (/captcha/) or a device check (/interstitial/) loaded from geo.captcha-delivery.com — and get the datadome cookie. Requires captcha_url and url. IMPORTANT: the cookie belongs to ONE IP address and ONE User-Agent. Repeat the request with the returned cookie as the Cookie header, the returned userAgent as the User-Agent, and from the same IP: through the proxy you passed, or — when the result carries proxy — through that proxy, which CapSkip picked from its own DataDome proxy list because you passed none. Any other address or User-Agent gets the block page again.

Input Schema

NameRequiredDescriptionDefault
urlYesFull URL of the page that returned the DataDome block page.
proxyNoThe proxy the requests carrying the cookie will go through. DataDome ties the cookie to the IP that earned it, so solve from the same address you will use it from. Leave it out when those requests leave from the machine running CapSkip.
timeoutNoSeconds to wait before giving up. Maximum 600.
userAgentNoThe User-Agent the cookie will be used with. It must be stock Chrome for Windows with the same major version as the browser CapSkip solves with; anything else is refused. Usually leave it out: CapSkip then uses its own browser's User-Agent and reports it, and you send that one.
captcha_urlYesThe address of the DataDome challenge iframe on geo.captcha-delivery.com: /captcha/ for a slider, /interstitial/ for a device check. Take the iframe's src from the block page when it has one. Otherwise build it from the block page's `var dd={...}` object: path 'interstitial' if dd.rt is 'i', else 'captcha'; query initialCid=dd.cid, hash=dd.hsh, cid=dd.cookie, t=dd.t (when present), referer=<the page URL>, s=dd.s, e=dd.e (when present), b=dd.b (when present), dm=cd, every value URL-encoded; host dd.host or geo.captcha-delivery.com. A dd object with 't':'bv' means the address is banned: change it and fetch the page again instead.

Output Schema

NameRequiredDescriptionDefault
codeYes
proxyNo
cookieYes
captchaIdYes
userAgentNo
solveSecondsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.5.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it is candid about the operational constraint that this is not a one-shot solve: the cookie is bound to one IP and one User-Agent, and violating that replays the block page. It also documents CapSkip's fallback behavior of choosing its own DataDome proxy and returning it as `proxy`, plus the 'dd.t = bv means banned IP' failure mode. That is behavior-hardened context an agent could not infer from readOnlyHint=false and openWorldHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The critical scoping sentence and the required inputs are front-loaded, then the replay instructions follow in a logical order. The prose is dense but nearly every clause carries a constraint the agent must obey; the opening sentence is somewhat overstuffed with block-page signatures that could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nested proxy objects, five parameters, and an output schema, the description covers the full lifecycle: how to get in, what is returned, and how to use the result correctly. Even though an output schema exists, naming the returned `cookie`, `userAgent`, and `proxy` fields directly supports the imperative replay step, so nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter already carries detailed documentation, so the schema does the heavy lifting and the baseline of 3 applies. The description adds only limited extra meaning beyond that, chiefly restating that captcha_url and url are required and reinforcing the IP/User-Agent binding for the proxy parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb (pass/solve) and specific resource (a DataDome challenge), and describes the artifact returned (the `datadome` cookie). It also identifies the exact product and block-page signatures (HTTP 403/401, /captcha/ slider, /interstitial/ device check), which distinguishes it from every sibling solver named after a different captcha vendor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives rich when-to-use context: it explains what the target block page looks like and how to obtain captcha_url when the iframe src is absent. It further states when to omit a proxy and how to replay the cookie afterwards. It does not explicitly name a sibling alternative or state when not to call this tool (e.g., non-DataDome challenges), which keeps it off a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.