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

# Cloudflare Turnstile

> Bypass Cloudflare's Turnstile protection and get valid tokens.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.scrapely.io/v2/tasks/create \
    -H "Content-Type: application/json" \
    -H "X-API-Key: YOUR_API_KEY" \
    -d '{
      "captcha": {
        "websiteURL": "https://example.com",
        "websiteKey": "0x4AAAAAAABc...",
        "type": "Turnstile"
      }
    }'
  ```

  ```python Python SDK theme={null}
  from scrapely import Scrapely

  client = Scrapely(api_key="YOUR_API_KEY")

  task = client.cloudflare.Turnstile(
      website_url="https://example.com",
      website_key="0x4AAAAAAABc..."
  )

  print(task.result.solution)
  ```
</CodeGroup>

## Request fields

### captcha

| Field        | Type   | Required | Description                                                                             |
| ------------ | ------ | -------- | --------------------------------------------------------------------------------------- |
| `websiteURL` | string | Yes      | URL of the page with Turnstile. Must start with `http://` or `https://`. Max 254 chars. |
| `websiteKey` | string | Yes      | The sitekey from the page. Min 10, max 200 chars.                                       |
| `type`       | string | Yes      | Must be `"Turnstile"`.                                                                  |

### proxy (optional)

| Field      | Type    | Required | Description                           |
| ---------- | ------- | -------- | ------------------------------------- |
| `scheme`   | string  | Yes      | Proxy scheme (e.g. `http`, `socks5`). |
| `host`     | string  | Yes      | Proxy host.                           |
| `port`     | integer | Yes      | Proxy port.                           |
| `username` | string  | No       | Proxy username.                       |
| `password` | string  | No       | Required if `username` is provided.   |

## Response

```json theme={null}
{
  "success": true,
  "task_id": "52989a12-a43c-4bf9-ba1d-8ab1e1509169",
  "status": "completed",
  "created_at": "2026-04-06T10:54:56.652354+00:00",
  "result": {
    "solution": "0.kFmElH3zFbBqF9..."
  },
  "completed_at": "2026-04-06T10:55:08.312452+00:00"
}
```

<Info>
  The Turnstile token is single-use. Submit it to the target site immediately after receiving it.
</Info>
