Наша собственная статистика посещений включена всегда. Google Analytics помогает нам понять, как пользуются нашими публичными страницами (но не вашим рабочим пространством после входа), и включается только с вашего разрешения. См. нашу политику конфиденциальности.

API BotDeflector solver

POST

Состояние API

Состояние за 24 ч
Норма
Среднее время за 24 ч
—
  • Стабильно / норма
  • Доступно
  • Ограничено
  • Почти недоступно
Норма

API EverySolve для BotDeflector возвращает координаты кликов для вашего сценария прохождения проверки. Отправьте POST /api/v1/captcha, указав в type значение botdeflector, и передайте входные данные, перечисленные ниже.BotDeflector здесь — задача на выбор изображений: иконки из icons нужно по порядку найти на изображении из body. Возвращает точки, а не токен формы или cookie браузера, поэтому применять эти позиции должна вызывающая сторона.

$2.36 за 1 000 успешных решений ($0.002361 за каждое успешное решение). Неудачные решения не оплачиваются.

Промпт для ИИ

Помогите мне написать скрипт, который вызывает API EveryInfra «BotDeflector».

Контракт API:
- Запрос: POST https://api.everyinfra.com/api/v1/captcha с заголовком Authorization: Bearer <API Key>. Берите ключ из переменной окружения EVERYINFRA_API_KEY, не указывайте его в коде.
- В теле запроса задайте для type значение botdeflector, а параметры укажите рядом, на том же уровне.
- Обязательные параметры:
  - body: Сами данные проверки. Тип медиаданных зависит от задачи на этой странице: для визуальных задач передаются данные изображения, а для аудиозадачи — аудиоданные.
  - icons: Полоса иконок рядом с текстом задания, которые нужно выбрать в этом порядке; основное изображение проверки передаётся в body.
- Пример тела запроса:
{
  "type": "botdeflector",
  "body": "<body>",
  "icons": "<icons>"
}
- Оплата: $2.36 за 1 000 успешных решений ($0.002361 за каждое успешное решение). Неудачные решения не оплачиваются.
- При ошибке 422 исправьте параметры по подсказкам и допустимым значениям из ошибки. При 429 или 503 дождитесь истечения Retry-After и повторите попытку.

Прежде чем писать код, спросите меня, сколько записей нужно обработать и в каком формате сохранить результаты, затем согласуйте со мной план и примерную стоимость.

Параметры запроса

ИмяРасположениеТипОбязательныйПо умолчаниюОписание
AuthorizationheaderstringДа-Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода.
typebodystringДаbotdeflectorТип капчи, фиксированное значение.
bodybodystringДа-Сами данные проверки. Тип медиаданных зависит от задачи на этой странице: для визуальных задач передаются данные изображения, а для аудиозадачи — аудиоданные.
iconsbodystringДа-Полоса иконок рядом с текстом задания, которые нужно выбрать в этом порядке; основное изображение проверки передаётся в body.

Примеры кода

bash
curl -X POST 'https://api.everyinfra.com/api/v1/captcha' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "type": "botdeflector",
  "body": "<body>",
  "icons": "<icons>"
}'

Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.

Пример ответа

Предпросмотр полей

Для этих параметров пока нет примера ответа. Здесь показаны структура ответа и поля из описания API, а … служит заполнителем; это не результат реального вызова.

json
{
  "id": "req_…",
  "type": "botdeflector",
  "solution": {
    "points": "…"
  },
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Откуда брать параметры для BotDeflector

Передайте основное изображение проверки в body, а полосу иконок, которые нужно выбрать по порядку, — в icons; этот тип не принимает URL страницы или ключ сайта.

Код для поиска этих значений на странице

botdeflector-1.js
[...new Set([...document.scripts].map(s=>s.src).concat(performance.getEntriesByType('resource').map(e=>e.name)))].filter(u=>/botdeflector/i.test(u))
botdeflector-2.js
[...document.querySelectorAll('img,canvas')].map(e=>({cls:e.className,natural:[e.naturalWidth||e.width,e.naturalHeight||e.height],shown:[e.clientWidth,e.clientHeight],data:e.tagName==='CANVAS'?e.toDataURL():e.src}))
botdeflector-3.js
[...document.querySelectorAll('*')].flatMap(e=>e.shadowRoot?[...e.shadowRoot.querySelectorAll('img,canvas')]:[]).map(n=>n.tagName==='CANVAS'?n.toDataURL():n.src)

Как определить BotDeflector

BotDeflector здесь — задача на выбор изображений: иконки из icons нужно по порядку найти на изображении из body.

Чем BotDeflector отличается от других проверок

Возвращает точки, а не токен формы или cookie браузера, поэтому применять эти позиции должна вызывающая сторона.

Как использовать API для BotDeflector

API BotDeflector возвращает координаты кликов в points. Формат решения: points. Соотнесите полученные координаты в пикселях с исходным изображением или используйте их для кликов в указанном порядке.

  1. 01Выполните запрос GET /api/v1/captcha/types и выберите запись botdeflector.
  2. 02Выполните POST /api/v1/captcha, передав type: "botdeflector" и обязательные параметры.
  3. 03Получите координаты кликов из points.
  4. 04Соотнесите полученные координаты в пикселях с исходным изображением или используйте их для кликов в указанном порядке.

Оплата и доступность EverySolve списывает средства только при успешном предоставлении решения. За неудачную попытку итоговое списание не производится, а зарезервированная сумма возвращается автоматически. Получайте available и поля с ценами из GET /api/v1/captcha/types при отправке запроса, а не воспринимайте их как статические данные страницы.

Вопросы об интеграции BotDeflector

Как определить BotDeflector перед выбором типа?

BotDeflector здесь — задача на выбор изображений: иконки из icons нужно по порядку найти на изображении из body. Используйте botdeflector, только если эти признаки соответствуют целевой проверке.

Какие значения с целевой страницы нужны в запросе для BotDeflector?

Передайте основное изображение проверки в body, а полосу иконок, которые нужно выбрать по порядку, — в icons; этот тип не принимает URL страницы или ключ сайта. Передайте body и icons. Для этого типа не объявлены необязательные параметры.

Что возвращает BotDeflector и с чем это не следует путать?

API BotDeflector возвращает координаты кликов в points. Формат решения: points. Возвращает точки, а не токен формы или cookie браузера, поэтому применять эти позиции должна вызывающая сторона.

Какой внешний источник описывает интеграцию BotDeflector?

В документации BotDeflector описан продукт для защиты; точки, которые возвращает EverySolve, определены в каталоге. [Открыть справку по BotDeflector](https://botdeflector.eu/). Специфичные для EverySolve поля и текущую доступность по-прежнему смотрите в каталоге типов.

Справка по BotDeflector

Все типы капчи

Ошибки и оплата

401
Ключ отсутствует или недействителен.
402
Недостаточно средств на балансе. Сначала пополните баланс.
422
Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
429
Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
503
Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
200 (пусто)
Нет данных. Без списания.

Ошибки