# reCAPTCHA v3

> Получение токенов reCAPTCHA v3 (включая Enterprise) через YesCaptcha: как заполнять pageAction, типы с фиксированной оценкой 0.7 и 0.9, типы задач и цены, параметры, примеры и формат результата.

Source: https://docs.yescaptcha.com/ru/tasks/recaptcha-v3/ · 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/recaptcha-v3/

У reCAPTCHA v3 нет ни флажка, ни изображений: страница оценивает посетителя в фоновом режиме. YesCaptcha возвращает токен (`gRecaptchaResponse`), который нужно отправить на целевой сайт. `RecaptchaV3TaskProxyless` стоит 20 pts (≈ $3.00 / 1k) за задачу и работает асинхронно: сначала `createTask`, затем `getTaskResult` каждые 5 секунд. При ошибке распознавания или тайм-ауте баллы возвращаются автоматически.

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

Тело запроса — JSON, авторизация через `clientKey`. Результат запрашивайте на том же endpoint, где была создана задача.

## Когда использовать

-   В исходном коде страницы есть `grecaptcha.execute(...)` или загружается `recaptcha/api.js?render=КЛЮЧ_САЙТА`: обычная версия v3.
-   Вызывается `grecaptcha.enterprise.execute(...)` или загружается `recaptcha/enterprise.js`: Enterprise-версия v3, используйте `RecaptchaV3EnterpriseTask` или `RecaptchaV3EnterpriseTaskM1`.

Как определить тип: [Определение типа капчи](https://docs.yescaptcha.com/ru/guides/identify-captcha.md).

## Типы и цены

| Тип задачи | Цена | Режим | Примечания |
| --- | --- | --- | --- |
| `RecaptchaV3TaskProxyless` | $3.00 / 1k; 20 pts/задача · ¥20 / 1k | Асинхронный |  |
| `RecaptchaV3TaskProxylessM1` | $3.75 / 1k; 25 pts/задача · ¥25 / 1k | Асинхронный |  |
| `RecaptchaV3TaskProxylessM1S7` | $4.50 / 1k; 30 pts/задача · ¥30 / 1k | Асинхронный | Запрашивает оценку 0.7; дополнительные параметры не нужны |
| `RecaptchaV3TaskProxylessM1S9` | $5.25 / 1k; 35 pts/задача · ¥35 / 1k | Асинхронный | Запрашивает оценку 0.9; дополнительные параметры не нужны |
| `RecaptchaV3EnterpriseTask` | $3.00 / 1k; 20 pts/задача · ¥20 / 1k | Асинхронный |  |
| `RecaptchaV3EnterpriseTaskM1` | $3.75 / 1k; 25 pts/задача · ¥25 / 1k | Асинхронный |  |

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

-   У `RecaptchaV3TaskProxyless` и `RecaptchaV3TaskProxylessM1` одинаковые параметры, но разные маршруты, поэтому они могут служить резервом друг для друга.
-   Если целевой сайт требует высокую оценку, используйте `RecaptchaV3TaskProxylessM1S7` (0.7) или `RecaptchaV3TaskProxylessM1S9` (0.9): дополнительные параметры не нужны.

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

| Поле | Тип | Обязательное | Описание |
| --- | --- | --- | --- |
| `type` | string | Да | Тип задачи; см. «Типы задач и цены» на этой странице |
| `websiteURL` | string | Да | Полный URL страницы, на которой показывается капча. Укажите сайт, на котором вы видите капчу, а не домен поставщика капчи |
| `websiteKey` | string | Да | Ключ сайта (sitekey), его можно найти в исходном коде страницы или в сетевых запросах; обычно не меняется |
| `pageAction` | string | Нет | Значение action для reCAPTCHA v3; оно должно совпадать со значением, которое страница передаёт в `grecaptcha.execute`, иначе токен может быть отклонён |

`pageAction` должен совпадать со значением `action`, которое страница передаёт в `grecaptcha.execute(КЛЮЧ_САЙТА, {action: '...'})`. Если указать неверное значение, сайт может отклонить токен. Как его найти: [Поиск параметров reCAPTCHA](https://docs.yescaptcha.com/ru/guides/find-recaptcha-parameters.md).

## Пример запроса

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

```json
{
  "clientKey": "YOUR_CLIENT_KEY",
  "task": {
    "type": "RecaptchaV3TaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "SITE_KEY_OF_THE_PAGE",
    "pageAction": "login"
  }
}
```

**curl**

```bash
curl -s https://api.yescaptcha.com/createTask \
  -H 'Content-Type: application/json' \
  -d '{
  "clientKey": "YOUR_CLIENT_KEY",
  "task": {
    "type": "RecaptchaV3TaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "SITE_KEY_OF_THE_PAGE",
    "pageAction": "login"
  }
}'

# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:
curl -s https://api.yescaptcha.com/getTaskResult \
  -H 'Content-Type: application/json' \
  -d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'
```

**Python**

solve.py

```python
import os
import time

import requests

API = "https://api.yescaptcha.com"
CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"]  # Read the clientKey from an environment variable

def call(method, payload):
    r = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30)
    data = r.json()
    if data.get("errorId"):
        raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}")
    return data

def solve(task):
    task_id = call("createTask", {"task": task})["taskId"]
    for _ in range(36):  # Poll every 5 seconds, for up to about 3 minutes
        time.sleep(5)
        result = call("getTaskResult", {"taskId": task_id})
        if result.get("status") == "ready":
            return result["solution"]
    raise TimeoutError(task_id)

solution = solve({
    "type": "RecaptchaV3TaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "SITE_KEY_OF_THE_PAGE",
    "pageAction": "login",
})
print(solution["gRecaptchaResponse"])
```

**Node.js**

solve.mjs

```js
const API = 'https://api.yescaptcha.com';
const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; // Read the clientKey from an environment variable

async function call(method, payload) {
  const res = await fetch(`${API}/${method}`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ clientKey: CLIENT_KEY, ...payload }),
  });
  const data = await res.json();
  if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`);
  return data;
}

