> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudcruise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Captcha

> Solve a captcha at a chosen step

The **Captcha** node solves one captcha at this point in the run. It runs the platform's solver for the named captcha whether or not the workflow's automatic captcha solving is on, so it is the way to say "solve here" when automatic solving is off, or when a captcha must be cleared at one specific step, such as right before a submit that only enables once the widget passes. See [Workflow Settings](/concepts/workflow-dsl/workflow-settings) for the automatic solving setting.

## Parameters

| Parameter | Type | Required | Description |
| - | - | - | - |
| `captcha_type` | string | Yes | `turnstile` (Cloudflare Turnstile) or `recaptcha_v2` |

## Examples

### Turnstile before a submit

```json theme={null}
{
  "id": "f2a3b4c5-6789-4d01-a234-ef0123456789",
  "name": "Solve Turnstile before submit",
  "action": "CAPTCHA",
  "parameters": {
    "captcha_type": "turnstile"
  }
}
```

### reCAPTCHA v2

```json theme={null}
{
  "id": "0b1c2d3e-4f56-4a78-9b01-c2d3e4f56789",
  "name": "Solve reCAPTCHA before login",
  "action": "CAPTCHA",
  "parameters": {
    "captcha_type": "recaptcha_v2"
  }
}
```

## Notes

* If no captcha of that type is on the page, the node passes and the run continues
* If the captcha is present and cannot be solved, the node fails with error code `CAPTCHA-E0001`, so the workflow's error-code actions (retry, alert, pause) apply
* With automatic captcha solving on, the node is a fast no-op once the captcha is already solved
* Captchas rendered inside an iframe are not detected and count as absent
* reCAPTCHA v2 is solved by a third-party solver on the worker
