MTCaptcha Solver NEW
Solve MTCaptcha (image → text) with a single API call. ~98% accuracy, <3s average response.
MTCaptcha presents a distorted text image that the user must type. Send that challenge image to the endpoint below and you get back the predicted text. You can submit the image as a file upload or as a base64 string (handy when you extract the image straight from the page).
Endpoint:
Cost: $0.001 per successful solve ($1.00 / 1000). Auth: your API key.
POST https://captchakings.com/api/mtcaptcha.phpCost: $0.001 per successful solve ($1.00 / 1000). Auth: your API key.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
image | file | One of these | Multipart file upload of the captcha image (JPG/PNG/GIF). |
image_base64 | string | One of these | Base64 image (data URL or raw base64). |
api_key | string | Yes* | Your API key. *Can be sent via Authorization: Bearer or X-API-Key header instead. |
Response
{
"success": true,
"data": {
"type": "mtcaptcha",
"prediction": "ab3kf",
"confidence": "98%",
"confidence_raw": 0.98,
"process_time": 1.2
},
"billing": { "amount_charged": "0.001000", "balance_remaining": "4.999000", "plan": "starter" },
"processing_time": "1.2s",
"message": "MTCaptcha processed successfully"
}Python
Using our SDK (pip install captchakings):
from captchakings import CaptchaKings
ck = CaptchaKings("ck_your_api_key_here")
# From a file
result = ck.solve_mtcaptcha("mtcaptcha.jpg")
print(result.text, result.confidence)
# From base64 (e.g. extracted from the page)
result = ck.solve_mtcaptcha(image_base64="data:image/jpeg;base64,/9j/4AAQ...")
print(result.text)Plain requests (no SDK):
import requests
with open("mtcaptcha.jpg", "rb") as f:
r = requests.post(
"https://captchakings.com/api/mtcaptcha.php",
headers={"Authorization": "Bearer ck_your_api_key_here"},
files={"image": f},
timeout=60,
)
data = r.json()
if data["success"]:
print("Text:", data["data"]["prediction"])
print("Balance left: $", data["billing"]["balance_remaining"])
else:
print("Error:", data["error"])Node.js
Using our SDK (npm install captchakings):
const CaptchaKings = require('captchakings');
const ck = new CaptchaKings('ck_your_api_key_here');
(async () => {
// From a file
const result = await ck.solveMtcaptcha({ imagePath: 'mtcaptcha.jpg' });
console.log(result.text, result.confidence);
// From base64
const r2 = await ck.solveMtcaptcha({ imageBase64: 'data:image/jpeg;base64,/9j/4AAQ...' });
console.log(r2.text);
})();Plain fetch (Node 18+):
import fs from 'fs';
const fd = new FormData();
fd.append('image', new Blob([fs.readFileSync('mtcaptcha.jpg')]), 'mtcaptcha.jpg');
const res = await fetch('https://captchakings.com/api/mtcaptcha.php', {
method: 'POST',
headers: { 'Authorization': 'Bearer ck_your_api_key_here' },
body: fd,
});
const data = await res.json();
if (data.success) console.log('Text:', data.data.prediction);
else console.error('Error:', data.error);PHP
<?php
$ch = curl_init('https://captchakings.com/api/mtcaptcha.php');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ck_your_api_key_here'],
CURLOPT_POSTFIELDS => [
'image' => new CURLFile('/path/to/mtcaptcha.jpg'),
],
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if ($result['success']) {
echo "Text: " . $result['data']['prediction'] . PHP_EOL;
echo "Balance left: $" . $result['billing']['balance_remaining'] . PHP_EOL;
} else {
echo "Error: " . $result['error'];
}cURL
# File upload
curl -X POST https://captchakings.com/api/mtcaptcha.php \
-H "Authorization: Bearer ck_your_api_key_here" \
-F "[email protected]"
# Base64
curl -X POST https://captchakings.com/api/mtcaptcha.php \
-H "Authorization: Bearer ck_your_api_key_here" \
--data-urlencode "image_base64=data:image/jpeg;base64,/9j/4AAQ..."
Tip: MTCaptcha refreshes its image on wrong answers. If a solve returns low confidence, fetch the new image and retry. Retries are billed per successful solve.
Need another captcha type? See the full endpoint list or contact support.