async function solve(task) {
  const { taskId } = await call('createTask', { task });
  for (let i = 0; i < 36; i++) { // Poll every 5 seconds, for up to about 3 minutes
    await new Promise((r) => setTimeout(r, 5000));
    const result = await call('getTaskResult', { taskId });
    if (result.status === 'ready') return result.solution;
  }
  throw new Error(`timeout: ${taskId}`);
}

const solution = await solve({
  type: "RecaptchaV3TaskProxyless",
  websiteURL: "https://example.com/login",
  websiteKey: "SITE_KEY_OF_THE_PAGE",
  pageAction: "login",
});
console.log(solution.gRecaptchaResponse);
```

Замените `websiteURL`, `websiteKey` и `pageAction` значениями целевого сайта.

## Результат

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..."
  }
}
```

| Поле | Тип | Описание |
| --- | --- | --- |
| `gRecaptchaResponse` | string | Токен, который нужно отправить на целевой сайт. Одноразовый, действителен около 120 секунд; используйте его в течение 60 секунд |

Пока задача выполняется, возвращается `{"errorId": 0, "status": "processing"}`: повторите запрос через 5 секунд. При ошибке действуйте по `errorCode`, см. [Коды ошибок](https://docs.yescaptcha.com/ru/api/errors.md). Как отправить полученный токен, см. [Прохождение reCAPTCHA с помощью токена](https://docs.yescaptcha.com/ru/guides/submit-recaptcha-token.md).

## Частые вопросы

### Почему сайт иногда не принимает токен?

В v3 решение принимает целевой сайт на основе оценки, а порог он может менять в любой момент, поэтому проходит не каждый токен. Убедитесь, что `pageAction` указан верно; если сайт требует высокую оценку, попробуйте `M1S7` или `M1S9`; можно также сравнить другие типы из этого семейства.

### Как заполнять Enterprise-версию v3?

Так же, как обычную: `websiteURL`, `websiteKey`, `pageAction`, только тип нужно заменить на `RecaptchaV3EnterpriseTask` или `RecaptchaV3EnterpriseTaskM1`.

### Как долго токен действителен?

Токен одноразовый и действует около 120 секунд; отправляйте его в течение 60 секунд.

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

-   [Определение типа капчи](https://docs.yescaptcha.com/ru/guides/identify-captcha.md)
-   [Поиск параметров reCAPTCHA](https://docs.yescaptcha.com/ru/guides/find-recaptcha-parameters.md) (в том числе как найти `pageAction`)
-   [Прохождение reCAPTCHA с помощью токена](https://docs.yescaptcha.com/ru/guides/submit-recaptcha-token.md)
