reCAPTCHA v2 Solver, solved in 5.0s.
Solve Google reCAPTCHA v2 checkbox and image challenges automatically. Supports both standard and invisible variants.
reCAPTCHA v2 presents a checkbox ('I'm not a robot') that users must click. If Google's risk engine is suspicious, it shows image grid challenges ('Select all images with traffic lights'). The invisible variant skips the checkbox and triggers programmatically. reCAPTCHA v2 is still widely used on login forms, registration pages, and anywhere Google's free captcha is deployed.
Quick Integration
import requests, time
API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"
# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
"clientKey": KEY,
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://example.com/signup",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
}
}).json()
task_id = task["taskId"]
print(f"Task created: {task_id}")
# Step 2: Poll for result
while True:
result = requests.post(f"{API}/getTaskResult", json={
"clientKey": KEY,
"taskId": task_id
}).json()
if result["status"] == "ready":
print("Solved!", result["solution"])
break
elif result["status"] == "failed":
print("Failed:", result.get("errorDescription"))
break
time.sleep(1)
Using the result
# Step 3: Use the result — paste the token into g-recaptcha-response
token = result["solution"]["gRecaptchaResponse"]
# Browser side: document.querySelector('textarea[name="g-recaptcha-response"]').value = token
# Or include it in your form POST:
resp = requests.post("https://target.example.com/login", data={
"username": "...",
"password": "...",
"g-recaptcha-response": token,
})
print(resp.status_code)1. Send Payload
Dispatch your ReCaptchaV2TaskProxyLess to our processing cluster via the secure API endpoint.
2. Solving Engine
Capzy's proprietary solver returns valid reCAPTCHA v2 tokens for authorized testing and automation. Both checkbox and invisible modes are supported.
3. Get Result
Poll getTaskResult for the validated token, then finalize your automated request.
Using your own proxy
Use ReCaptchaV2Task instead of ReCaptchaV2TaskProxyLess to route the solve through your own proxy — useful when the target site checks that the solving IP matches the submitting IP.
import requests, time
API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"
# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
"clientKey": KEY,
"task": {
"type": "ReCaptchaV2Task",
"websiteURL": "https://example.com/signup",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"proxyType": "http",
"proxyAddress": "123.45.67.89",
"proxyPort": "8080",
"proxyLogin": "user",
"proxyPassword": "pass"
}
}).json()
task_id = task["taskId"]
print(f"Task created: {task_id}")
# Step 2: Poll for result
while True:
result = requests.post(f"{API}/getTaskResult", json={
"clientKey": KEY,
"taskId": task_id
}).json()
if result["status"] == "ready":
print("Solved!", result["solution"])
break
elif result["status"] == "failed":
print("Failed:", result.get("errorDescription"))
break
time.sleep(1)
Additional proxy parameters
proxyTypetypestringreqyesProxy protocol: http, https, socks4, or socks5proxyAddresstypestringreqyesProxy IP address or hostnameproxyPorttypenumberreqyesProxy port numberproxyLogintypestringreqnoProxy username (if auth required)proxyPasswordtypestringreqnoProxy password (if auth required)userAgenttypestringreqnoUser-Agent string to use. Must match the UA you use when submitting the tokenTask Parameters
API SpectypetypestringreqyesReCaptchaV2TaskProxyLess or ReCaptchaV2TaskwebsiteURLtypestringreqyesThe page URL where reCAPTCHA is loadedwebsiteKeytypestringreqyesThe sitekey (starts with 6L...). Found in data-sitekey or the JS render callisInvisibletypebooleanreqnoSet true for invisible reCAPTCHA (no checkbox, auto-triggered)isEnterprisetypebooleanreqnoSet true if the site uses reCAPTCHA EnterpriseResponse Shape
gRecaptchaResponsetypestringThe solved token. Submit in g-recaptcha-response textareaExample response
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AGdBq25...<long opaque token>..."
}
}Error response
{
"errorId": 1,
"errorCode": "ERROR_CAPTCHA_UNSOLVABLE",
"errorDescription": "Solver gave up."
}Features
Pricing & Stats
Start solving recaptcha v2.
$0.10 in free credits — no card. ~250 free solves to test before you spend.