Google reCAPTCHA Solver API RELEASED
Ultra-fast, AI-driven solver for Google reCAPTCHA v2 Checkbox, 3x3 Grid, 4x4 YOLO Grid, Invisible & Enterprise challenges with 99.2% measured accuracy and < 350ms latency.
⚡ High-Speed Hybrid AI Pipeline: Powered by batch ONNX tile classification and YOLO11 instance segmentation. Automatically detects and returns exact grid tile indices for traffic lights, fire hydrants, crosswalks, buses, bicycles, and motorcycles in a single millisecond API call.
Supported Challenge Types
1. 3x3 Tile Grid (Classification)
Classifies 9 tiles against challenge title prompt (traffic lights, buses, fire hydrants, bicycles). Supports dynamic replacement tiles via focus_tiles.
2. 4x4 YOLO Grid (Segmentation)
YOLO instance segmentation for objects spanning across multiple grid cells (crosswalks, bridges, large vehicles). Returns ordered indices (0-15).
grid: "4x4"3. Token Bypass (v2 / v3 / Enterprise)
Returns complete g-recaptcha-response token ready for direct form injection without loading any browser images.
Endpoint Information
POST https://captchakings.com/api/recaptcha.php
💰 Pricing: $0.001 per solve ($1.00 / 1,000 solves) — Lowest rates in the industry with 99.9% uptime!
🔑 Authentication: Pass your API key via
🔑 Authentication: Pass your API key via
Authorization: Bearer ck_... header, X-API-Key header, or JSON field api_key.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
grid / type |
string | No | Grid challenge format: "3x3" (default) or "4x4". |
image_base64 / image |
string / file | Yes | The reCAPTCHA payload canvas image (Base64 string or multipart file upload). |
challenge_title |
string | Yes | The instruction prompt (e.g. "traffic lights", "crosswalks", "fire hydrant", "bus", "bicycles", "motorcycles"). |
focus_tiles |
array | Optional | Array of tile numbers (e.g. [0, 4, 8]) to re-evaluate when dynamic replacement images fade in. |
min_confidence |
float | Optional | Custom detection confidence threshold between 0.20 and 0.90 (default optimized dynamically per class). |
api_key |
string | Yes* | Your CaptchaKings API key (optional if Authorization: Bearer header is sent). |
Example Responses
1. 3x3 Tile Grid Classification Response
{
"success": true,
"type": "recaptcha_3x3",
"grid": "3x3",
"tiles_to_click": [0, 1, 4],
"num_detections": 3,
"challenge_title": "traffic lights",
"confidence": 0.985,
"processing_time": "0.182s",
"billing": {
"amount_charged": "0.001000",
"balance_remaining": "9.999000",
"plan": "professional"
},
"message": "reCAPTCHA 3x3 challenge solved successfully"
}2. 4x4 YOLO Grid Segmentation Response
{
"success": true,
"type": "recaptcha_4x4",
"grid": "4x4",
"tiles_to_click": [5, 6, 9, 10],
"num_detections": 2,
"challenge_title": "crosswalks",
"confidence": 0.972,
"processing_time": "0.215s",
"billing": {
"amount_charged": "0.001000",
"balance_remaining": "9.998000",
"plan": "professional"
},
"message": "reCAPTCHA 4x4 challenge solved successfully"
}Code Examples
Python (Requests)
import requests
import base64
API_KEY = "ck_your_api_key_here"
API_URL = "https://captchakings.com/api/recaptcha.php"
# Read captcha image file as Base64
with open("recaptcha_challenge.png", "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("utf-8")
payload = {
"grid": "3x3",
"image_base64": image_b64,
"challenge_title": "traffic lights"
}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(API_URL, json=payload, headers=headers)
data = response.json()
if data.get("success"):
print("Tiles to click (0-8):", data["tiles_to_click"])
print("Solve latency:", data["processing_time"])
else:
print("Solve failed:", data.get("error"))Node.js / JavaScript (Fetch / Axios)
const fs = require('fs');
async function solveRecaptcha() {
const apiKey = 'ck_your_api_key_here';
const imageBase64 = fs.readFileSync('recaptcha_challenge.png', { encoding: 'base64' });
const response = await fetch('https://captchakings.com/api/recaptcha.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + apiKey
},
body: JSON.stringify({
grid: '3x3',
image_base64: imageBase64,
challenge_title: 'traffic lights'
})
});
const data = await response.json();
if (data.success) {
console.log('Click tiles:', data.tiles_to_click);
} else {
console.error('Error:', data.error);
}
}
solveRecaptcha();PHP (cURL)
<?php
$apiKey = 'ck_your_api_key_here';
$imagePath = 'recaptcha_challenge.png';
$imageBase64 = base64_encode(file_get_contents($imagePath));
$payload = [
'grid' => '3x3',
'image_base64' => $imageBase64,
'challenge_title' => 'crosswalks'
];
$ch = curl_init('https://captchakings.com/api/recaptcha.php');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . $apiKey
]
]);
$result = curl_exec($ch);
curl_close($ch);
$data = json_decode($result, true);
if (!empty($data['success'])) {
print_r($data['tiles_to_click']);
}
?>cURL Command Line
curl -X POST https://captchakings.com/api/recaptcha.php \
-H "Authorization: Bearer ck_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"grid": "3x3",
"image_base64": "iVBORw0KGgoAAAANSUhEUgAA...",
"challenge_title": "traffic lights"
}'Automated Browser Solver Integration (Puppeteer / Playwright)
Below is the browser automation snippet to solve reCAPTCHA grid challenges inside Puppeteer or Playwright:
async function solveRecaptchaChallenge(bframe, apiKey) {
// 1. Extract challenge instructions
const promptText = await bframe.$eval('.rc-imageselect-desc-no-canonical strong, .rc-imageselect-desc strong', el => el.innerText.trim());
// 2. Extract challenge grid table (3x3 or 4x4)
const is4x4 = await bframe.$('.rc-imageselect-table-44') !== null;
const gridType = is4x4 ? '4x4' : '3x3';
// 3. Capture payload image
const payloadEl = await bframe.$('.rc-image-tile-wrapper img');
const imageBase64 = await payloadEl.screenshot({ encoding: 'base64' });
// 4. Send request to CaptchaKings API
const response = await fetch('https://captchakings.com/api/recaptcha.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + apiKey
},
body: JSON.stringify({
grid: gridType,
image_base64: imageBase64,
challenge_title: promptText
})
});
const result = await response.json();
if (!result.success) throw new Error(result.error);
// 5. Click the predicted tile squares
const tiles = await bframe.$$('.rc-imageselect-tile, .rc-image-tile-target');
for (const tileIndex of result.tiles_to_click) {
if (tiles[tileIndex]) {
await tiles[tileIndex].click();
await new Promise(r => setTimeout(r, 200));
}
}
// 6. Click Verify
await bframe.click('#recaptcha-verify-button');
return true;
}