Côté automatisation, tout l'écart entre reCAPTCHA Enterprise et reCAPTCHA Standard tient dans un paramètre : enterprise=1 ajouté à votre requête vers l'API CaptchaAI. La mécanique du sitekey, le format du token et la plage de score 0,0–1,0 restent identiques d'un produit à l'autre.
- Dans votre code : un paramètre de plus, rien à réécrire.
- Sur le site qui vous reçoit : des codes de motif, des seuils réglables par action et une administration dans Google Cloud Console.
- À vérifier avant d'intégrer : le script chargé par la page,
api.jsouenterprise.js.
Deux réponses, deux niveaux de contexte
L'écart le plus parlant se lit dans la réponse de vérification. Les deux versions renvoient un score entre 0,0 et 1,0, mais Enterprise l'accompagne d'un verdict explicable.
La réponse Standard
{
"success": true,
"score": 0.7,
"action": "login",
"challenge_ts": "2024-01-15T12:00:00Z",
"hostname": "example.com"
}
La réponse 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"
}
}
Le tableau reasons indique au site pourquoi le score vaut ce qu'il vaut, ce qui autorise des décisions graduées : une vérification supplémentaire à 0,3 plutôt qu'un blocage sec. Côté résolution, rien ne change — le token reste le même objet, transmis dans le même champ.
Ce que Enterprise ajoute côté site
Le reste des différences relève de l'outillage mis à la disposition de l'équipe sécurité, pas du défi CAPTCHA lui-même.
| Caractéristique | Standard | Enterprise |
|---|---|---|
| Prix | Gratuit (jusqu'à 1 million d'évaluations/mois) | $1 pour 1 000 évaluations (1 000 à 100 K/mois), tarification échelonnée au-delà |
| Plage de scores | 0,0–1,0 | 0,0–1,0 |
| Codes de motif | Non | Oui (AUTOMATION, UNEXPECTED_ENVIRONMENT, etc.) |
| Seuils personnalisés | Non (définis dans votre code) | Oui (configurables par action dans la console) |
| Gestion par projet | Non | Oui (Google Cloud Console) |
| Endpoint de vérification | siteverify |
recaptchaenterprise.googleapis.com |
| Détection de fuite de mot de passe | Non | Oui |
| Account Defender | Non | Oui |
| Authentification multifacteur | Non | Oui (intégration WAF) |
| Prise en charge de v2 | Oui | Oui |
| Prise en charge de v3 | Oui | Oui |
Aucune ligne de ce tableau ne rend le défi plus dur à résoudre. Toutes décrivent la façon dont le site interprète le score une fois le token reçu.
Reconnaître Enterprise sur une page en trente secondes
Avant d'écrire la moindre ligne d'intégration, identifiez la variante. Trois vérifications suffisent :
- Cherchez
enterprise.jsdans la source de la page ;api.jssignale une intégration Standard. - Dans la console du navigateur, tapez
grecaptcha.enterprise: l'objet existe uniquement en Enterprise, où l'appel devientgrecaptcha.enterprise.execute(). - Côté back-end, l'endpoint de vérification tranche :
siteverifyen Standard,recaptchaenterprise.googleapis.comen Enterprise.
// 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>
Le piège classique : une page qui charge enterprise.js pendant que votre requête part sans le paramètre Enterprise. Le token revient normalement, et le site le rejette sans message exploitable.
Résoudre les deux variantes avec l'API CaptchaAI
Le sitekey se lit de la même façon dans les deux cas, et la requête bouge à peine.
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
})
Dans les quatre cas, le token revient dans le champ g-recaptcha-response, que vous injectez dans le formulaire avant envoi. La boucle d'interrogation du résultat sur res.php ne change pas non plus : même intervalle, mêmes codes d'erreur à surveiller. Si votre intégration Standard tourne déjà, la bascule ressemble à un changement de configuration, pas à une réécriture.
- Confirmez la variante avec les trois vérifications ci-dessus.
- Ajoutez
"enterprise": 1aux paramètres envoyés àin.php. - Reprenez la chaîne
actionexacte lue dans le code de la page. - Rejouez votre suite de tests et comparez les taux de réussite avant/après.
Pourquoi un site bascule vers Enterprise
Les motivations sont rarement anti-automatisation : elles tiennent à l'outillage et à la conformité.
- Intégration WAF — reCAPTCHA se branche sur un WAF Cloudflare ou Akamai.
- Analyses détaillées — le tableau de bord expose les tendances de risque et les schémas d'attaque.
- Règles personnalisées — un seuil différent par action (
login,checkout,signup). - Conformité — options de SLA et de résidence des données.
- Protection des comptes — détection de fuite de mot de passe et de piratage de compte.
Un cas concret côté francophone
Une plateforme SaaS hébergée en région eu-west-3 (Paris) ouvre son formulaire d'inscription à toute l'Europe. Son équipe sécurité passe à Enterprise pour deux raisons : la résidence des données, exigée par sa lecture du RGPD, et la possibilité de fixer un seuil de 0,7 sur checkout tout en restant à 0,3 sur login.
Pour l'équipe QA qui teste ce parcours en recette, la conséquence reste limitée : même clé API CaptchaAI, même code, plus un paramètre. En revanche, les scénarios doivent préciser l'action attendue, sinon le site refuse le token pour incohérence d'action — et non pour un score trop bas. Pensez aussi à minimiser les données personnelles dans vos logs de recette : des comptes fictifs suffisent.
Ce que cela coûte côté CaptchaAI
La facturation CaptchaAI repose sur les threads simultanés, pas sur le nombre de résolutions ni sur le type de CAPTCHA.
- Un token Enterprise et un token Standard occupent chacun un thread pendant leur résolution, sans supplément lié au type.
- Le plan d'entrée BASIC ($15/mois, 5 threads) couvre un pipeline de tests ; ADVANCE ($90/mois, 50 threads) s'adresse aux workflows d'automatisation continus. La facturation est en dollars US.
- Le coût Google dépend du volume d'évaluations du site : c'est son budget, pas le vôtre. Vérifiez les tarifs à la date de votre arbitrage.
Questions fréquentes
Faut-il changer de clé API ou de plan pour passer à Enterprise ?
Non. La même clé API CaptchaAI et le même plan fonctionnent pour les deux variantes. Seul le paramètre enterprise s'ajoute à la requête.
Comment savoir quelle action passer dans la requête ?
Lisez la chaîne exacte de l'appel grecaptcha.enterprise.execute() et reprenez-la telle quelle dans le paramètre action. Une action divergente fait échouer la vérification côté site, quel que soit le score.
Un score Enterprise bas signifie-t-il que la résolution a échoué ?
Non. La résolution aboutit dès que le token est produit. Le score reflète l'évaluation de risque du site, qui dépend de son propre paramétrage, de son historique et du contexte de la requête.
Le champ à injecter change-t-il entre Standard et Enterprise ?
Non. Dans les deux cas, le token se place dans g-recaptcha-response. Ne cherchez pas un champ spécifique à Enterprise : il n'y en a pas.
Le sitekey Standard fonctionne-t-il tel quel en Enterprise ?
Non. Les sitekeys Enterprise sont créés dans Google Cloud Console et diffèrent des sitekeys Standard. Relevez celui de la page cible avant vos tests.