Comparisons

Por que os desenvolvedores mudam de 2Captcha para CaptchaAI

Resposta direta: a troca compensa quando o pipeline esbarra em Cloudflare Challenge, em portais BLS ou em tokens de reCAPTCHA v3 com score abaixo do corte do site. E não compensa se o seu volume depender de hCaptcha ou FunCaptcha (Arkose Labs) — a CaptchaAI ainda não resolve esses dois tipos.

Fora essa ressalva, a migração é quase indolor: a API mantém o formato do 2Captcha (in.php, res.php, mesmos parâmetros e resposta). O que exige análise é cobertura, variância no pico e cobrança.


O que cada serviço cobre, tipo por tipo

Comece pela cobertura, não pelo preço: um provedor que não resolve o seu tipo é caro em qualquer valor. Status conforme a documentação pública dos dois serviços em abril de 2026.

Tipo ou recurso CaptchaAI 2Captcha
reCAPTCHA v2, invisível e Enterprise
reCAPTCHA v3 ✅ com controle de score Parcial
Cloudflare Turnstile ✅ < 10 s Parcial
Cloudflare Challenge e JS Challenge ✅ < 15 s
GeeTest v4 ❌ em breve (v3 suportado)
hCaptcha ❌ ainda não
FunCaptcha (Arkose Labs) ❌ ainda não
BLS CAPTCHA
Imagem/OCR e grade ✅ 27.500+ variantes
CaptchaFox, Friendly Captcha, Lemin ✅ beta

As linhas de hCaptcha e FunCaptcha são um veto: se elas concentram o seu tráfego, fique onde está. Cloudflare e BLS são o motivo real da maioria das migrações, e a falha é silenciosa: o site monitorado troca Turnstile por Challenge, o provedor para de devolver token e a coleta zera sem erro no log.


Score do reCAPTCHA v3: o token volta, o formulário recusa

O reCAPTCHA v3 não responde "passou" ou "não passou": devolve uma pontuação entre 0 e 1, e cada site define o corte. Daí o bug mais confuso da categoria — a chamada retorna 200, o token chega inteiro, e o envio é descartado do outro lado.

Com o 2Captcha, os tokens de v3 voltam entre 0,1 e 0,3, abaixo do corte usual. A CaptchaAI aceita pedir o patamar de score na requisição:

# CaptchaAI — control the v3 score
import requests

resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "version": "v3",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "action": "login",
    "score_qa": "0.7",
    "json": 1,
})

Antes de decidir, meça: registre em staging o score recebido em cem envios com cada provedor.


BLS CAPTCHA: quando migrar deixa de ser escolha

Quem integra portais BLS, agendamento de visto e serviços governamentais precisa do método bls. O 2Captcha não oferece esse tipo: ou o provedor entrega, ou o fluxo trava na primeira tela.

# CaptchaAI — BLS CAPTCHA with a high success rate
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "bls",
    "pageurl": "https://bls-portal.example.com",
    "sitekey": "BLS_SITE_KEY",
    "json": 1,
})

Duas linhas de código: o que muda na integração

A CaptchaAI preserva in.php, res.php, os parâmetros (key, method, googlekey, pageurl, json) e a estrutura de resposta. A migração cabe em duas atribuições:

# 2Captcha original
ENDPOINT = "https://2captcha.com"

# CaptchaAI — just change the URL
ENDPOINT = "https://ocr.captchaai.com"

# Same API format, same parameters, same response structure

O que não muda: polling, timeouts, tratamento de erros e a biblioteca wrapper. Em um monorepo, o esforço está em rotacionar a chave de API em cada ambiente.


Horário de pico: a variância pesa mais que a média

O 2Captcha depende principalmente de operadores humanos. Isso não o torna ruim, e sim sazonal: a fila acompanha o fuso de quem resolve, cresce à noite e estoura em picos. Nas faixas relatadas publicamente, o reCAPTCHA v2 leva de 20 a 60 s e imagem/OCR de 8 a 20 s; os tetos de SLA da CaptchaAI são < 60 s e < 0,5 s, sem sazonalidade.

