Skip to content

atbCAPTCHA

atbCAPTCHA is a bot detection and verification system that uses behavioral analysis and interactive challenges to distinguish between humans and automated agents. The uCaptcha API solves atbCAPTCHA challenges and returns a verification token, with or without a proxy.

TypeProxyDescription
AtbCaptchaTokenProxyLessNoSolve without proxy (recommended)
AtbCaptchaTokenYesSolve using your proxy
ParameterTypeRequiredDescription
typestringYesTask type from the table above
websiteURLstringYesURL of the page with the atbCAPTCHA challenge
websiteKeystringYesatbCAPTCHA site key

Required when using the AtbCaptchaToken task type.

ParameterTypeRequiredDescription
proxyTypestringYeshttp, socks4, or socks5
proxyAddressstringYesProxy IP or hostname
proxyPortintegerYesProxy port
proxyLoginstringNoProxy username
proxyPasswordstringNoProxy password
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AtbCaptchaTokenProxyLess",
"websiteURL": "https://example.com/login",
"websiteKey": "af23e041b22d000a11e22a230fa8991c"
}
}
{
"errorId": 0,
"taskId": "abc-123-def"
}
{
"token": "v1.e30.eyJhdXRoIjoiMTIzNDU2Nzg5...MCJ9"
}
FieldTypeDescription
tokenstringThe atbCAPTCHA verification token to submit with the form

Once you receive the token value from the solution:

  1. Form submission — Set the atbCAPTCHA token in the hidden verification input and submit the form.
  2. API request — Include the token in the request body or headers when calling the target server’s protected endpoint.
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": "AtbCaptchaTokenProxyLess",
"websiteURL": "https://example.com/login",
"websiteKey": "af23e041b22d000a11e22a230fa8991c"
}
})
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"]["token"]
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: "AtbCaptchaTokenProxyLess",
websiteURL: "https://example.com/login",
websiteKey: "af23e041b22d000a11e22a230fa8991c"
}
})
}).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.token);
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": "AtbCaptchaTokenProxyLess",
"websiteURL": "https://example.com/login",
"websiteKey": "af23e041b22d000a11e22a230fa8991c"
}
}'
# 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