Skip to content

Cloudflare Turnstile ​

Cloudflare Turnstile — современная альтернатива CAPTCHA от Cloudflare, ориентированная на приватность. Работает по аналогии с reCAPTCHA, но без отслеживания поведения пользователя. Turnstile отображается как виджет на формах и проверяет пользователя с минимальным взаимодействием — часто невидимо.

Обзор ​

Turnstile обычно встречается в двух видах:

  • Отдельный виджет, встроенный непосредственно в форму сайта
  • Cloudflare interstitial-страницы при DDoS-защите
  • Три режима: Managed, Non-Interactive и Invisible
  • Возвращает токен, который нужно отправить вместе с формой

Формат запроса ​

GET/in.php
keystringобязателен

Ваш API-ключ (32 символа)

methodstringобязателен

Значение: turnstile

sitekeystringобязателен

Сайткей Turnstile со страницы (data-sitekey или вызов turnstile.render())

pageurlstringобязателен

Полный URL-адрес, на котором отображается Turnstile

actionstringопционально

Значение необязательного параметра action, которое вы нашли на странице, может быть определено в атрибуте data-action или передано в вызов turnstile.render

userAgentstringопционально

User-Agent, передаваемая в браузер решателя. Рекомендуется для точности на защищённых сайтах

proxystringопционально

Формат: login:password@123.123.123.123:3128

proxytypestringопционально

Тип прокси: HTTP, HTTPS, SOCKS4, SOCKS5

jsoninteger (0/1)по умолчанию: 0опционально

0 — ответ текстом, 1 — ответ JSON

Как решать капчу ​

Шаг 1. Найдите сайткей ​

  1. Просмотрите код элемента на странице, где появляется Turnstile
  2. Найдите атрибут data-sitekey в div-элементе
  3. Или найдите его в вызове turnstile.render():
javascript
turnstile.render('#challengeContainer', {
  sitekey: '3x00000000000000000000FF'
});

Шаг 2. Отправьте задачу нам ​

bash
curl -G "https://captcha-api.iwhat.pw/in.php" \
  -d key=YOUR_API_KEY \
  -d method=turnstile \
  -d sitekey=3x00000000000000000000FF \
  -d pageurl=https://example.com/page \
  -d json=1
python
import requests

params = {
    'key': 'YOUR_API_KEY',
    'method': 'turnstile',
    'sitekey': '3x00000000000000000000FF',
    'pageurl': 'https://example.com/page',
    'json': '1'
}

response = requests.get('https://captcha-api.iwhat.pw/in.php', params=params)
result = response.json()
task_id = result['request']
print(f"ID задачи: {task_id}")
js
const params = new URLSearchParams({
  key: 'YOUR_API_KEY',
  method: 'turnstile',
  sitekey: '3x00000000000000000000FF',
  pageurl: 'https://example.com/page',
  json: '1',
});

const res = await fetch(`https://captcha-api.iwhat.pw/in.php?${params}`);
const { request: taskId } = await res.json();
console.log(`ID задачи: ${taskId}`);

Шаг 3. Получение решения ​

python
import time

time.sleep(10)

params = {
    'key': 'YOUR_API_KEY',
    'action': 'get',
    'id': task_id,
    'json': '1'
}

response = requests.get('https://captcha-api.iwhat.pw/res.php', params=params)
result = response.json()

if result['status'] == 1:
    token = result['request']
    print(f"Токен решения: {token}")

Шаг 4. Вставьте токен ​

python
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://example.com/page')

driver.execute_script(f'''
    document.querySelector('[name="cf-turnstile-response"]').value = "{token}";
''')

driver.find_element_by_tag_name('form').submit()

Формат ответа ​

JSON-ответ (при json=1):

json
{
  "status": 1,
  "request": "0.4uMMZZdSfsVM8...610cd090"
}

Ответ в виде текста:

OK|0.4uMMZZdSfsVM8...610cd090

Распространённые ошибки ​

КодОписание
ERROR_WRONG_USER_KEYНеверный формат API-ключа
ERROR_KEY_DOES_NOT_EXISTТакого API-ключа не существует
ERROR_ZERO_BALANCEНедостаточно средств на балансе
ERROR_PAGEURLОтсутствует параметр pageurl
ERROR_WRONG_SITEKEYsitekey пустой или в неверном формате
ERROR_BAD_PROXYПрокси помечен как нерабочий
CAPCHA_NOT_READYРешение ещё не готово, подождите 5 сек

Советы и рекомендации ​

  • Всегда используйте точный URL страницы, на которой появляется Turnstile — несовпадение URL может вызвать ошибки
  • Используйте параметр json=1 для структурированных ответов, которые легче обрабатывать
  • Токены Turnstile одноразовые — запрашивайте новый токен для каждого вызова
  • Указывайте прокси и userAgent для лучшей точности на защищённых сайтах

TailCaptcha API Documentation