Production xCaptcha solver powered by ConvNeXt deep learning. Solve binary image challenges with 96% measured accuracy at ~0.8s median. Multi-round support and a 2Captcha-compatible API.
xCaptcha Solver is a deep learning service that automatically solves xCaptcha binary image challenges. CaptchaKings runs a ConvNeXt-powered solver achieving 96% accuracy with ~0.8s median response time at $1.00 per 1,000 solves ($0.001/solve). Full multi-round support via standard 2Captcha-compatible endpoints with a $0.50 free trial.
Our AI analyzes binary image challenges and identifies which grid cells to click — at ~0.8s median per round
Extract the base64-encoded image from the xCaptcha 3×3 grid challenge. Each cell contains a binary classification image (e.g., "Select all images with bicycles").
Our ConvNeXt deep learning model processes each cell simultaneously and predicts which cells match the target category with 96% measured accuracy.
The API returns buttons_to_click: [1, 5, 8] — the exact cell indices to click. Simulate clicks and submit. If multi-round, repeat until the token is received.
Plug into your existing Python, Node.js, PHP, or cURL bots in less than 5 minutes via the 2Captcha-compatible protocol (/api/in.php + /api/res.php).
import requests
import base64
import time
API_KEY = "ck_your_api_key_here"
# 1. Submit xCaptcha task (2Captcha-compatible)
with open("xcaptcha.png", "rb") as f:
img_b64 = base64.b64encode(f.read()).decode("utf-8")
r = requests.post(
"https://captchakings.com/api/in.php",
data={"key": API_KEY, "method": "xcaptcha", "body": img_b64, "json": 1},
timeout=30
).json()
task_id = r["request"]
# 2. Poll for the solution
while True:
time.sleep(3)
res = requests.get(
"https://captchakings.com/api/res.php",
params={"key": API_KEY, "action": "get", "id": task_id, "json": 1},
timeout=30
).json()
if res.get("status") == 1:
print("Buttons to click:", res["request"])
break
if res.get("request") != "CAPCHA_NOT_READY":
print("Error:", res)
break
const fs = require('fs');
async function solveXCaptcha() {
const imgB64 = fs.readFileSync('xcaptcha.png').toString('base64');
// 1. Submit xCaptcha task (2Captcha-compatible)
const inRes = await fetch('https://captchakings.com/api/in.php', {
method: 'POST',
body: new URLSearchParams({
key: 'ck_your_api_key_here',
method: 'xcaptcha',
body: imgB64,
json: 1
})
});
const { request: taskId } = await inRes.json();
// 2. Poll for the solution
while (true) {
await new Promise(r => setTimeout(r, 3000));
const res = await fetch(`https://captchakings.com/api/res.php?key=ck_your_api_key_here&action=get&id=${taskId}&json=1`);
const result = await res.json();
if (result.status === 1) {
console.log('Buttons to click:', result.request);
break;
}
if (result.request !== 'CAPCHA_NOT_READY') {
console.error('Error:', result);
break;
}
}
}
solveXCaptcha();
# 1. Submit xCaptcha task
curl -X POST "https://captchakings.com/api/in.php" \
-d "key=ck_your_api_key_here" \
-d "method=xcaptcha" \
-d "body=BASE64_IMAGE" \
-d "json=1"
# → {"status":1,"request":"123456789"}
# 2. Poll for the solution (repeat until status=1)
curl "https://captchakings.com/api/res.php?key=ck_your_api_key_here&action=get&id=123456789&json=1"
# → {"status":1,"request":"{\"buttons_to_click\":[1,2]}"}
<?php
$apiKey = "ck_your_api_key_here";
$imgB64 = base64_encode(file_get_contents('xcaptcha.png'));
// 1. Submit xCaptcha task
$ch = curl_init('https://captchakings.com/api/in.php');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => ['key' => $apiKey, 'method' => 'xcaptcha', 'body' => $imgB64, 'json' => 1],
CURLOPT_RETURNTRANSFER => true
]);
$in = json_decode(curl_exec($ch), true);
curl_close($ch);
$taskId = $in['request'];
// 2. Poll for the solution
do {
sleep(3);
$url = 'https://captchakings.com/api/res.php?key=' . $apiKey . '&action=get&id=' . $taskId . '&json=1';
$res = json_decode(file_get_contents($url), true);
} while ($res['request'] === 'CAPCHA_NOT_READY');
echo "Buttons to click: " . $res['request'];
?>
~0.8s median response time. Our GPU-accelerated inference runs on dedicated HuggingFace Spaces with zero cold start.
ConvNeXt-based deep learning model, measured on 500 production samples (see /benchmarks). Continuously improved with active learning.
Handles sequential xCaptcha challenges automatically. Each round is solved independently until the final verification token is returned.
Drop-in replacement using in.php / res.php endpoints. Switch from 2Captcha or Anti-Captcha with zero code changes — just change the host.
Only $0.001 per solve ($1.00/1k). Up to 3× cheaper than competitors. Pay-as-you-go with $1.00 minimum top-up.
HTTPS TLS 1.3 encryption. PDO prepared statements. API keys never logged. Images purged within 24 hours.
Pay-as-you-go xCaptcha solving with measured performance — see /benchmarks
* As of August 2026, 2Captcha, Anti-Captcha, CapSolver, and NopeCHA do not list xCaptcha support. CaptchaKings runs a production automated xCaptcha solver API — measured performance at /benchmarks.
• Multi-round challenges: each round is billed separately — submit the new grid image for every round until the verification token is issued.
• Wrong cells: capture the full grid at original resolution; cropped or heavily resized grids reduce accuracy.
• 2Captcha-compatible mode: poll /api/res.php until status=1; CAPCHA_NOT_READY means keep polling.
Use this solver only on systems you own or are explicitly authorized to test (QA automation, accessibility tooling, research, load testing). You are responsible for complying with each target site's Terms of Service and applicable law. Details: Terms of Service.
Last verified: August 30, 2026 — accuracy and speed figures from /benchmarks.
Start solving xCaptcha with CaptchaKings today. Get $0.50 free balance to test our 96% measured-accuracy AI solver.
🚀 Sign Up Free — No Credit Card Required