هذا الدليل يهدف إلى شيء واحد: نقلك من الصفر إلى أول استدعاء ناجح للـ API واستلام التوكن في أسرع وقت ممكن. لا نظرية ولا استطرادات — فقط الخطوات الدنيا وكود يعمل فعلاً.
كل أنواع الكابتشا التي يدعمها CaptchaAI تتبع نفس النمط المكوّن من أربع خطوات:
- الإرسال — أرسل بيانات الكابتشا إلى
in.php - حفظ المعرّف — احفظ معرّف المهمة من الردّ
- الاستفسار — اسأل
res.phpكل 5 ثوانٍ حتى تصل النتيجة - استخدام التوكن — احقنه في الصفحة أو الطلب المستهدف
الخطوة 0: احصل على مفتاح API
- سجّل في captchaai.com
- افتح لوحة التحكم
- انسخ مفتاح الـ API المكوّن من 32 حرفاً
يحتاج حسابك إلى Threads فعّالة لإرسال المهام. إن كنت تجرّب الخدمة فقط، تواصل مع الدعم لتجربة مجانية.
الخطوة 1: أرسل كابتشا
المثال يحلّ Cloudflare Turnstile — أحد أكثر الأنواع شيوعاً. تحتاج قيمتين من الصفحة المستهدفة:
- sitekey — المفتاح العام لويدجت Turnstile (في خاصية
data-sitekeyأو في إعدادات سكربت Turnstile، يبدأ بـ0x) - pageurl — العنوان الكامل للصفحة التي يتحمّل عليها الويدجت
cURL
curl -X POST "https://ocr.captchaai.com/in.php" \
-d "key=YOUR_API_KEY" \
-d "method=turnstile" \
-d "sitekey=0x4AAAAAAAC3DHQFLr1GavNl" \
-d "pageurl=https://example.com/login" \
-d "json=1"
Python
import requests
response = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "turnstile",
"sitekey": "0x4AAAAAAAC3DHQFLr1GavNl",
"pageurl": "https://example.com/login",
"json": 1,
})
print(response.json())
Node.js
const response = await fetch("https://ocr.captchaai.com/in.php", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
key: "YOUR_API_KEY",
method: "turnstile",
sitekey: "0x4AAAAAAAC3DHQFLr1GavNl",
pageurl: "https://example.com/login",
json: "1",
}),
});
console.log(await response.json());
PHP
<?php
$response = file_get_contents("https://ocr.captchaai.com/in.php?" . http_build_query([
"key" => "YOUR_API_KEY",
"method" => "turnstile",
"sitekey" => "0x4AAAAAAAC3DHQFLr1GavNl",
"pageurl" => "https://example.com/login",
"json" => 1,
]));
echo $response;
الخطوة 2: احفظ معرّف المهمة
ردّ ناجح:
{
"status": 1,
"request": "71823469"
}
حقل request هو معرّف مهمتك — ستحتاجه لجلب النتيجة.
إذا كانت قيمة status تساوي 0 فقد حدث خطأ، وستجد رمز الخطأ في request:
| الخطأ | المعنى | الحلّ |
|---|---|---|
ERROR_WRONG_USER_KEY |
تنسيق المفتاح خاطئ | تأكّد من 32 حرفاً |
ERROR_KEY_DOES_NOT_EXIST |
المفتاح غير موجود | راجع لوحة التحكم |
ERROR_ZERO_BALANCE |
لا توجد threads متاحة | اشحن أو انتظر تحرير threads |
ERROR_PAGEURL |
بارامتر pageurl مفقود |
أضف عنوان الصفحة كاملاً |
ERROR_WRONG_GOOGLEKEY |
sitekey فارغ أو خاطئ | استخرج sitekey من جديد (Turnstile يبدأ بـ 0x) |
الخطوة 3: استفسر عن النتيجة
انتظر 15 ثانية، ثم استفسر كل 5 ثوانٍ حتى تصل الإجابة.
Python
import time
time.sleep(15)
while True:
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY",
"action": "get",
"id": "71823469",
"json": 1,
}).json()
if result.get("request") == "CAPCHA_NOT_READY":
time.sleep(5)
continue
if result.get("status") == 1:
token = result["request"]
print(f"Solved! Token: {token[:60]}...")
break
raise RuntimeError(result)
Node.js
await new Promise((r) => setTimeout(r, 15000));
while (true) {
const r = await fetch(
`https://ocr.captchaai.com/res.php?key=YOUR_API_KEY&action=get&id=71823469&json=1`,
);
const data = await r.json();
if (data.request === "CAPCHA_NOT_READY") {
await new Promise((r) => setTimeout(r, 5000));
continue;
}
if (data.status === 1) {
console.log("Solved:", data.request.slice(0, 60));
break;
}
throw new Error(JSON.stringify(data));
}
الخطوة 4: استخدم التوكن
طريقة الحقن تختلف بحسب نوع الكابتشا:
- Turnstile / reCAPTCHA: اكتب في
cf-turnstile-responseأوg-recaptcha-response، أو نادِ على دالة الـ callback. - OCR للصور: ضع النص المتعرَّف عليه في حقل الإجابة.
- GeeTest / FunCaptcha: ركّب الحقول المتعدّدة وفق ما يطلبه الموقع.
أبسط حقن داخل المتصفّح:
document.querySelector('[name="cf-turnstile-response"]').value = token;
document.querySelector("form").submit();
أخطاء شائعة في البداية
- مسافة عند نسخ المفتاح — احذفها.
- بروتوكول مفقود في
pageurl— يجب أن يبدأ بـhttps://. - استفسار مبكر جداً — انتظر 15 ثانية.
- استفسار متقارب جداً — كل 5 ثوانٍ يكفي.
- انتهت الـ threads — راجع أكواد أخطاء الـ API وخطّتك.
الخطوات التالية
- كيفية حلّ reCAPTCHA v2 عبر الـ API: دليل خطوة بخطوة
- كيفية حل Cloudflare Turnstile باستخدام واجهة API
- كيفية حل GeeTest v3 باستخدام API
- حل Image CAPTCHA باستخدام API