Skip to content
On this page

ReCaptchaV2: solving reCaptcha v2

TIP

Create the task with the createTask method and get the result with the getTaskResult method.

The task type types that we support:

  • ReCaptchaV2Task this task type require your own proxies.
  • ReCaptchaV2EnterpriseTask this task type require your own proxies.
  • ReCaptchaV2TaskProxyLess is using the server's built-in proxy.
  • ReCaptchaV2EnterpriseTaskProxyLess is using the server's built-in proxy.

Create Task

Create a recognition task with the createTask method.

Before creating a task, you can learn the following

Task Object Structure

PropertiesTypeRequiredDescription
TypeStringRequiredReCaptchaV2Task
ReCaptchaV2TaskProxyLess
websiteURLStringRequiredWeb address of the website using hcaptcha, generally it's fixed value. (Ex: https://google.com)
websiteKeyStringRequiredThe domain public key, rarely updated. (Ex: b989d9e8-0d14-41sda0-870f-97b5283ba67d)
proxyStringOptionalLearn Using proxies
pageActionStringOptionalsome site in anchor endpoint have sa param ,it's action value
enterprisePayloadObjectOptionalEnterprise Payload
isInvisibleBoolOptionalif recaptcha don't have pageAction, reload request body content flag have "fi"
apiDomainStringOptionalDomain address from which to load reCAPTCHA Enterprise.
For example:
http://www.google.com/
http://www.recaptcha.net/
Don't use a parameter if you don't know why it's needed.
userAgentStringOptionalBrowser's User-Agent which is used in emulation. It is required that you use a signature of a modern browser, otherwise Google will ask you to "update your browser".
cookiesArrayOptionalLearn Using Cookies

Example request

text
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    //Required
    "type": "ReCaptchaV2Task",
    //Required
    "websiteURL": "https://www.google.com/recaptcha/api2/demo",
    //Required
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "enterprisePayload": {
      //Optional, required if the website uses recaptcha enterprise
      "s": "SOME_ADDITIONAL_TOKEN"
    },
    "isInvisible": false,
    // Optional
    "pageAction": "submit",
    //Optional
    "apiDomain": "",
    //Optional
    "userAgent": "",
    //Optional
    "cookies": [
      {
        "name": "__Secure-3PSID",
        "value": "AIKkIs3ch7YsxxxxYIzRqNZPGm60cdHozgwfUW1o8MF3kRcf8clJscTI6OtCqVpqNF8I88pLBJkUgQ"
      },
      {
        "name": "__Secure-3PAPISID",
        "value": "TKS1iVpGxYbxxxk0n2o/AytXQTb6RUALqxSEL"
      }
    ],
    //Optional                
    "proxy": "http:ip:port:user:pass"
    // socks5:ip:port:user:pass
    //Optional, this is required if you use RecaptchaV3Task or RecaptchaTaskV3EnterpriseTask
  }
}

After you submit the task to us, you should receive in the response a 'Task id' if it's successfull. Please read errorCode: full list of errors if you didn't receive the task id.

Example response

json
{
    "errorId": 0,
    "errorCode": "",
    "errorDescription": "",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" 
}

Getting Results

After you have the taskId, you need to submit the taskId to retrieve the solution. Response structure is explained in getTaskResult.

Depending on the system load, you will get the results within the interval of 1s to 10s

Example request

json
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json

{
    "clientKey": "YOUR_API_KEY",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Example response

json
{
    "errorId": 0,
    "errorCode": null,
    "errorDescription": null,
    "solution": {
        "userAgent": "xxx", //userAgent
        "expireTime": 1671615324290, //expiration of the token
        "gRecaptchaResponse": "3AHJ....." //solution token
    },
    "status": "ready"
}

Use SDK Request

python
#pip install --upgrade capsolver
#export CAPSOLVER_API_KEY='...'

import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
            "type": "ReCaptchaV2TaskProxyLess",
            "websiteURL": "https://www.google.com/recaptcha/api2/demo",
            "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
          })
golang
package main

import (
	"fmt"
	capsolver_go "github.com/capsolver/capsolver-go"
	"log"
)

func main() {
	// first you need to install sdk
	//go get github.com/capsolver/capsolver-go
	//export CAPSOLVER_API_KEY='...' or
	//capSolver := CapSolver{apiKey:"..."}

	capSolver := capsolver_go.CapSolver{}
	solution, err := capSolver.Solve(map[string]any{
		"type": "ReCaptchaV2TaskProxyLess",
		"websiteURL": "https://www.google.com/recaptcha/api2/demo",
		"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
	})
	if err != nil {
		log.Fatal(err)
		return
	}
	fmt.Println(solution)
}