Respuesta corta para quien automatiza: si ya resuelves reCAPTCHA con CaptchaAI, pasar de Standard a Enterprise no te obliga a reescribir nada. Basta con añadir enterprise=1 a la solicitud; el método, el sitekey y la URL de la página se envían igual.
Lo demás son diferencias del lado del sitio: la Standard es gratuita y la Enterprise, de pago, añade códigos de motivo, umbrales configurables, gestión por proyectos e integración con las herramientas de Google Cloud. Aquí tienes qué cambia, cómo detectar cada una y cómo resolver ambas con la misma API.
reCAPTCHA Standard vs Enterprise: en qué se diferencian
| Característica | Standard | Enterprise |
|---|---|---|
| Precio | Gratis (hasta 1 millón de evaluaciones/mes) | $1 por cada 1.000 evaluaciones (1K–100K/mes), con precio escalonado por encima |
| Rango de puntuación | 0.0–1.0 | 0.0–1.0 |
| Códigos de motivo | No | Sí (AUTOMATION, UNEXPECTED_ENVIRONMENT, etc.) |
| Umbrales personalizados | No (los fijas en tu código) | Sí (configurables por acción en la consola) |
| Gestión por proyectos | No | Sí (Google Cloud Console) |
| Endpoint de verificación | siteverify |
recaptchaenterprise.googleapis.com |
| Detección de fugas de contraseña | No | Sí |
| Account Defender | No | Sí |
| Autenticación multifactor | No | Sí (integración con WAF) |
| Compatibilidad con v2 | Sí | Sí |
| Compatibilidad con v3 | Sí | Sí |
Por qué un sitio migra a reCAPTCHA Enterprise
Para el usuario final la experiencia es casi idéntica; el cambio ocurre en el panel de seguridad. Motivos habituales:
| Motivo | Qué cambia |
|---|---|
| Integración con WAF | reCAPTCHA se conecta con el WAF de Cloudflare o Akamai |
| Analíticas detalladas | El panel muestra tendencias de riesgo y patrones de ataque |
| Reglas personalizadas | Umbrales distintos por acción |
| Cumplimiento | SLA empresarial y opciones de residencia de datos |
| Protección de cuentas | Detección de fugas de contraseñas y de apropiación de cuentas |
Un caso típico: una fintech en México o España añade reCAPTCHA Enterprise a su login para activar Account Defender y la detección de fugas de contraseñas. Si automatizas pruebas contra ese login, lo notarás enseguida: el api.js de siempre pasa a enterprise.js y tu suite de QA falla hasta que ajustas la integración.
Diferencias en la puntuación de riesgo
Ambas versiones devuelven una puntuación de 0.0 a 1.0, pero Enterprise añade contexto.
Respuesta de Standard
{
"success": true,
"score": 0.7,
"action": "login",
"challenge_ts": "2024-01-15T12:00:00Z",
"hostname": "example.com"
}
Respuesta de Enterprise
{
"tokenProperties": {
"valid": true,
"action": "login",
"createTime": "2024-01-15T12:00:00Z",
"hostname": "example.com"
},
"riskAnalysis": {
"score": 0.7,
"reasons": ["LOW_CONFIDENCE_SCORE"],
"extendedVerdictReasons": []
},
"event": {
"token": "...",
"siteKey": "...",
"expectedAction": "login"
}
}
El array reasons de Enterprise indica al sitio por qué la puntuación es la que es, lo que permite decisiones de seguridad más afinadas. La respuesta se reparte en tres bloques:
tokenProperties: validez del token, la acción registrada y elhostname.riskAnalysis: la puntuación y el arrayreasonscon los motivos.event: el token, elsiteKeyy la acción esperada.
La puntuación en sí sigue el mismo rango, así que tu lógica de umbrales no cambia por el simple hecho de migrar.
Cómo saber si una página usa Enterprise
Desde fuera no puedes distinguirlas por el token —el formato es idéntico—; la pista está en el código de la página:
| Indicador | Standard | Enterprise |
|---|---|---|
| URL del script | google.com/recaptcha/api.js |
google.com/recaptcha/enterprise.js |
| Función de ejecución | grecaptcha.execute() |
grecaptcha.enterprise.execute() |
| API de verificación | endpoint siteverify |
recaptchaenterprise.googleapis.com |
| Consola | consola de administración de reCAPTCHA | Google Cloud Console |
Mira la fuente de la página y busca el <script> que carga:
// Standard
<script src="https://www.google.com/recaptcha/api.js?render=SITEKEY"></script>
// Enterprise
<script src="https://www.google.com/recaptcha/enterprise.js?render=SITEKEY"></script>
Cómo resolver Standard y Enterprise con CaptchaAI
El patrón es el mismo para las cuatro combinaciones. La única variación es el flag enterprise y, en v3, el action.
reCAPTCHA v3 Standard
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY, "method": "userrecaptcha", "version": "v3",
"googlekey": SITEKEY, "action": "login", "pageurl": URL, "json": 1
})
reCAPTCHA v3 Enterprise
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY, "method": "userrecaptcha", "version": "v3",
"enterprise": 1, # Only difference
"googlekey": SITEKEY, "action": "login", "pageurl": URL, "json": 1
})
reCAPTCHA v2 Standard
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY, "method": "userrecaptcha",
"googlekey": SITEKEY, "pageurl": URL, "json": 1
})
reCAPTCHA v2 Enterprise
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY, "method": "userrecaptcha",
"enterprise": 1,
"googlekey": SITEKEY, "pageurl": URL, "json": 1
})
Configuración de navegador para tu pipeline de QA
Usa la misma configuración de navegador en tus entornos de QA, staging y CI. Así evitas que un test pase en local y falle en CI sin motivo aparente.
from selenium import webdriver
def make_driver(headless: bool = True) -> webdriver.Chrome:
options = webdriver.ChromeOptions()
if headless:
options.add_argument('--headless=new')
options.add_argument('--window-size=1280,800')
options.add_argument('--lang=es-ES')
return webdriver.Chrome(options=options)
Mantén viewport, idioma y user-agent idénticos en todos los runners: reduce la varianza entre ejecuciones de tu propio QA.
Cómo encaja CaptchaAI en tu propio pipeline
El patrón de integración es siempre el mismo, sea cual sea tu lenguaje o framework de pruebas:
- Tu test detecta el widget de CAPTCHA en tu propia aplicación de QA o staging.
- Tu test envía a CaptchaAI los datos públicos del widget (
sitekey, URL de la página, tipo de CAPTCHA). - CaptchaAI devuelve un token válido para esa página.
- Tu test inyecta ese token en el campo correspondiente y envía el formulario.
- Tu backend verifica el token con el proveedor de CAPTCHA, igual que con un usuario real.
Este flujo se aplica solo a integraciones que tú controlas; no sirve para sortear protecciones de terceros.
Métricas que conviene registrar
Instrumenta los pasos relacionados con CAPTCHA en tus pipelines de QA para detectar regresiones antes de que lleguen a producción:
- Tiempo de resolución por intento — desde la solicitud a CaptchaAI hasta la entrega del token.
- Tasa de éxito por endpoint propio — cuántas verificaciones del backend pasan respecto al total de intentos.
- Distribución de errores — agrupados por código (
ERROR_*, timeouts internos, fallos de red). - Latencia de extremo a extremo — render de la página, resolución del CAPTCHA y respuesta de tu backend.
Conserva las trazas (logs, capturas, HAR) para reproducir incidentes intermitentes.
Buenas prácticas en tu entorno de QA
- Prueba siempre sobre tu propia aplicación o sobre entornos explícitamente autorizados.
- Usa una API key de CaptchaAI separada para QA, distinta de la de producción.
- Define timeouts y reintentos razonables (
backoffexponencial) para no acumular trabajos durante caídas. - Versiona tus snapshots de configuración (
sitekey,action, umbrales) junto al código de los tests. - Revisa el changelog de tu proveedor de CAPTCHA para anticipar cambios que afecten a tu integración.
Solución de problemas frecuentes
| Síntoma | Acción recomendada |
|---|---|
| El test no detecta el widget | Revisa los selectores y los tiempos en tu entorno de staging |
CaptchaAI devuelve ERROR_NO_SLOT_AVAILABLE |
Reintenta con backoff en tu pipeline interno |
| La validación del backend rechaza el token | Compara action y sitekey con tu configuración real |
| El test funciona en local pero falla en CI | Iguala viewport, idioma y user-agent en ambos entornos |
| Tiempos de resolución muy variables | Revisa la concurrencia y los límites de tu API key de CaptchaAI |
Preguntas frecuentes
Las dudas más habituales cuando automatizas contra un login que pasó de Standard a Enterprise:
¿Tengo que cambiar mi código para resolver Enterprise en lugar de Standard?
Casi nada. Con CaptchaAI, la única diferencia es añadir enterprise=1 (o "enterprise": 1) a la solicitud; el método userrecaptcha, el sitekey y la URL de la página se envían igual.
¿CaptchaAI resuelve reCAPTCHA v2 Enterprise además de v3 Enterprise?
Sí. Tanto v2 como v3 tienen variante Enterprise y ambas usan el mismo flag enterprise=1 sobre el método userrecaptcha. Con el mismo patrón cubres las cuatro combinaciones:
- reCAPTCHA v2 Standard y v2 Enterprise.
- reCAPTCHA v3 Standard y v3 Enterprise (v3 añade el
action).
¿El precio de mi plan cambia según sea Standard o Enterprise?
No. CaptchaAI cobra por threads concurrentes, no por resolución ni por tipo de CAPTCHA, así que resolver Enterprise o Standard consume lo mismo dentro de tu plan. Los planes empiezan en BASIC ($15/mes, 5 threads) y escalas los threads a medida que crece tu volumen.
¿Puedo saber si una página usa Enterprise solo con el token de respuesta?
No. El formato del token es idéntico. Para distinguirlas, busca enterprise.js (en vez de api.js) en el código de la página.
Guías relacionadas
- Cómo identificar una implementación de reCAPTCHA Enterprise
- reCAPTCHA v2: Standard frente a Enterprise
- reCAPTCHA v3 Enterprise frente a Standard
- Cómo funciona la puntuación de riesgo en reCAPTCHA v3 Enterprise
Valida tus integraciones de CAPTCHA en entornos propios con CaptchaAI.