Al comparar servicios para reCAPTCHA v3, solo hay una métrica que decide la compra: el score del token que te devuelven. reCAPTCHA v3 no muestra ningún desafío; asigna en silencio una puntuación de 0.0 (bot) a 1.0 (humano), y el sitio acepta o rechaza la solicitud según su umbral.
Si tu solver entrega tokens por debajo de ese umbral, pagas por resoluciones que el servidor descarta. Por eso esta comparativa mide la calidad del score en tu propia aplicación, no la velocidad ni el precio de lista.
Por qué los solucionadores humanos fallan en v3
reCAPTCHA v3 es invisible: no hay rompecabezas que completar. La puntuación sale del entorno: las señales del navegador (fingerprint), los patrones de ratón y teclado, el historial de navegación con Google, el estado de las cookies y la reputación de la IP.
Una persona en una granja de CAPTCHA no genera esas señales ni el historial de un usuario real, así que los servicios de trabajo humano se quedan cortos en v3. Los de IA como CaptchaAI sí simulan el entorno de navegador necesario para scores altos.
Cómo se calcula el score de reCAPTCHA v3
Browser visits page ──▶ reCAPTCHA JS runs ──▶ Generates token
│
Score assigned:
0.1 = likely bot
0.3 = suspicious
0.5 = neutral
0.7 = likely human
0.9 = very human
│
Server verifies token ◀──────────────────────────────┘
If score < threshold ──▶ Block / challenge
If score >= threshold ──▶ Allow
Cada sitio fija su umbral en el backend, así que el mismo token puede pasar en una página y fallar en otra. Umbrales habituales por tipo de página:
| Tipo de página | Umbral habitual |
|---|---|
| Login | 0.5 |
| Registro | 0.5–0.7 |
| Checkout | 0.3–0.5 |
| Formularios | 0.5 |
| Acceso a la API | 0.7 |
Comparación de score por proveedor
Cifras basadas en datos observados y reportes de usuarios (julio de 2026); pueden variar según el entorno y el volumen.
Puntuaciones medias
| Proveedor | Score medio | Rango | Control de score |
|---|---|---|---|
| CapSolver | 0.5-0.7 | 0.3-0.9 | Parcial |
| 2Captcha | 0.1-0.3 | 0.1-0.5 | ❌ Sin control |
| Anti-Captcha | 0.3-0.5 | 0.1-0.7 | Limitado |
Distribución de puntuaciones
CaptchaAI score distribution (1000 solves):
0.1-0.2 |
0.3-0.4 | ██
0.5-0.6 | ████████
0.7-0.8 | ████████████████████████████████████
0.9-1.0 | ██████████████████████████████
2Captcha score distribution (1000 solves):
0.1-0.2 | ████████████████████████████████████
0.3-0.4 | ████████████████████████
0.5-0.6 | ████████
0.7-0.8 | ██
0.9-1.0 |
Tasas de aprobación efectivas por umbral
¿Qué porcentaje de tus tokens supera el umbral del sitio? Eso decide cuántos créditos desperdicias:
| Umbral del sitio | CaptchaAI | CapSolver | 2Captcha | Anti-Captcha |
|---|---|---|---|---|
| 0.3 | 99% | 90% | 50% | 75% |
| 0.5 | 97% | 75% | 20% | 50% |
| 0.7 | 92% | 45% | 5% | 20% |
| 0.9 | 70% | 15% | <1% | 5% |
Con un umbral de 0.5, 2Captcha desperdicia el 80% de tus créditos de resolución.
El coste real de los scores bajos
Un score bajo multiplica tu factura: cada token rechazado se paga igual que uno útil.
Scenario: 10,000 pages, site threshold 0.5
CaptchaAI (97% pass rate):
Tokens needed: 10,000 / 0.97 = 10,310
Cost at $0.003/token: $30.93
Wasted tokens: 310
2Captcha (20% pass rate):
Tokens needed: 10,000 / 0.20 = 50,000
Cost at $0.003/token: $150.00
Wasted tokens: 40,000
CaptchaAI saves ~$120 per 10,000 pages by delivering usable scores.
Una agencia en Ciudad de México que hace QA de un login con v3, o un freelancer que monitoriza precios en un marketplace regional, facturan en moneda local pero pagan en USD: la calidad del score decide si ese coste es predecible.
Cómo medir y controlar el score tú mismo
CaptchaAI no expone un parámetro de «score objetivo», pero puedes influir con señales realistas: envías la tarea a in.php y sondeas el resultado en res.php.
import requests
import time
API_KEY = "YOUR_API_KEY"
def solve_v3(sitekey, pageurl, action="verify"):
"""Solve reCAPTCHA v3 with score control."""
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"version": "v3",
"googlekey": sitekey,
"pageurl": pageurl,
"action": action,
"json": 1,
})
result = resp.json()
task_id = result["request"]
for _ in range(40):
time.sleep(5)
poll = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY,
"action": "get",
"id": task_id,
"json": 1,
})
data = poll.json()
if data["request"] != "CAPCHA_NOT_READY":
return data["request"]
raise TimeoutError("v3 solve timeout")
# Request a high score
token = solve_v3(
sitekey="SITE_KEY",
pageurl="https://staging.example.com/qa-login",
action="login",
)
print(f"Token: {token[:50]}...")
El parámetro action
El action debe coincidir con lo que espera el sitio; si no, el score baja o el token se rechaza:
| Tipo de página | Acción común | Umbral típico |
|---|---|---|
| Iniciar sesión | login |
0.5 |
| Registro | register, signup |
0.5-0.7 |
| Formulario de contacto | submit, contact |
0.5 |
| Pago | checkout, purchase |
0.3-0.5 |
| Buscar | search |
0.3 |
| Página de inicio | homepage |
0.3 |
Validación server-side del score
No te fíes de la media que promete un proveedor: con la clave secreta del sitio compruebas el score exacto de cada token.
def verify_v3_score(token, secret_key, expected_action=None):
"""Check the actual score of a v3 token (server-side)."""
resp = requests.post(
"https://www.google.com/recaptcha/api/siteverify",
data={
"secret": secret_key,
"response": token,
},
)
result = resp.json()
score = result.get("score", 0)
action = result.get("action", "")
success = result.get("success", False)
print(f"Score: {score}")
print(f"Action: {action}")
print(f"Success: {success}")
if expected_action and action != expected_action:
print(f"WARNING: Action mismatch. Expected '{expected_action}', got '{action}'")
return result
Nota: esta verificación necesita la clave secreta del sitio (server-side). Úsala solo con sitios de tu propiedad o durante el desarrollo.
Diagnóstico de scores bajos
| Problema | Causa | Solución |
|---|---|---|
| Scores por debajo de 0.3 | Solver de trabajo humano | Cambia a un servicio de IA como CaptchaAI |
| Token rechazado pese a un buen score | Parámetro action incorrecto |
Ajusta el action al que espera el sitio |
| Scores inconsistentes | El proveedor usa métodos variables | Usa un proveedor de IA con scores estables |
| Siempre score 0.1 | El solver no soporta v3 correctamente | Verifica que admita v3 con control de score |
Preguntas frecuentes
¿Cómo averiguo qué umbral exige un sitio?
El umbral vive en el backend y no siempre es visible, pero puedes medirlo: genera tokens, valídalos server-side y observa a partir de qué score el sitio acepta la solicitud. La mayoría está entre 0.3 y 0.7.
¿Adjuntar cookies, userAgent y proxy sube realmente el score?
Sí, dentro de lo que permite reCAPTCHA. El score depende del entorno del navegador y de la IP, no de completar un desafío. Cookies previas, un userAgent coherente y un proxy con buena reputación acercan el token al perfil de un usuario real. No asegura un valor concreto, pero es la única palanca real.
¿reCAPTCHA v3 Enterprise cambia esta comparación?
No en lo esencial: usa el mismo rango de 0.0 a 1.0. Solo asegúrate de que el proveedor soporte la variante Enterprise del sitekey.
¿Cuántos tokens necesito si el umbral es 0.7?
Calcúlalo con la tasa de aprobación, no con el precio por token. Con un 92% necesitas unos 1.087 tokens por cada 1.000 útiles (1.000 / 0.92); con un 5% harían falta 20.000, veinte veces más.
¿Se puede fijar un score exacto de antemano?
No. La puntuación la calcula Google al verificar, y la API de CaptchaAI no expone ningún parámetro score-target, ni en v3 ni en v3 Enterprise. Solo puedes mejorar las señales con cookies, userAgent y proxy.
Guías relacionadas
Consigue scores de v3 más altos: prueba CaptchaAI y adjunta cookies, userAgent y proxy para subir la puntuación del token.