Captcha bypass tutorials

Was this helpful?

How to solve reCAPTCHA Enterprise V2 on app.oneassembly.com

Kate Push

Technical engineer

Introduction

This guide is for developers who are automating authentication on https://app.oneassembly.com, a site protected by Auth0 and reCAPTCHA Enterprise V2.

If you are facing the ERROR_CAPTCHA_UNSOLVABLE error, do not understand how to pass session parameters, or are receiving tokens that the target site rejects, this article is for you.

Prerequisites: understanding of HTTP requests, REST API structure, and basic command line or curl/Postman skills.

General Information

About reCAPTCHA Enterprise V2

reCAPTCHA Enterprise is an extended version of Google reCAPTCHA for business-critical scenarios. Key differences from standard v2:

  • Requires passing the enterprise=1 parameter or using a special task type
  • Supports additional parameters: action, data-s, apiDomain, enterprisePayload
  • Often used on pages with enhanced protection, including Auth0-based authentication

Auth0 Session Features

Auth0-based login pages generate unique URLs with a state parameter, for example:

Copy
https://login.oneassembly.com/u/login?state=hKFo2SB1MTFkY2IyWnN6cEtwMVZ5WkloWlFCTXJvNlc0VXp1VKFur3VuaXZlcnNhbC1sb2dpbqN0aWTZIEdWTDZIeElIU0RGZHV6SG9NMWpVdk1wMmM3Q1R0bjNSo2NpZNkgSnNOTlAwM3pxTDZVQUJjZHlncXFhczZySlpTdmduNzY

This parameter binds the session to a specific browser and IP. If you pass the base URL (https://app.oneassembly.com) to the solver, it will not see the captcha form and will return ERROR_CAPTCHA_UNSOLVABLE.

Key takeaway: always pass the full dynamic URL with all session parameters in websiteURL.

Environment Setup

What You Will Need

  • API key from your 2Captcha account dashboard
  • HTTP request tool: curl, Postman, httpie, or any programming language
  • Access to the target page: ability to open https://app.oneassembly.com and follow the redirect to login.oneassembly.com

Getting Your API Key

  1. Register on 2captcha.com
  2. Go to your account settings
  3. Copy your API key
  4. For security, store the key in an environment variable or secrets manager
bash Copy
# Example of saving the key (Linux/macOS)
export APIKEY_2captcha.com=your_key_here

Page Analysis

Step 1. Open the Login Page

Go to the starting URL: https://app.oneassembly.com. You will be automatically redirected to login.oneassembly.com with a state parameter.

Step 2. Open Developer Tools

Press F12, go to the Network tab. Refresh the page and find the request to anchor (loading the reCAPTCHA widget).

Step 3. Extract Parameters

In the anchor request, find the following parameters:

Parameter Where to Find Example Value
websiteKey (sitekey) Query string of the anchor request 6LeSRLUpAAAAAFjsCw4WqcgzM6imNrz2rSS4l_I1
websiteURL Address bar after redirect Full URL with state parameter
apiDomain Query string (optional) www.recaptcha.net

Important: the data-s parameter is not required for this case, but if it appears in enterprisePayload, you should pass it as well.

Implementation

Creating a Task: RecaptchaV2EnterpriseTaskProxyless

This task type works for most cases. 2Captcha uses its own proxy pool to solve the captcha.

Endpoint: https://api.2captcha.com/createTask

Method: POST

Content-Type: application/json

Example Request for oneassembly.com:

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "RecaptchaV2EnterpriseTaskProxyless",
        "websiteURL": "https://login.oneassembly.com/u/login?state=hKFo2SAyc2M1dldxTjhMS19TYV9kb2MxM0hCdjJ6MWdWbXZ5dqFur3VuaXZlcnNhbC1sb2dpbqN0aWTZIHdFREliaWgyRXNzSkFsUjVvcHFyVllnYU5sVHp4bHhUo2NpZNkgSnNOTlAwM3pxTDZVQUJjZHlncXFhczZySlpTdmduNzY",
        "websiteKey": "6LeSRLUpAAAAAFjsCw4WqcgzM6imNrz2rSS4l_I1",
        "isInvisible": false,
        "enterprisePayload": {}
    }
}

Creating a Task with Proxy: RecaptchaV2EnterpriseTask

Use this type if IP matching between your request and the request to Google is required (for example, for services like Google Search).

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "RecaptchaV2EnterpriseTask",
        "websiteURL": "https://login.oneassembly.com/u/login?state=hKFo2SAyc2M1dldxTjhMS19TYV9kb2MxM0hCdjJ6MWdWbXZ5dqFur3VuaXZlcnNhbC1sb2dpbqN0aWTZIHdFREliaWgyRXNzSkFsUjVvcHFyVllnYU5sVHp4bHhUo2NpZNkgSnNOTlAwM3pxTDZVQUJjZHlncXFhczZySlpTdmduNzY",
        "websiteKey": "6LeSRLUpAAAAAFjsCw4WqcgzM6imNrz2rSS4l_I1",
        "isInvisible": false,
        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "cookies": "session_id=abc123; auth_token=xyz789",
        "proxyType": "http",
        "proxyAddress": "1.2.3.4",
        "proxyPort": 8080,
        "proxyLogin": "user23",
        "proxyPassword": "p4$w0rd"
    }
}

