# reCAPTCHA v3

> Obtenha tokens do reCAPTCHA v3 (incluindo a versão Enterprise) com o YesCaptcha: como preencher pageAction, os tipos com pontuação fixa de 0.7 e 0.9, tipos de tarefa e preços, parâmetros, exemplos e o formato do resultado.

Source: https://docs.yescaptcha.com/pt/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/

O reCAPTCHA v3 não tem caixa de seleção nem imagens: a página pontua os visitantes em segundo plano. O YesCaptcha retorna um token (`gRecaptchaResponse`) que você envia ao site de destino. `RecaptchaV3TaskProxyless` custa 20 pontos (≈ US$3.00 / 1k) por tarefa e é assíncrono: primeiro `createTask`, depois `getTaskResult` a cada 5 segundos. Tarefas com falha ou que expiram têm os pontos reembolsados automaticamente.

- POST `https://api.yescaptcha.com/createTask` (Endpoint global)
- POST `https://cn.yescaptcha.com/createTask` (Endpoint China)

O corpo da requisição é JSON, autenticado com `clientKey`. Consulte o resultado no mesmo endpoint em que a tarefa foi criada.

## Quando usar

-   O código-fonte da página contém `grecaptcha.execute(...)`, ou carrega `recaptcha/api.js?render=CHAVE_DO_SITE`: reCAPTCHA v3 padrão.
-   Chama `grecaptcha.enterprise.execute(...)` ou carrega `recaptcha/enterprise.js`: reCAPTCHA v3 Enterprise. Use `RecaptchaV3EnterpriseTask` ou `RecaptchaV3EnterpriseTaskM1`.

Como identificar: [Identificar o tipo de captcha](https://docs.yescaptcha.com/pt/guides/identify-captcha.md).

## Tipos de tarefa e preços

| Tipo de tarefa | Preço | Modo | Observações |
| --- | --- | --- | --- |
| `RecaptchaV3TaskProxyless` | US$3.00 / 1k; 20 pontos/tarefa · ¥20 / 1k | Assíncrono |  |
| `RecaptchaV3TaskProxylessM1` | US$3.75 / 1k; 25 pontos/tarefa · ¥25 / 1k | Assíncrono |  |
| `RecaptchaV3TaskProxylessM1S7` | US$4.50 / 1k; 30 pontos/tarefa · ¥30 / 1k | Assíncrono | Solicita uma pontuação de 0.7; não precisa de parâmetro extra |
| `RecaptchaV3TaskProxylessM1S9` | US$5.25 / 1k; 35 pontos/tarefa · ¥35 / 1k | Assíncrono | Solicita uma pontuação de 0.9; não precisa de parâmetro extra |
| `RecaptchaV3EnterpriseTask` | US$3.00 / 1k; 20 pontos/tarefa · ¥20 / 1k | Assíncrono |  |
| `RecaptchaV3EnterpriseTaskM1` | US$3.75 / 1k; 25 pontos/tarefa · ¥25 / 1k | Assíncrono |  |

Os preços em dólares americanos são estimativas com base em US$1 ≈ ¥6.67; as tarefas são cobradas em pontos.

-   `RecaptchaV3TaskProxyless` e `RecaptchaV3TaskProxylessM1` têm os mesmos parâmetros, mas usam rotas diferentes; um pode servir de reserva para o outro.
-   Se o site de destino exige uma pontuação alta, use `RecaptchaV3TaskProxylessM1S7` (0.7) ou `RecaptchaV3TaskProxylessM1S9` (0.9); não é necessário nenhum parâmetro adicional.

## Parâmetros da requisição

| Campo | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| `type` | string | Sim | Tipo de tarefa; veja "Tipos de tarefa e preços" nesta página |
| `websiteURL` | string | Sim | URL completa da página que exibe o captcha. Use o site em que você vê o captcha, não o domínio do fornecedor do captcha |
| `websiteKey` | string | Sim | A chave do site (sitekey), encontrada no código-fonte da página ou nas requisições de rede; normalmente não muda |
| `pageAction` | string | Não | A action do reCAPTCHA v3; deve corresponder ao valor que a página passa para `grecaptcha.execute`, ou o token pode ser rejeitado |

`pageAction` deve ser igual ao `action` que a página passa em `grecaptcha.execute(CHAVE_DO_SITE, {action: '...'})`; se estiver errado, o site pode rejeitar o token. Como encontrar: [Encontrar os parâmetros do reCAPTCHA](https://docs.yescaptcha.com/pt/guides/find-recaptcha-parameters.md).

## Exemplo de requisição

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);
```

Substitua `websiteURL`, `websiteKey` e `pageAction` pelos valores do site de destino.

## Resultado

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

| Campo | Tipo | Descrição |
| --- | --- | --- |
| `gRecaptchaResponse` | string | O token a ser enviado ao site de destino. Uso único, válido por cerca de 120 segundos; use-o em até 60 segundos |

Enquanto a tarefa está em andamento, a resposta é `{"errorId": 0, "status": "processing"}`; consulte novamente após 5 segundos. Trate os erros pelo `errorCode`, conforme [Códigos de erro](https://docs.yescaptcha.com/pt/api/errors.md). Para saber como enviar o token, veja [Concluir o reCAPTCHA com um token](https://docs.yescaptcha.com/pt/guides/submit-recaptcha-token.md).

## Perguntas frequentes

### Por que alguns tokens não são aceitos pelo site?

No v3, o site de destino decide com base na pontuação, e pode alterar o limite a qualquer momento; por isso, nem todo token passa. Confirme que `pageAction` está correto; se o site exige pontuação alta, experimente `M1S7` ou `M1S9`; você também pode comparar com outros tipos semelhantes.

### Como preencher o v3 Enterprise?

Da mesma forma que o v3 padrão: `websiteURL`, `websiteKey` e `pageAction`, trocando o tipo para `RecaptchaV3EnterpriseTask` ou `RecaptchaV3EnterpriseTaskM1`.

### Por quanto tempo o token é válido?

É de uso único e válido por cerca de 120 segundos. Recomenda-se enviá-lo em até 60 segundos.

## Guias relacionados

-   [Identificar o tipo de captcha](https://docs.yescaptcha.com/pt/guides/identify-captcha.md)
-   [Encontrar os parâmetros do reCAPTCHA](https://docs.yescaptcha.com/pt/guides/find-recaptcha-parameters.md) (inclui como encontrar `pageAction`)
-   [Concluir o reCAPTCHA com um token](https://docs.yescaptcha.com/pt/guides/submit-recaptcha-token.md)
