Comparisons

Como comparar serviços de resolução CAPTCHA em 2025

Não existe um "melhor serviço de CAPTCHA" universal — existe o mais adequado ao seu desafio, volume e ambiente. Tabelas públicas, inclusive esta, não substituem uma medição feita no seu próprio staging, com o seu tráfego e o seu backend de validação.

Este guia mostra como montar essa medição. Vale só para ambiente próprio, QA ou pré-produção com autorização explícita: os exemplos usam páginas internas, dados fictícios e endpoints controlados pela sua equipe — nada aqui serve para automatizar serviços de terceiros ou filas públicas fora do seu ambiente.

Por que uma tabela pública de comparação não basta

O tempo de resolução de um CAPTCHA muda por tipo de desafio, região do worker, carga do provedor, integração e até horário do dia. Um número publicado em blog não garante o que vai acontecer na sua integração. Trate qualquer tabela pública — inclusive as deste artigo — como ponto de partida, nunca como decisão final. Para orçamento, capacidade e alertas, use sempre medições internas.

Monte sua própria metodologia de teste

Separe os testes por tipo de CAPTCHA: misturar reCAPTCHA v2 com Turnstile na mesma amostra distorce a mediana. Use sempre a mesma página de staging e registre hora de envio, hora de conclusão, código de erro e o resultado retornado pelo backend. Depois de reunir amostras suficientes para reduzir ruído, calcule mediana, P90 e P99 em vez de só a média — a média esconde os piores casos, que são justamente os que geram timeout em produção.

Além do tempo de resolução, vale registrar a experiência de integração: qualidade da documentação, existência de SDK oficial para a sua linguagem, formato de erro (texto simples ou JSON) e o que o painel de controle mostra sobre saldo e histórico. Esses fatores pesam tanto quanto a velocidade quando o time precisa manter a integração no longo prazo.

Modelo de tabela para registrar os resultados

Provedor Tipo de CAPTCHA Amostras Mediana P90 P99 Observações
CaptchaAI reCAPTCHA v2 100 preencher preencher preencher amostra interna
Provedor B Turnstile 100 preencher preencher preencher valor indicativo
Provedor C GeeTest 100 preencher preencher preencher pode variar por região

Quais tipos de CAPTCHA incluir na comparação

Inclua só os tipos que sua aplicação usa — reCAPTCHA v2/v3, Turnstile ou GeeTest v3 — e documente sitekey de QA, região do worker e endpoint de validação. Ao comparar custo, lembre que a CaptchaAI cobra por thread simultânea, não por resolução: o plano BASIC (US$ 15/mês, 5 threads) já inclui resoluções ilimitadas por thread. Misturar modelos de cobrança diferentes distorce qualquer conclusão sobre "o mais barato".

Se seus workers rodam em uma região como a AWS sa-east-1 (São Paulo), meça o RTT até o endpoint separadamente do tempo de resolução, para não atribuir latência de rede ao provedor. Se a amostra carregar dado de usuário de teste, trate-o como dado pessoal para fins de LGPD: use só dados fictícios.

Planejamento de capacidade com os seus números

Use P90 e P99, não a mediana, para dimensionar filas, timeouts e retentativas — são eles que definem o pior caso que o sistema precisa absorver. Se o tráfego varia durante campanhas, rode uma amostra por janela de tráfego.

Script de exemplo para medir tempos em staging

O script abaixo coleta tempos no staging, prontos para a tabela acima.

import os, time, requests

API_KEY = os.environ['CAPTCHAAI_API_KEY']
SITEKEY = os.environ['QA_CAPTCHA_SITEKEY']

def criar_tarefa_captcha(pageurl):
    resposta = requests.post('https://ocr.captchaai.com/in.php', data={
        'key': API_KEY,
        'method': 'userrecaptcha',
        'googlekey': SITEKEY,
        'pageurl': pageurl,
        'json': 1,
    }).json()
    return resposta['request']

def aguardar_resultado(task_id):
    while True:
        time.sleep(5)
        resposta = requests.get('https://ocr.captchaai.com/res.php', params={
            'key': API_KEY,
            'action': 'get',
            'id': task_id,
            'json': 1,
        }).json()
        if resposta.get('status') == 1:
            return resposta['request']

task_id = criar_tarefa_captcha('https://staging.example.com/captcha-demo')
token_qa = aguardar_resultado(task_id)
print({'token_recebido': bool(token_qa)})

Solução de problemas na medição

Se a variância crescer, confirme três coisas antes de desconfiar do provedor: a página de staging está estável, o endpoint responde de forma consistente, e os tipos de CAPTCHA não foram misturados no mesmo lote — o erro mais comum e mais fácil de passar despercebido.

Perguntas frequentes

Preciso confiar em benchmarks públicos ou medir eu mesmo?

Use benchmarks públicos só como contexto inicial. Para decisão técnica — dimensionamento, orçamento, alertas — meça no seu ambiente, porque região, integração e horário mudam o resultado.

A CaptchaAI cobra por CAPTCHA resolvido ou por thread ativa?

Por thread. Cada plano — do BASIC (US$ 15/mês, 5 threads) ao ENTERPRISE (US$ 300/mês, 200 threads) — inclui resoluções ilimitadas por thread, ao contrário de provedores que cobram por solução individual.

hCaptcha e FunCaptcha: a CaptchaAI cobre esses dois tipos?

Não — hCaptcha e FunCaptcha (Arkose Labs) não são suportados hoje, e isso deve entrar na sua tabela de cobertura antes de comparar preço. A CaptchaAI resolve reCAPTCHA v2/v3, Cloudflare Turnstile e Challenge, GeeTest v3, imagem/OCR, grade de imagens e BLS; CaptchaFox, Friendly Captcha e Lemin estão disponíveis em beta.

Posso publicar os números que eu medir?

Pode, desde que publique metodologia, tamanho da amostra e limitações junto dos números.

Critérios antes de publicar os resultados

Confirme que a documentação aponta para ambiente próprio, que os exemplos usam dados fictícios e que nenhum endpoint de produção é acionado pelo teste. Quando o resultado variar entre execuções, trate os números como amostra interna e compare só cenários equivalentes.

Guias relacionados seguros

Valide a integração CAPTCHA do seu ambiente próprio com a CaptchaAI.

Os comentários estão desativados para este artigo.