ReCaptchaV2EnterpriseToken
Solve reCAPTCHA V2 Enterprise challenges and receive a verification token.
reCAPTCHA Enterprise is Google's advanced version of the V2 challenge. It offers enhanced security features and analytics for website owners.
While it often looks identical to the standard V2 checkbox, it uses different API endpoints and often requires additional parameters called the Enterprise Payload.
This variant uses your proxy. For the proxyless version, see ReCaptchaV2EnterpriseTokenProxyLess.
How to identify Enterprise vs Standard
Before creating a task, verify if the site is using the Enterprise version:
- Open DevTools and go to the Network tab.
- Filter for
recaptcha. - Check the script URLs and request endpoints:
- Standard:
google.com/recaptcha/api.jsor/api2/anchor - Enterprise:
google.com/recaptcha/enterprise.jsor/enterprise/anchor
- Standard:
If you see /enterprise/ in the URLs, you must use the ReCaptchaV2EnterpriseToken task type.
Finding the Website Key
The process for finding the sitekey is identical to standard reCAPTCHA V2. See the ReCaptchaV2Token guide for detailed steps.
Extracting Enterprise Payload
The enterprisePayload field contains additional configuration parameters passed to the grecaptcha.enterprise.render() function. Common keys include s (a short-lived security token) and action.
Automatic Extraction Script
Use this script in your browser console to extract both the sitekey and the enterprise payload:
(() => {
const payload = {};
let sitekey = null;
document.querySelectorAll('.g-recaptcha').forEach((div) => {
if (div.dataset.sitekey) sitekey = div.dataset.sitekey;
for (const [key, value] of Object.entries(div.dataset)) {
if (key !== 'sitekey') payload[key] = value;
}
});
const scriptTags = Array.from(document.querySelectorAll('script:not([src])'));
const regex = /grecaptcha\.enterprise\.render\([^,]+,\s*\{(.*?)\}/s;
scriptTags.forEach((tag) => {
const match = regex.exec(tag.textContent);
if (match) {
const obj = match[1];
const paramRegex = /(\w+)\s*:\s*['"]([^'"]+)['"]/g;
let p;
while ((p = paramRegex.exec(obj)) !== null) {
const key = p[1];
const val = p[2];
if (key === 'sitekey') sitekey = val;
else payload[key] = val;
}
}
});
console.log('sitekey:', sitekey);
console.log('enterprisePayload:', payload);
})();If the enterprise payload contains an s parameter, it may be a short-lived token. Extract it dynamically right
before creating the task. If the token has expired, the solution may be rejected by the target site.
Supported Providers
| Provider | Price per 1,000 |
|---|---|
| $1.00 | |
| $1.00 - $2.99 | |
| $1.00 - $4.00 | |
| $0.13 | |
| $0.55 |
Request Schema
| Field | Type | Description |
|---|---|---|
clientKey* | string | Your API key from the AnySolver dashboard. Example: |
task* | object | |
provider | Specific provider to use. If omitted, automatic routing selects the best provider. Example: | |
selectionMode | Read more at the routing strategies docs. Example: | |
keyPoolMode | Example: |
Task Object Properties
The task field accepts an object with the following properties:
| Field | Type | Description |
|---|---|---|
websiteURL* | URL | Full URL of the page where the CAPTCHA is displayed. Example: |
websiteKey* | string | The site key (data-sitekey attribute) found in the CAPTCHA HTML element. Example: |
pageTitle* | string | Title of the target page (document.title). Some providers use it as an additional hint when solving token-based reCAPTCHA tasks. Example: |
isInvisible | boolean | Set to true when the widget is invisible, for example when the iframe URL contains size=invisible or the challenge starts after a button click without showing a checkbox first. Example: |
userAgent | string | Browser User-Agent string. Must match the browser used on the target page. Not all providers properly support this parameter. Verify the compatibility with the provider you are using. Example: |
cookies | string | Cookies from the target page session, if required for solving. Example: |
pageAction | string | Action passed to grecaptcha.execute() or grecaptcha.enterprise.execute(), such as verify or submit. This is mainly relevant on enterprise flows and should match the page JavaScript exactly. Example: |
apiDomain | string | Domain used to load reCAPTCHA. Use google.com for standard widgets or recaptcha.net when the page loads the API from recaptcha.net or www.recaptcha.net. Example: |
isSession | boolean | Enable session mode to receive worker session cookies together with the token. Only supported by providers that expose session-cookie responses. Example: |
recaptchaDataSValue | string | Value of the data-s parameter used on some Google-owned pages and other protected flows. It is short-lived and should be extracted fresh for every solve attempt. Example: |
enterprisePayload | Record<string, unknown> | Additional values passed to grecaptcha.enterprise.render() or related page code. This usually contains enterprise-only fields such as the s token. Example: |
proxy* | string | object |
Response Schema
| Field | Type | Description |
|---|---|---|
status* | Task status: "processing", "ready", or "failed". Example: | |
taskId | string | Unique identifier returned when the task was created. Example: |
errorId* | 0 = success, 1 = external error, 2 = internal error. Example: | |
errorCode | Machine-readable error code (e.g., "CAPTCHA_UNSOLVABLE"). Example: | |
errorDescription | string | Human-readable error message with resolution hints. Example: |
cost | number | Actual cost charged for this task in USD. Example: |
taskType | The type of CAPTCHA task to solve. Example: | |
provider | Specific provider to use. If omitted, automatic routing selects the best provider. Example: | |
solution | object |
Solution Object Properties
The solution field contains an object with the following properties:
| Field | Type | Description |
|---|---|---|
token* | string | The solved CAPTCHA token to submit with your form. Example: |
userAgent | string | User-Agent string used during solving (if applicable). |
cookies | Record<string, unknown> | Session cookies obtained during solving (if applicable). |
raw* | Record<string, unknown> | Raw provider response data for advanced use cases. |