Para um time em São Paulo com workers em sa-east-1, isso significa fechar a janela de coleta autorizada no turno da tarde, e não às 3h.


Um pipeline de QA antes e depois da troca

Números de um pipeline de QA interno, com o mesmo conjunto de páginas antes e depois — ordem de grandeza, não promessa.

Antes: 2Captcha

Pipeline: 500 pages/hour
Avg solve time: 35s
Failure rate: 8%
Peak hour solve: 60-90s
Monthly cost: $300

Night shift: Slow (fewer workers)
Weekends: Slower (fewer workers)
Flash sales: Breaks (demand spike)

Depois: CaptchaAI

Pipeline: 1,200 pages/hour
Avg solve time: 12s
Failure rate: 3%
Peak hour solve: 12-15s
Monthly cost: $280

Night shift: Same speed
Weekends: Same speed
Flash sales: Same speed

O custo mensal quase não se mexeu; mudou a vazão pelo mesmo valor — e o desvio: o pior caso deixou de ser o triplo do caso médio. A razão é a cobrança por thread concorrente, com resoluções ilimitadas no plano, de BASIC (US$ 15/mês, 5 threads) a ENTERPRISE (US$ 300/mês, 200 threads). A fatura acompanha o paralelismo configurado, não o total de desafios resolvidos.


O wrapper em Python continua valendo

O formato de requisição e de resposta é o mesmo, incluindo CAPCHA_NOT_READY durante o polling. Só duas linhas mudam:

import requests
import time

# Only these two lines change:
API_KEY = "YOUR_CAPTCHAAI_KEY"
API_URL = "https://ocr.captchaai.com"

def solve_recaptcha(sitekey, pageurl):
    resp = requests.post(f"{API_URL}/in.php", data={
        "key": API_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": pageurl,
        "json": 1,
    })
    task_id = resp.json()["request"]

    for _ in range(60):
        time.sleep(5)
        result = requests.get(f"{API_URL}/res.php", params={
            "key": API_KEY, "action": "get",
            "id": task_id, "json": 1,
        })
        data = result.json()
        if data["request"] != "CAPCHA_NOT_READY":
            return data["request"]

    raise TimeoutError("Solve timeout")

Erros comuns nos primeiros dias

Sintoma Causa provável Correção
A lentidão continua igual Código ainda em 2captcha.com Use a base ocr.captchaai.com
Chave de API recusada Chave antiga do 2Captcha Gere a chave no painel
Score do v3 baixo score_qa ausente Envie score_qa: 0.7
Turnstile falhando Método desatualizado Use method=turnstile

Perguntas frequentes

Posso rodar os dois provedores em paralelo?

Pode, e costuma ser a transição mais tranquila: dois clientes com URLs base diferentes, roteando por tipo — Cloudflare e BLS na CaptchaAI, o resto onde já estava — enquanto o saldo do 2Captcha se esgota.

Quantas threads para mil páginas por hora?

Dimensione pelo tipo dominante, usando os tetos publicados: um CAPTCHA de imagem (< 0,5 s) consome uma fração de thread; um reCAPTCHA v2 pode ocupar uma thread por quase um minuto. Some o pior caso e escolha entre STANDARD (US$ 30/mês, 15 threads) e ADVANCE (US$ 90/mês, 50 threads).

Preciso de autorização para resolver CAPTCHA em coleta de dados?

Sim, e trate isso como escopo do projeto. Resolva desafios em ambiente próprio, em staging ou onde exista permissão explícita, e considere as obrigações da LGPD (ou do RGPD, em Portugal).


Guias relacionados


Uma semana de medição vale mais que qualquer tabela. Crie sua conta na CaptchaAI, rode os dois provedores lado a lado e deixe os logs decidirem.

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