reCAPTCHA Enterprise looks identical to standard reCAPTCHA from the user's perspective — same checkbox, same image challenges, same invisible mode. The difference is entirely on the backend: Enterprise verifies tokens through Google Cloud's recaptchaenterprise.googleapis.com instead of the public siteverify endpoint. If you send a standard token to an Enterprise backend, it gets rejected.
Here are three fast checks to determine whether a site uses Enterprise.
Check 1: The script tag
This is the most reliable indicator. View the page source and search for recaptcha:
<!-- Standard reCAPTCHA -->
<script src="https://www.google.com/recaptcha/api.js"></script>
<!-- Enterprise reCAPTCHA -->
<script src="https://www.google.com/recaptcha/enterprise.js"></script>
If the script path contains enterprise.js, it is Enterprise. This check works for both v2 and v3.
Check 2: The JavaScript object
Open the browser console (F12 → Console) and run:
// Enterprise check
if (typeof grecaptcha !== 'undefined' && typeof grecaptcha.enterprise !== 'undefined') {
console.log('Enterprise reCAPTCHA detected');
console.log('v3?', typeof grecaptcha.enterprise.execute === 'function');
} else if (typeof grecaptcha !== 'undefined') {
console.log('Standard reCAPTCHA detected');
} else {
console.log('No reCAPTCHA found on this page');
}
Standard uses grecaptcha.render() and grecaptcha.execute(). Enterprise uses grecaptcha.enterprise.render() and grecaptcha.enterprise.execute().
Check 3: The data-s attribute
Some Enterprise implementations add a data-s attribute to the reCAPTCHA widget:
<div class="g-recaptcha" data-sitekey="6LcR_RsT..." data-s="session-token-value"></div>
The data-s attribute is never present on standard reCAPTCHA. If you see it, the site uses Enterprise and you must include the data-s value in your CaptchaAI request.
Automated detection
import requests
import re
def detect_enterprise(url):
html = requests.get(url, headers={"User-Agent": "Mozilla/5.0"}).text
is_enterprise = "recaptcha/enterprise.js" in html
has_data_s = 'data-s="' in html or "data-s='" in html
# Extract sitekey
sitekey_match = re.search(r'data-sitekey="([^"]+)"', html)
sitekey = sitekey_match.group(1) if sitekey_match else None
return {
"enterprise": is_enterprise,
"has_data_s": has_data_s,
"sitekey": sitekey
}
result = detect_enterprise("https://example.com")
print(result)
What this means for CaptchaAI
| Detection result | CaptchaAI parameter |
|---|---|
| Standard (api.js) | method=userrecaptcha |
| Enterprise (enterprise.js) | method=userrecaptcha + enterprise=1 |
| Enterprise with data-s | method=userrecaptcha + enterprise=1 + data-s=VALUE |
FAQ
Can I tell Enterprise from standard by looking at the page?
No. Enterprise and standard reCAPTCHA look identical to users. You must check the script tag or JavaScript object.
What happens if I solve Enterprise without enterprise=1?
The token is generated for standard verification. When the site's backend sends it to the Enterprise API, it is rejected.
Do all Enterprise implementations use data-s?
No. Most do not. Only check for it and include it if present.
Is Enterprise reCAPTCHA harder to solve?
From CaptchaAI's perspective, no. The solve process is the same — only the enterprise=1 flag changes. Solve times are comparable.
Can a site switch between standard and Enterprise?
Yes, though it is uncommon. Always verify the implementation before automating a new target.
Next steps
- How to Solve reCAPTCHA v2 Enterprise Using API
- How to Solve reCAPTCHA v3 Enterprise Using API
- Standard vs Enterprise reCAPTCHA v2
- How to Identify reCAPTCHA Version
Ready to solve CAPTCHAs? Get your CaptchaAI API key and start integrating today.
Discussions (0)
Join the conversation
Sign in to share your opinion.
Sign InNo comments yet.