reCAPTCHA Enterprise bypass API service
First step is to determine that Enterprise version of reCAPTCHA is used. The main Enterprise attributes are:
-
enterprise.js
script instead ofapi.js
is included on the page<script src="https://recaptcha.net/recaptcha/enterprise.js" async="" defer=""></script>
-
grecaptcha.enterprise.METHOD
calls in javascript code of the website instead ofgrecaptcha.METHOD
-
Then you need to determine which implementation is used: V2, V2 Invisible or V3. It is quite easy, just follow the flowchart below, it works in 99% of cases.
Find captcha parameters the same way it is done for V2 or V3.
-
For V2 implementations there can be optional additional data used: in most cases that is a custom string value defined in `s` or `data-s` parameter. You can pass this data inside `data-s` request parameter.
-
For V3 you may also need the action value. To find it you need to dive into javascript code of the website and find the grecaptcha.enterprise.execute call. Action is passed to this call. But keep in mind that action is optional and can remain undefined.
-
Add an additional parameter
enterprise=1
to your request to in.php endpoint and interact with our API the same way it is done when solving V2 or solving V3 to get the token, then use the token in the same way it is used on your target website.Read more - captcha solving API dоcumentation.
// https://github.com/2captcha/2captcha-php require(__DIR__ . '/../src/autoloader.php'); $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY'); try { $result = $solver->recaptcha([ 'sitekey' => '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-', 'url' => 'https://mysite.com/page/with/recaptcha-enterprise', 'enterprise' => 1, ]); } catch (\Exception $e) { die($e->getMessage()); } die('Captcha solved: ' . $result->code);
# https://github.com/2captcha/2captcha-python import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) from twocaptcha import TwoCaptcha api_key = 'YOUR_API_KEY' solver = TwoCaptcha(api_key) try: result = solver.recaptcha( sitekey='6LdO5_IbAAAAAAeVBL9TClS19NUTt5wswEb3Q7C5', url='https://mysite.com/page/with/recaptcha-enterprise', invisible=1, enterprise=1 ) except Exception as e: sys.exit(e) else: sys.exit('result: ' + str(result))
// https://github.com/2captcha/2captcha-csharp using System; using System.Linq; using TwoCaptcha.Captcha; namespace TwoCaptcha.Examples { public class ReCaptchaV2OptionsExample { public void Main() { TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY"); ReCaptcha captcha = new ReCaptcha(); captcha.SetSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-"); captcha.SetUrl("https://mysite.com/page/with/recaptcha-enterprise"); captcha.SetInvisible(true); captcha.SetEnterprise(true); try { solver.Solve(captcha).Wait(); Console.WriteLine("Captcha solved: " + captcha.Code); } catch (AggregateException e) { Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message); } } } }
// https://github.com/2captcha/2captcha-java package examples; import com.twocaptcha.TwoCaptcha; import com.twocaptcha.captcha.ReCaptcha; public class ReCaptchaV2OptionsExample { public static void main(String[] args) { TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY"); ReCaptcha captcha = new ReCaptcha(); captcha.setSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-"); captcha.setUrl("https://mysite.com/page/with/recaptcha-enterprise"); captcha.setEnterprise(true); try { solver.solve(captcha); System.out.println("Captcha solved: " + captcha.getCode()); } catch (Exception e) { System.out.println("Error occurred: " + e.getMessage()); } } }
// https://github.com/2captcha/2captcha-go package main import ( "fmt" "log" "github.com/2captcha/2captcha-go" ) func main() { client := api2captcha.NewClient("API_KEY") captcha := api2captcha.ReCaptcha{ SiteKey: "6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u", Url: "https://mysite.com/page/with/recaptcha-enterprise", Enterprise: true, } code, err := client.Solve(captcha.ToRequest()) if err != nil { log.Fatal(err); } fmt.Println("code "+code) }
// https://github.com/2captcha/2captcha-cpp #include <cstdio> #include "curl_http.hpp" #include "api2captcha.hpp" int main (int ac, char ** av) { api2captcha::curl_http_t http; http.set_verbose (true); api2captcha::client_t client; client.set_http_client (&http); client.set_api_key (API_KEY); api2captcha::recaptcha_t cap; cap.set_site_key ("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u"); cap.set_url ("https://mysite.com/page/with/recaptcha-enterprise"); cap.set_enterprise(true); try { client.solve (cap); printf ("code '%s'\n", cap.code ().c_str ()); } catch (std::exception & e) { fprintf (stderr, "Failed: %s\n", e.what ()); } return 0; }
require 'api_2captcha' client = Api2Captcha.new("YOUR_API_KEY") result = client.recaptcha_v2({ googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-', pageurl: 'https://mysite.com/page/with/recaptcha_v2', enterprise: 1 }) # or result = client.recaptcha_v3({ googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-', pageurl: 'https://mysite.com/page/with/recaptcha_v3', version: 'v3', score: 0.3, action: 'verify', enterprise: 1 })