reCAPTCHA V3
reCAPTCHA V3 is the newest type of captcha from Google. It has no challenge so there is no need for user interaction. Instead it uses a "humanity" rating - score.

reCAPTCHA V3 technically is quite similar to reCAPTCHA V2: customer receives a token from reCAPTCHA API which is then sent inside a POST request to the target website and verified via reCAPTCHA API.
The difference is now reCAPTCHA API returns rating of a user detecting whether he was a real human or a bot. This rating is called score and could be a number from 0.1 to 0.9. This score is passed to the website which then decides what to do with the user request.
Also there is a new parameter action allowing to process user actions on the website differently. After the verification of token reCAPTCHA API returns the name of the action user performed.
POST
https://api.anycaptcha.com/createTask
property | type | required | desc |
clientKey | text | yes | |
task.type | text | yes | RecaptchaV3TaskProxyless |
task.websiteURL | text | yes | Address of a target web page. Can be located anywhere on the web site, even in a member area. Our workers don't navigate there but simulate the visit instead |
task.websiteKey | text | yes | |
task.minScore | double | yes | Filters workers with a particular score. It can have one of the following values:
0.3
0.7
0.9 |
task.pageAction | text | no | Recaptcha's "action" value. Website owners use this parameter to define what users are doing on the page. Example: grecaptcha.execute('site_key', {action:'login_test'}) |
task.isEnterprise | bool | no | Set this flag to "true" if you need this V3 solved with Enterprise API. Default value is "false" and Recaptcha is solved with non-enterprise API. Can be determined by a javascript call like in the following example: grecaptcha.enterprise.execute('site_key', {..}) |
POST /createTask HTTP/1.1
Host: api.anycaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "http://mywebsite.com/recaptcha/test.php",
"websiteKey": "6Lc_aCMTAAAAABx7u2N0D1XnVbI_v6ZdbM6rYf16",
"minScore": 0.3,
"pageAction": "verify",
"isEnterprise": false
}
}
success
error
server will return
errorId = 0
and taskId
for success{
"errorId": 0,
"taskId": 123456
}
server will return
errorId > 0
and errorCode
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "ERROR_KEY_DOES_NOT_EXIST"
}
POST
https://api.anycaptcha.com/getTaskResult
name | type | required | description |
clientKey | text | yes | |
taskId | number | yes | the taskId |
POST /getTaskResult HTTP/1.1
Host: api.anycaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": 123456
}
success
processing
error
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQim...."
}
}
{
"errorId": 0,
"status": "processing"
}
{
"errorId": 1,
"errorCode": "ERROR_CAPTCHA_UNSOLVABLE",
"errorDescription": "ERROR_CAPTCHA_UNSOLVABLE"
}
errorId = 0
andstatus = ready
: Solved successfully, read result insolution.gRecaptchaResponse
errorId = 0
andstatus = processing
: The task is not ready yet, sleep 2s then remakeerrorId > 0
: error identifier. Error code and short description transferred in errorCode and errorDescription properties
Last modified 1yr ago