What is Yandex SmartCaptcha?
Yandex SmartCaptcha is used by Yandex services and Russian websites. It presents a checkbox ('I'm not a robot') and escalates to a synthetic-tone audio challenge or visual puzzle when it detects suspicious traffic. Tokens are single-use with a 5-minute TTL. The customer validates them server-side via Yandex's API.
How It Works
Send Task
POST your YandexSmartCaptchaTaskProxyLess with the target URL and sitekey to our API. We'll queue it instantly.
We Solve
Capzy's proprietary solver returns valid Yandex SmartCaptcha tokens. ProxyLess routes through our residential pool because DC IPs are systematically escalated to the harder challenge variant. YandexSmartCaptchaTask with your own Russian residential proxy gives the highest success rate.
Get Token
Poll getTaskResult — when status is 'ready', the solution contains the token to inject into the target page.
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": "YandexSmartCaptchaTaskProxyLess",
"websiteKey": "ysc1_bFdbbET5WBnPTvoE5jTXxxxx",
"websiteURL": "https://example.ru/login"
}
}).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 Your Own Proxy
Use YandexSmartCaptchaTask instead of YandexSmartCaptchaTaskProxyLess to route the solve through your own proxy. This is useful when the target site checks the IP that solved the captcha matches the IP submitting the form.
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": "YandexSmartCaptchaTask",
"proxyPort": "8080",
"proxyType": "http",
"proxyLogin": "user",
"websiteKey": "ysc1_bFdbbET5WBnPTvoE5jTXxxxx",
"websiteURL": "https://example.ru/login",
"proxyAddress": "123.45.67.89",
"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.
typetypestringreqyesYandexSmartCaptchaTaskProxyLess or YandexSmartCaptchaTaskwebsiteURLtypestringreqyesThe page URLwebsiteKeytypestringreqyesThe sitekey (starts with ysc1_ or demo format)solution response.
tokentypestringThe SmartCaptcha token. Submit in the smart-token hidden inputFeatures
ProxyLess Task Type
YandexSmartCaptchaTaskProxyLessWith Proxy
YandexSmartCaptchaTaskFrequently Asked Questions
start solving yandex smartcaptcha.
$0.10 in free credits — no card. ~250 free solves to test before you spend.