API Cloudflare Turnstile solver
Состояние API
- Состояние за 24 ч
- Норма
- Среднее время за 24 ч
- —
- Стабильно / норма
- Доступно
- Ограничено
- Почти недоступно
Последние 24 часа
Последние 30 дней
API EverySolve для Cloudflare Turnstile возвращает токен для вашего сценария прохождения проверки. Отправьте POST /api/v1/captcha, указав в type значение turnstile, и передайте входные данные, перечисленные ниже.Cloudflare Turnstile — встроенный виджет, настроенный ключом сайта Turnstile. Он может работать в управляемом, неинтерактивном или невидимом режиме. Возвращает токен для cf-turnstile-response. Страница проверки Cloudflare, напротив, блокирует переход и возвращает данные cookie для доступа к странице.
$1.53 за 1 000 успешных решений ($0.001528 за каждое успешное решение). Неудачные решения не оплачиваются.
Промпт для ИИ
Помогите мне написать скрипт, который вызывает API EveryInfra «Cloudflare Turnstile».
Контракт API:
- Запрос: POST https://api.everyinfra.com/api/v1/captcha с заголовком Authorization: Bearer <API Key>. Берите ключ из переменной окружения EVERYINFRA_API_KEY, не указывайте его в коде.
- В теле запроса задайте для type значение turnstile, а параметры укажите рядом, на том же уровне.
- Обязательные параметры:
- website_url: Точный адрес страницы, на которой появляется проверка, включая нужный путь, а не только главную страницу сайта.
- website_key: Публичный ключ сайта или виджета, скопированный именно из этой интеграции на целевом сайте; это не секретный ключ.
- Необязательные параметры:
- action: Название действия, которое использует этот экземпляр виджета; скопируйте его из интеграции целевого сайта, а не придумывайте универсальное название действия.
- cdata: Пользовательское значение данных виджета из того же экземпляра проверки, если страница его передаёт.
- page_data: Сериализованные данные страницы, привязанные к этому экземпляру виджета, если целевой сайт их предоставляет.
- Пример тела запроса:
{
"type": "turnstile",
"website_url": "https://demo.turnstile.workers.dev/",
"website_key": "1x00000000000000000000AA"
}
- Оплата: $1.53 за 1 000 успешных решений ($0.001528 за каждое успешное решение). Неудачные решения не оплачиваются.
- При ошибке 422 исправьте параметры по подсказкам и допустимым значениям из ошибки. При 429 или 503 дождитесь истечения Retry-After и повторите попытку.
Прежде чем писать код, спросите меня, сколько записей нужно обработать и в каком формате сохранить результаты, затем согласуйте со мной план и примерную стоимость.Параметры запроса
| Имя | Расположение | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|---|
Authorization | header | string | Да | - | Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода. |
type | body | string | Да | turnstile | Тип капчи, фиксированное значение. |
website_url | body | string | Да | - | Точный адрес страницы, на которой появляется проверка, включая нужный путь, а не только главную страницу сайта. |
website_key | body | string | Да | - | Публичный ключ сайта или виджета, скопированный именно из этой интеграции на целевом сайте; это не секретный ключ. |
action | body | string | Нет | - | Название действия, которое использует этот экземпляр виджета; скопируйте его из интеграции целевого сайта, а не придумывайте универсальное название действия. |
cdata | body | string | Нет | - | Пользовательское значение данных виджета из того же экземпляра проверки, если страница его передаёт. |
page_data | body | string | Нет | - | Сериализованные данные страницы, привязанные к этому экземпляру виджета, если целевой сайт их предоставляет. |
Примеры кода
curl -X POST 'https://api.everyinfra.com/api/v1/captcha' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"type": "turnstile",
"website_url": "https://demo.turnstile.workers.dev/",
"website_key": "1x00000000000000000000AA"
}'Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.
Пример ответа
Получено October 24, 2026 at 22:37 (UTC) вызовом этого API с параметрами из примера кода выше. token и solution взяты из реального ответа этого вызова. id, billing и quota меняются при каждом вызове, поэтому показана только их структура.
{
"id": "req_…",
"type": "turnstile",
"token": "XXXX.DUMMY.TOKEN.XXXX",
"solution": {
"token": "XXXX.DUMMY.TOKEN.XXXX"
},
"billing": {
"charged": …,
"charged_usd": …,
"balance_after_usd": …,
…
},
"quota": { … }
}Откуда брать параметры для Cloudflare Turnstile
Скопируйте website_key из data-sitekey или turnstile.render; если action, cdata и page_data указаны, скопируйте их из того же экземпляра виджета.
Код для поиска этих значений на странице
<div class="cf-turnstile" data-sitekey="<YOUR-SITE-KEY>" data-theme="light" data-size="normal" data-callback="onSuccess"></div>
const widgetId = turnstile.render("#turnstile-container", { sitekey: "<YOUR-SITE-KEY>", callback: function (token) { … }, });
<input type="hidden" name="cf-turnstile-response" value="TOKEN_VALUE" />Как определить Cloudflare Turnstile
Cloudflare Turnstile — встроенный виджет, настроенный ключом сайта Turnstile. Он может работать в управляемом, неинтерактивном или невидимом режиме.
Чем Cloudflare Turnstile отличается от других проверок
Возвращает токен для cf-turnstile-response. Страница проверки Cloudflare, напротив, блокирует переход и возвращает данные cookie для доступа к странице.
Как использовать API для Cloudflare Turnstile
API возвращает токен. Вставьте его в скрытое поле cf-turnstile-response. Токен действует 300 секунд и может быть использован только один раз.
- 01Выполните запрос GET /api/v1/captcha/types и выберите запись
turnstile. - 02Выполните POST /api/v1/captcha, передав
type: "turnstile"и обязательные параметры. - 03Получите токен из
token. - 04Вставьте полученный токен в скрытое поле
cf-turnstile-responseи отправьте форму в течение 300 секунд, пока токен действителен. Токен можно использовать только один раз.
Оплата и доступность EverySolve списывает средства только при успешном предоставлении решения. За неудачную попытку итоговое списание не производится, а зарезервированная сумма возвращается автоматически. Получайте available и поля с ценами из GET /api/v1/captcha/types при отправке запроса, а не воспринимайте их как статические данные страницы.
Вопросы об интеграции Cloudflare Turnstile
Как определить Cloudflare Turnstile перед выбором типа?
Cloudflare Turnstile — встроенный виджет, настроенный ключом сайта Turnstile. Он может работать в управляемом, неинтерактивном или невидимом режиме. Используйте turnstile, только если эти признаки соответствуют целевой проверке.
Какие значения с целевой страницы нужны в запросе для Cloudflare Turnstile?
Скопируйте website_key из data-sitekey или turnstile.render; если action, cdata и page_data указаны, скопируйте их из того же экземпляра виджета. Передайте website_url и website_key. Необязательные параметры: action, cdata и page_data.
Что возвращает Cloudflare Turnstile и с чем это не следует путать?
API Cloudflare Turnstile возвращает токен в token. Формат решения: token. Возвращает токен для cf-turnstile-response. Страница проверки Cloudflare, напротив, блокирует переход и возвращает данные cookie для доступа к странице.
Какой внешний источник описывает интеграцию Cloudflare Turnstile?
Cloudflare описывает в документации отображение Turnstile, режимы виджета, обратные вызовы и обработку токенов. [Открыть справку по Cloudflare Turnstile](https://developers.cloudflare.com/turnstile/). Специфичные для EverySolve поля и текущую доступность по-прежнему смотрите в каталоге типов.
Справка по Cloudflare Turnstile
Похожие типы капчи
- Страница проверки Cloudflare
cloudflare_challenge$1.81 за 1 000 успешных решений - CaptchaFox
captchafox$1.53 за 1 000 успешных решений - Friendly Captcha
friendly_captcha$2.22 за 1 000 успешных решений - Arkose Labs FunCaptcha
funcaptcha$1.67 за 1 000 успешных решений - hCaptcha
hcaptcha$4.58 за 1 000 успешных решений - MTCaptcha
mtcaptcha$2.22 за 1 000 успешных решений
Ошибки и оплата
- 401
- Ключ отсутствует или недействителен.
- 402
- Недостаточно средств на балансе. Сначала пополните баланс.
- 422
- Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
- 429
- Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
- 503
- Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
- 200 (пусто)
- Нет данных. Без списания.