Getting the Result

After creating the task, use the taskId from the response to poll for the result.

Endpoint: https://api.2captcha.com/getTaskResult

Method: POST

Example Request:

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "taskId": 74455221488
}

Example Successful Response:

json Copy
{
    "errorId": 0,
    "status": "ready",
    "solution": {
        "gRecaptchaResponse": "03ADUVZw...UWxTAe6ncIa",
        "token": "03ADUVZw...UWxTAe6ncIa"
    },
    "cost": "0.00299",
    "ip": "1.2.3.4",
    "createTime": 1692863536,
    "endTime": 1692863556
}

Using the Token

Pass the received token to the target site in the g-recaptcha-response form field or use it in a request via a callback function, depending on the frontend implementation.

Parameter Explanations

RecaptchaV2EnterpriseTaskProxyless Parameters

Parameter Type Required Description
type String Yes RecaptchaV2EnterpriseTaskProxyless or RecaptchaV2EnterpriseTask
websiteURL String Yes Full URL of the captcha page, including all session parameters
websiteKey String Yes reCAPTCHA sitekey, extracted from the data-sitekey attribute or k parameter in API requests
enterprisePayload Object No Additional parameters for grecaptcha.enterprise.render, for example {"s": "value"}
isInvisible Boolean No true for the invisible captcha version (without checkbox)
userAgent String No Browser User-Agent that will load the captcha
cookies String No Cookies in key1=val1; key2=val2 format, passed to the worker browser
apiDomain String No Domain for loading the captcha: google.com or recaptcha.net

Proxy Parameters (RecaptchaV2EnterpriseTask Only)

Parameter Type Required Description
proxyType String Yes Proxy type: http, socks4, socks5
proxyAddress String Yes Proxy IP address or hostname
proxyPort Integer Yes Proxy port
proxyLogin String No Login for basic authentication
proxyPassword String No Password for basic authentication

Test Sandbox

Before integrating into production, test your requests in the 2Captcha sandbox. This lets you verify request format without spending balance.

Activate Sandbox

Common Errors

Error Likely Cause Solution
ERROR_CAPTCHA_UNSOLVABLE Base URL passed instead of full URL with state Use the full URL from the address bar after Auth0 redirect
ERROR_WRONG_USER_KEY Invalid API key Check the key in your account settings on 2captcha.com
ERROR_ZERO_BALANCE Insufficient account balance Top up your balance or check limits
ERROR_IP_NOT_ALLOWED Request from unauthorized IP Add the IP to the allowlist in your API key settings
Token not accepted by site User-Agent mismatch, incorrect token submission method, or missing proxy Use the same User-Agent as in the browser, add a residential proxy in the required location, solve the captcha manually and check how the token is sent

Feedback on Solving Results

After receiving the token and verifying it on the target site, it is recommended to send feedback. This helps improve recognition quality and in some cases get refunds for incorrect solutions.

If the Site Rejected the Solution (Incorrect Token)

Send a POST request to the reportIncorrect endpoint:

Endpoint: https://api.2captcha.com/reportIncorrect

Method: POST

Content-Type: application/json

Example Request:

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "taskId": 74455221488
}

Example Response:

json Copy
{
    "errorId": 0,
    "status": "success"
}

Important: do not use this method if your success rate is close to 0 percent. This may indicate an error in your code, not in the captcha solutions.

If the Site Accepted the Solution (Correct Token)

Send a POST request to the reportCorrect endpoint:

Endpoint: https://api.2captcha.com/reportCorrect

Method: POST

Content-Type: application/json

Example Request:

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "taskId": 74455221488
}

Example Response:

json Copy
{
    "errorId": 0,
    "status": "success"
}

Refund Policy

  • Each case is reviewed individually
  • For standard captchas, the correctness of the response is checked
  • For token based captchas, worker statistics are analyzed
  • Refunds are not guaranteed for every complaint
  • The final refund amount may differ from the number of claims

Send reports honestly and only after real verification on the target site.

Additional Resources

Pre-Launch Checklist

  • API key obtained and verified from 2captcha.com account dashboard
  • Current websiteKey extracted from the login.oneassembly.com page
  • Full dynamic URL with state parameter passed in websiteURL
  • User-Agent in requests matches the browser
  • Error handling and logging implemented
  • Reporting via reportIncorrect / reportCorrect configured

Conclusion

Solving reCAPTCHA Enterprise V2 on Auth0 pages requires attention to detail: dynamic session parameters, correct API flags, and environment consistency. The key success factor is passing the full URL with the state parameter in the websiteURL field.

Use task type RecaptchaV2EnterpriseTaskProxyless for most scenarios or RecaptchaV2EnterpriseTask if IP matching is required. Do not forget to send feedback via reportIncorrect and reportCorrect, this helps improve service quality and get refunds for incorrect solutions.

By following this guide, you will be able to reliably obtain working tokens and integrate captcha solving into your projects on 2Captcha.