Solving ReCaptcha V2 also known as I'm not a robot Captcha is pretty simple. You send a post request with full pageurl and google site key, server will return a g-recaptcha-response token. See the Google Sitekey and g-recaptcha-response to know about Sitekey and Response token.


Price:  we charge 3 credit for regular subscription and 2 credit for premium subscription to solve each recaptcha V2.  As we just started (5 November 2017), we will review the price very soon and likely reduce the price.


Important:  As beginning, we do except a slow service. In worst case, it can take up to 300 second so we request you to set timeout to 300 second for recaptcha V2. If you close connection before 300 second but captcha get solved, you will lost credit.


Request Parameters:
Action = upload
Key = The secret Access Key given to you.
captchaType = 3
gen_task_id = A unique task id given by you to use as reference of every job sent to our server. You will use this Task Id for refund claim.
sitekey = A google site identifier, see Google Site key section
pageurl = Full URL of the page where you see the ReCaptcha V2

Example

   <form action="http://fasttypers.org/imagepost.ashx" method="post" enctype="multipart/form-data">
        <input type="text" name="action" value="upload"/>
        <input type="text" name="key" value="115KJVCWRK4ZHC63WNAGSQI9XFSAT415N9DWPLL4"/>
        <input type="text" name="captchatype" value="3"/>
        <input type="text" name="gen_task_id" value="12345"/>
        <input type="text" name="sitekey" value="6LdBay0UAAAAAKOpX--mW2musdGCMBIYmoqm6Ccb"/>
        <input type="text" name="pageurl" value="http://fasttypers.org/login.aspx"/>
        <input type="submit" value="Submit"/>
    </form>

Response from server : g-recaptcha-response in plain text.
Example :

    03AHhf_53GA3IgaOVNukoWPsAEaXWZvWbOO86ZicV5_If0TLjKPN66JX2SP35KCXvgWL60MDORh4xG7LpDArkmijgJn8IHzMo2NOPC
    8JgSdTkpdQ09d1qnSgjZhJ8amYEvAEo21p1dZcq247F_KboBLZQAQ4_CYMDg6U6044EkYW5lvpWrX2Jc5zZWqsbggc4wkZxKQubo5a
    xwRp6WEu6PNprHIZ9cYD5wq8NzBGpRI5Mi28oJ5jEae6ePWMXxipVaDuZlm14Q_xnS86_YcaW8pmzAn1IS5dCWQ3r1O7aF6PlMHFVj
    C8xhXPoFTy9rUqys9gCqzabFyEI8fKkR3RjPKascoxd0LfNw   



Sitekey : The site key is used to invoke reCAPTCHA service on webpage. To view the sitekey of an website, do the following

1.       Look at the element's code at the page where you found ReCaptcha.

2.       Find data-sitekey parameter or Find k parameter of the link to google.com.




g-recaptcha-response: In webpage that implement recaptcha v2, a new field (g-recaptcha-response) are populated in HTML. The value of g-recaptcha-response are passed to website backend to validate the recaptcha.  You have to set the value of g-recaptcha-response to submit the form. There are few method to set the value...

Method 1: Locate the element with id g-recaptcha-response and make it visible deleting display:none parameter.

An input field will appear on the page. And you just have to paste the answer token to that field and submit the form.

 if there is no submit button, please see No Submit Button Section

 

Method 2: you can just use javascript to set the value of g-recaptcha-response field:

         document.getElementById("g-recaptcha-response").innerHTML="Response_token_us";
         

No Submit Button: sometimes there's no submit button and a callback function is used instead of submit. The function is executed when reCaptcha is solved.

Callback function is usually defined in data-callback parameter of reCaptcha, for example:

                        data-callback="myCallbackFunction"
                    

Or sometimes it's defined as callback parameter of grecaptcha.render function, for example:

           grecaptcha.render('example', {
           'sitekey' : 'someSitekey',
           'callback' : myCallbackFunction,
           'theme' : 'dark'
            });
            

Finally all you have to do is to call that function:

                myCallbackFunction();

Sometimes it is required to provide an argument and in most cases you should put the token there. For example:

                myCallbackFunction('TOKEN');