# Identificar o tipo de captcha

> Como saber qual captcha uma página usa (reCAPTCHA v2, v2 invisível, v3, Enterprise, hCaptcha, Cloudflare Turnstile versus a página de desafio do Cloudflare) e qual tipo de tarefa do YesCaptcha usar.

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

O primeiro passo para escolher o tipo de tarefa certo é reconhecer o captcha. A forma mais confiável é abrir as ferramentas de desenvolvedor do navegador (F12) e ver, no painel Network (Rede), qual script de captcha a página carrega; também dá para identificar pela aparência.

## Identificar pela aparência

Como cada captcha aparece na página (ilustrações animadas, não capturas de tela); clique em um cartão para abrir a página do tipo de tarefa. Se a aparência não for suficiente, confirme com a referência rápida e o painel Network abaixo.

-   [reCAPTCHA v2: Caixa de seleção · Invisível](https://docs.yescaptcha.com/pt/tasks/recaptcha-v2.md)
-   [reCAPTCHA v3](https://docs.yescaptcha.com/pt/tasks/recaptcha-v3.md)
-   [Reconhecimento de imagem do reCAPTCHA v2: Grade 3×3 · Grade 4×4 · Imagem única 1x1](https://docs.yescaptcha.com/pt/tasks/recaptcha-classification.md)
-   [hCaptcha](https://docs.yescaptcha.com/pt/tasks/hcaptcha.md)
-   [Reconhecimento de imagem do hCaptcha: Grade de imagens · Clicar em um ponto · Arrastar e soltar · Animada](https://docs.yescaptcha.com/pt/tasks/hcaptcha-classification.md)
-   [Cloudflare Turnstile: Automático · Caixa de seleção](https://docs.yescaptcha.com/pt/tasks/turnstile.md)
-   [Página de desafio do Cloudflare: Automático · Caixa de seleção](https://docs.yescaptcha.com/pt/tasks/cloudflare-challenge.md)
-   [Reconhecimento de imagem do FunCaptcha: Setas · Grade de 6 imagens](https://docs.yescaptcha.com/pt/tasks/funcaptcha-classification.md)
-   [Reconhecimento de imagem AWS WAF / bCaptcha: AWS WAF · bCaptcha](https://docs.yescaptcha.com/pt/tasks/aws-bcaptcha-classification.md)
-   [Imagem para texto: Com ruído · Linhas de ruído · Matemático](https://docs.yescaptcha.com/pt/tasks/image-to-text.md)

## Referência rápida

| O que você vê | O que é | Tipo de tarefa |
| --- | --- | --- |
| Uma caixa de seleção “Não sou um robô” / “I’m not a robot” | reCAPTCHA v2 | [reCAPTCHA v2](https://docs.yescaptcha.com/pt/tasks/recaptcha-v2.md) |
| Sem caixa de seleção; o desafio de imagens aparece só depois de clicar em enviar; um pequeno selo do reCAPTCHA no canto inferior direito | reCAPTCHA v2 invisível (ou v3) | Veja “Versões do reCAPTCHA” abaixo |
| Nenhuma interação; só o selo do reCAPTCHA no canto inferior direito | reCAPTCHA v3 | [reCAPTCHA v3](https://docs.yescaptcha.com/pt/tasks/recaptcha-v3.md) |
| Uma caixa de seleção “Sou humano”; desafios de imagens com a marca hCaptcha | hCaptcha | [hCaptcha](https://docs.yescaptcha.com/pt/tasks/hcaptcha.md) |
| Uma caixa de verificação do Cloudflare dentro de um formulário; a página não muda depois de marcar | Cloudflare Turnstile | [Turnstile](https://docs.yescaptcha.com/pt/tasks/turnstile.md) |
| A página inteira mostra “Aguarde… / Verificando sua conexão” e redireciona sozinha | Página de desafio do Cloudflare | [Página de desafio do Cloudflare](https://docs.yescaptcha.com/pt/tasks/cloudflare-challenge.md) |
| Quebra-cabeças ou desafios de imagens da Arkose Labs (como “escolha a imagem virada para o lado certo”) | FunCaptcha | [Reconhecimento de imagem do FunCaptcha](https://docs.yescaptcha.com/pt/tasks/funcaptcha-classification.md) |
| Uma imagem com letras e números distorcidos | Captcha de caracteres | [Imagem para texto](https://docs.yescaptcha.com/pt/tasks/image-to-text.md) |

## Versões do reCAPTCHA

Procure `api.js` ou `enterprise.js` no painel Network:

| Script carregado | Versão |
| --- | --- |
| `recaptcha/api.js`, sem o parâmetro `render` ou com `render=explicit` | v2 padrão |
| Igual ao anterior, e a URL da requisição `anchor` contém `size=invisible` | v2 invisível: adicione `"isInvisible": true` à tarefa |
| `recaptcha/api.js?render=CHAVE_DO_SITE` (`render` diferente de `explicit`) | v3 padrão |
| `recaptcha/enterprise.js`, sem o parâmetro `render` ou com `render=explicit` | v2 Enterprise |
| `recaptcha/enterprise.js?render=CHAVE_DO_SITE` | v3 Enterprise |

Exemplos:

```text
https://www.google.com/recaptcha/api.js?onload=onloadcallback&render=explicit   → v2
https://www.google.com/recaptcha/api.js?render=6LdyC2cUAAAAACGuDKpXeDorzUDWXmdqeg-xy696   → v3
https://www.google.com/recaptcha/enterprise.js?render=explicit   → v2 Enterprise
```

A v2 invisível às vezes só passa com o tipo da v3; teste os dois.

Você também pode executar o código abaixo no Console do navegador. Ele lista todos os reCAPTCHAs da página com versão, chave do site, URL da página e função de callback:

find-recaptcha-clients.js

```js
// Paste into the browser DevTools console on a page with reCAPTCHA, then run findRecaptchaClients().
// Lists every reCAPTCHA on the page: version (V2/V3), sitekey, page URL and the callback function.
function findRecaptchaClients() {
  if (typeof ___grecaptcha_cfg === 'undefined') return [];
  return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => {
    const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' };
    const objects = Object.entries(client).filter(([, value]) => value && typeof value === 'object');
    objects.forEach(([toplevelKey, toplevel]) => {
      const found = Object.entries(toplevel).find(
        ([, value]) => value && typeof value === 'object' && 'sitekey' in value && 'size' in value,
      );
      if (toplevel instanceof HTMLElement && toplevel.tagName === 'DIV') data.pageurl = toplevel.baseURI;
      if (found) {
        const [sublevelKey, sublevel] = found;
        data.sitekey = sublevel.sitekey;
        const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback';
        const callback = sublevel[callbackKey];
        if (!callback) {
          data.callback = null;
          data.function = null;
        } else {
          data.function = callback;
          const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join('');
          data.callback = `___grecaptcha_cfg.clients${keys}`;
        }
      }
    });
    return data;
  });
}

findRecaptchaClients();
```

Exemplo de resultado:

```json
[
  {
    "id": "0",
    "version": "V2",
    "sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "function": "onSuccess",
    "callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']",
    "pageurl": "https://www.google.com/recaptcha/api2/demo"
  }
]
```

As páginas de demonstração oficiais do Google servem para comparação: v2 padrão `https://www.google.com/recaptcha/api2/demo`, v2 invisível `https://www.google.com/recaptcha/api2/demo?invisible=true`.

## Turnstile e página de desafio do Cloudflare

Os dois vêm do Cloudflare, mas não são a mesma coisa:

-   **Turnstile** é uma caixa de verificação embutida no formulário da página. Concluída a verificação, aparece um sinal de marcado e a própria página não muda. A página carrega `challenges.cloudflare.com/turnstile/v0/api.js`. Use [Turnstile](https://docs.yescaptcha.com/pt/tasks/turnstile.md).
-   **A página de desafio do Cloudflare** substitui a página inteira pela tela de verificação do Cloudflare, que mostra “Aguarde…” e “xx.com precisa verificar a segurança da sua conexão antes de continuar”; ela também pode conter uma caixa de verificação. Depois de passar, redireciona para a página real. O código-fonte contém `__cf_chl_rt_tk` ou `cdn-cgi/challenge-platform`. Use [Página de desafio do Cloudflare](https://docs.yescaptcha.com/pt/tasks/cloudflare-challenge.md).

Se uma requisição feita por programa recebe 403 com “Just a moment…”, mas o navegador abre a página normalmente, provavelmente só a impressão digital TLS está sendo bloqueada. Use uma biblioteca que imite a impressão digital TLS de um navegador (como curl\_cffi); isso resolve a requisição e não é preciso passar pelo desafio.
