Explainers

How to Identify reCAPTCHA Enterprise Implementation

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


Ready to solve CAPTCHAs? Get your CaptchaAI API key and start integrating today.

Discussions (0)

No comments yet.