Skip to content

reCAPTCHA v3

reCAPTCHA v3 is Google’s invisible, score-based CAPTCHA system. Unlike v2, it does not present a visual challenge to the user. Instead, it assigns a score between 0.0 and 1.0 based on user behavior, where 1.0 indicates a very likely human interaction. It is commonly used on login pages, payment forms, and other sensitive endpoints where a seamless user experience is required.

TypeProxyDescription
ReCaptchaV3TokenProxyLessNoStandard (recommended)
ReCaptchaV3TokenYesWith proxy
ReCaptchaV3EnterpriseProxyLessNoEnterprise, no proxy
ReCaptchaV3EnterpriseYesEnterprise with proxy
ParameterTypeRequiredDescription
typestringYesTask type from the table above
websiteURLstringYesURL of the target page
websiteKeystringYesreCAPTCHA v3 site key
minScorenumberNoMinimum score 0.1—0.9 (default: 0.3)
pageActionstringNoAction parameter (found in the grecaptcha.execute call)
apiDomainstringNoAPI domain override (e.g., www.recaptcha.net)

These parameters apply only to the enterprise task types.

ParameterTypeRequiredDescription
enterprisePayloadobjectNoAdditional enterprise parameters (e.g., { "s": "value" })

Required when using a proxy task type (ReCaptchaV3Token, ReCaptchaV3Enterprise).

ParameterTypeRequiredDescription
proxyTypestringYeshttp, socks4, or socks5
proxyAddressstringYesProxy IP or hostname
proxyPortintegerYesProxy port
proxyLoginstringNoProxy username
proxyPasswordstringNoProxy password
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV3TokenProxyLess",
"websiteURL": "https://example.com/login",
"websiteKey": "6LdyC2cUAAAAACGuDKpXeDorzUDWa_K25mXHlg3Y",
"minScore": 0.7,
"pageAction": "login"
}
}
{
"errorId": 0,
"taskId": "abc-123-def"
}
{
"gRecaptchaResponse": "03AGdBq24PBCbwiDRaS_MJ7Z...7Pqz6Jhp2gFnuhaTf3o"
}
FieldTypeDescription
gRecaptchaResponsestringThe reCAPTCHA v3 response token

The gRecaptchaResponse token is used identically to reCAPTCHA v2:

  1. Form submission — Set the hidden g-recaptcha-response field value and submit the form.
  2. Callback function — Pass the token to the site’s reCAPTCHA callback.
  3. XHR/Fetch — Include the token in the request body if the site validates via an API call.
import requests
import time
API_KEY = "YOUR_API_KEY"
# Create task
response = requests.post("https://api.ucaptcha.net/createTask", json={
"clientKey": API_KEY,
"task": {
"type": "ReCaptchaV3TokenProxyLess",
"websiteURL": "https://example.com/login",
"websiteKey": "6LdyC2cUAAAAACGuDKpXeDorzUDWa_K25mXHlg3Y",
"minScore": 0.7,
"pageAction": "login"
}
})
task_id = response.json()["taskId"]
# Poll for result
while True:
result = requests.post("https://api.ucaptcha.net/getTaskResult", json={
"clientKey": API_KEY,
"taskId": task_id
}).json()
if result["status"] == "ready":
token = result["solution"]["gRecaptchaResponse"]
print("Token:", token)
break
elif result["status"] == "failed":
print("Error:", result.get("errorDescription"))
break
time.sleep(5)
const API_KEY = "YOUR_API_KEY";
const { taskId } = await fetch("https://api.ucaptcha.net/createTask", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
clientKey: API_KEY,
task: {
type: "ReCaptchaV3TokenProxyLess",
websiteURL: "https://example.com/login",
websiteKey: "6LdyC2cUAAAAACGuDKpXeDorzUDWa_K25mXHlg3Y",
minScore: 0.7,
pageAction: "login"
}
})
}).then(r => r.json());
while (true) {
const result = await fetch("https://api.ucaptcha.net/getTaskResult", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ clientKey: API_KEY, taskId })
}).then(r => r.json());
if (result.status === "ready") {
console.log("Token:", result.solution.gRecaptchaResponse);
break;
} else if (result.status === "failed") {
console.error("Error:", result.errorDescription);
break;
}
await new Promise(r => setTimeout(r, 5000));
}
Terminal window
# Create task
curl -X POST https://api.ucaptcha.net/createTask \
-H "Content-Type: application/json" \
-d '{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV3TokenProxyLess",
"websiteURL": "https://example.com/login",
"websiteKey": "6LdyC2cUAAAAACGuDKpXeDorzUDWa_K25mXHlg3Y",
"minScore": 0.7,
"pageAction": "login"
}
}'
# Poll for result (replace TASK_ID with the taskId from above)
curl -X POST https://api.ucaptcha.net/getTaskResult \
-H "Content-Type: application/json" \
-d '{
"clientKey": "YOUR_API_KEY",
"taskId": "TASK_ID"
}'
  • 2Captcha
  • CapSolver
  • Anti-Captcha
  • CapMonster
  • DeathByCaptcha
  • RiskByPass
  • 2Crawler
  • Multibot

The following legacy type names are also accepted for backward compatibility:

  • RecaptchaV3TaskProxyless