# Распознавание изображений hCaptcha

> Распознавание изображений hCaptcha через YesCaptcha (HCaptchaClassification): выбор в сетке 3×3, клик в нужной точке, перетаскивание в нужное место, анимированные задания. Ответ синхронный, баллы не списываются, если цель не найдена.

Source: https://docs.yescaptcha.com/ru/tasks/hcaptcha-classification/ · Last verified: 2026-10-15

> This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/tasks/hcaptcha-classification/

`HCaptchaClassification` распознаёт графические задания hCaptcha: вы отправляете вопрос и изображения, а в ответ получаете, какие картинки выбрать, куда кликнуть или откуда и куда перетащить. Действие в браузере выполняет ваша программа. Токен **не возвращается**. Ответ синхронный, каждый запрос стоит 8 pts (≈ $1.20 / 1k); если цель не найдена (пустой результат), баллы не списываются.

> **Совет:** Если не хотите писать логику кликов, используйте [расширение браузера](https://docs.yescaptcha.com/ru/extension.md): оно поддерживает все эти типы заданий. Если нужен токен, а не позиция клика, используйте [hCaptcha](https://docs.yescaptcha.com/ru/tasks/hcaptcha.md).

- POST `https://api.yescaptcha.com/createTask` (Глобальный endpoint)
- POST `https://cn.yescaptcha.com/createTask` (Endpoint для Китая)

## Типы и цены

| Тип задачи | Цена | Режим | Примечания |
| --- | --- | --- | --- |
| `HCaptchaClassification` | $1.20 / 1k; 8 pts/задача · ¥8 / 1k | Синхронный | Баллы не списываются, если цель не найдена |

Цены в долларах США являются оценочными и рассчитаны по курсу 1 USD ≈ ¥6.67; списание за задачи производится в баллах.

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

| Поле | Тип | Обязательное | Описание |
| --- | --- | --- | --- |
| `type` | string | Да | Тип задачи; см. «Типы задач и цены» на этой странице |
| `queries` | array | Да | Список изображений капчи в кодировке Base64 в порядке их расположения на странице (9 фрагментов для сетки 3×3) |
| `question` | string | Нет | Полный текст вопроса так, как он показан на странице (рекомендуются упрощённый китайский или английский), например `Please click each image containing a bicycle`. Передайте хотя бы одно из полей `question` и `anchors`; рекомендуется передавать оба |
| `anchors` | array | Нет | Список примеров изображений в кодировке Base64, показанных рядом с вопросом; обязателен для вопросов, в которых они есть |

-   В `question` передавайте вопрос целиком в том виде, как он показан на странице; переводить его не нужно, но рекомендуется переключить hCaptcha на английский или упрощённый китайский. Новые формулировки обычно поддерживаются быстро, совершенно новые категории — в течение 3 рабочих дней.

> **Осторожно:** Если в правом верхнем углу вопроса есть маленькое изображение-подсказка, передайте его в `anchors`. Вопросы, на которые нельзя ответить без примера изображения, без `anchors` не распознаются.

## Выбор в сетке 3×3

Вопрос выглядит как «Please click each image containing …», ниже расположены 9 маленьких изображений. В `queries` передайте 9 изображений в Base64 по порядку:

POST https://api.yescaptcha.com/createTask

```json
{
  "clientKey": "YOUR_CLIENT_KEY",
  "task": {
    "type": "HCaptchaClassification",
    "question": "Please click each image containing a bicycle",
    "queries": ["BASE64_IMAGE_1", "BASE64_IMAGE_2"]
  }
}
```

Ответ:

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "objects": [true, false, false, true, true, false, true, true, false],
    "top_k": [0, 3, 4, 6, 7],
    "confidences": [1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0]
  }
}
```

`objects` и `top_k` содержат одну и ту же информацию: `objects` показывает для каждого изображения, является ли оно целью, а `top_k` — номера изображений-целей (с 0). Кликните по этим изображениям.

## Клик в указанной позиции

Вопрос выглядит как «Please click on …», ниже одно большое изображение, на котором нужно кликнуть в одной или нескольких позициях.

1.  В `question` передайте вопрос со страницы; если есть примеры изображений, передайте их в `anchors`.
2.  В `queries` передайте одно изображение: лучше всего исходное изображение, экспортированное напрямую из canvas (рекомендуется преобразовать в JPG). Если возможен только скриншот, захватите область большого изображения (внутри красной рамки на рисунке ниже) — без лишнего и без недостающего.
3.  `box` в ответе — координаты для клика: x1, y1, x2, y2 и так далее, начало координат — левый верхний угол загруженного изображения.
4.  Если размер загруженного изображения отличается от размера на странице, пересчитайте координаты: x на странице = возвращённый x × отображаемая ширина ÷ ширина загруженного изображения (для y аналогично). Например, если вернулся x = 769, ширина canvas на странице 350, а ширина загруженного изображения 1000, то на странице нужно кликнуть в 769 × 350 ÷ 1000 ≈ 269.

![Область скриншота для задания с кликом: текст вопроса — question, три маленьких примера изображений — anchors, большое изображение ниже — queries](https://docs.yescaptcha.com/_astro/hcaptcha-click-areas.DCBFUFPf_Z123RnJ.webp)

POST https://api.yescaptcha.com/createTask

```json
{
  "clientKey": "YOUR_CLIENT_KEY",
  "task": {
    "type": "HCaptchaClassification",
    "question": "Please click on the entity present in the sample image.",
    "anchors": ["BASE64_ANCHOR_1", "BASE64_ANCHOR_2", "BASE64_ANCHOR_3"],
    "queries": ["BASE64_OF_THE_BIG_IMAGE"]
  }
}
```

Ответ:

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "box": ["221", "213"]
  }
}
```

Если нужно кликнуть по нескольким целям, в `box` по порядку идут несколько пар координат: `["221", "213", "340", "118", ...]`.

## Перетаскивание в указанное место

Вопрос выглядит как «Drag … to …»: нужно перетащить фрагменты справа на соответствующие места на изображении.

1.  В `question` передайте вопрос со страницы.
2.  Сделайте скриншот и передайте его в `queries`. На изображении должны быть **одновременно** и перетаскиваемые фрагменты, и целевые места; каждая сторона изображения — не менее 260 пикселей.
3.  Каждый элемент `box` в ответе — одно перетаскивание: `start` — позиция фрагмента, `end` — место, куда его нужно перетащить. Если фрагментов несколько, перетаскивайте их по одному.

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "type": "drag",
    "box": [
      {
        "start": [644, 218],
        "end": [239, 315]
      }
    ]
  }
}
```

![Пример результата для задания с перетаскиванием: Start — перетаскиваемый фрагмент, End — целевая позиция](https://docs.yescaptcha.com/_astro/hcaptcha-drag-result.vEj4iyUz_1Ou9zz.webp)

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

## Анимированные задания

Если изображение задания анимированное, передайте в `queries` анимацию (GIF и т. п.) в Base64. Рекомендуемая длительность анимации — не менее 3 секунд, лучше 5–6 секунд, частота кадров около 12 FPS.

## Жалобы и возврат баллов

Если после клика проверка не пройдена, сообщите о неверном результате через [report](https://docs.yescaptcha.com/ru/api/report.md) в течение 1 часа; возврат баллов после жалобы рассчитывается примерно через 24 часа. Правила — в разделе [Тарификация и возврат баллов](https://docs.yescaptcha.com/ru/getting-started/billing.md).

## Связанные руководства

-   [Имитация кликов для распознавания изображений hCaptcha (Selenium)](https://docs.yescaptcha.com/ru/guides/hcaptcha-click-selenium.md)
