Solve a captcha
solve_captchaSolve reCAPTCHA v2/v3/Enterprise, Cloudflare Turnstile, DataDome, or image captchas during browser/HTTP automation; return the token, cookie, or text needed to pass the page.
Instructions
Solve a captcha on a web page and return the token / cookie / text needed to pass it. Use when an authorised browser or HTTP automation is blocked by reCAPTCHA (v2, v3, Enterprise), Cloudflare Turnstile, DataDome or an image captcha. Before calling: identify the type and read the sitekey from the page (call list_captcha_types for where to find it and which fields each type needs). Required: recaptcha_* and turnstile → url + sitekey; datadome → url + challengeUrl + proxy; image → body (base64). Waits for the result (up to ~50 s by default, polling automatically). If it is still solving at the end, it returns the task id: call get_task with it instead of solving again. Each successful solve is billed to the CaptchaNo balance (cost is returned); failed solves are free. Do not call repeatedly for the same captcha: one token is valid for one submission and expires in about 2 minutes, so use it right away.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Full URL of the page that shows the captcha. Required for every type except image. | |
| body | No | image only (required): the captcha image, base64-encoded (a data:image/...;base64, prefix is accepted). | |
| type | Yes | Captcha kind: recaptcha_v2 (checkbox / invisible), recaptcha_v3 (score, no widget), recaptcha_enterprise, turnstile (Cloudflare), datadome, image (OCR). | |
| cData | No | Turnstile only: value of data-cdata / the cData render option, if present. | |
| proxy | No | Proxy the solve should run through: "http://user:pass@host:port" (schemes http, socks4, socks5) or an object. Required for datadome; optional otherwise. | |
| action | No | Action name for recaptcha_v3 / recaptcha_enterprise (from grecaptcha.execute) or Turnstile data-action. | |
| sitekey | No | Site key from the page (data-sitekey / k= / render= parameter). Required for recaptcha_* and turnstile. | |
| minScore | No | recaptcha_v3 only: minimum score the token must reach, 0.1-0.9. | |
| pageData | No | Turnstile only: chlPageData value when the captcha is a Cloudflare challenge page rather than a widget. | |
| invisible | No | recaptcha_v2 / recaptcha_enterprise: true when the widget is invisible (no checkbox). | |
| userAgent | No | User-Agent of the browser/HTTP client that will use the solution. Recommended so the solution matches your client. | |
| challengeUrl | No | DataDome only (required): the full captcha URL from the blocked response (iframe src / redirect), including its query string. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Task id; pass to get_task to fetch the result again (kept 10 minutes). | |
| cost | No | Amount billed in USD (decimal string). | |
| text | No | Recognised text for image captchas. | |
| type | Yes | ||
| error | No | ||
| token | No | Token for recaptcha_* / turnstile. | |
| cookie | No | Cookie for datadome. | |
| status | Yes | ||
| createdAt | No | ||
| solveTime | No | ||
| userAgent | No | User-Agent the solution is bound to; reuse it when present. | |
| billedFrom | No | ||
| sessionSpend | No | Spend tracked by this MCP server process (CAPTCHANO_MAX_SPEND_USD). |