Bu rehberin tek amacı var: sizi mümkün olan en kısa sürede sıfırdan ilk başarılı API çağrısına ve elde edilmiş token'a götürmek. Ne teori ne uzun açıklama — sadece minimum adımlar ve çalışan kod.
CaptchaAI'nin desteklediği tüm CAPTCHA türleri aynı dört adımlı modeli izler:
- Gönder — CAPTCHA bilgilerini
in.php'ye gönderin - Görev kimliğini sakla — yanıttan dönen ID'yi kaydedin
- Sorgula — sonuç hazır olana kadar her 5 saniyede bir
res.php'yi sorgulayın - Token'ı kullan — hedef sayfaya veya isteğe enjekte edin
Adım 0: API anahtarını alın
- captchaai.com üzerinden kayıt olun
- Panelinizi açın
- 32 karakterlik API anahtarını kopyalayın
Görev göndermek için hesabınızda aktif thread olması gerekir. Hizmeti deniyorsanız ücretsiz deneme için destekle iletişime geçin.
Adım 1: bir CAPTCHA gönderin
Bu örnek en yaygın türlerden biri olan Cloudflare Turnstile'ı çözer. Hedef sayfadan iki bilgiye ihtiyacınız var:
- sitekey — Turnstile widget'ının ortak anahtarı (
data-sitekeyözniteliğinde veya Turnstile script parametrelerinde,0xile başlar) - pageurl — widget'ın yüklendiği sayfanın tam URL'si
cURL
curl -X POST "https://ocr.captchaai.com/in.php" \
-d "key=YOUR_API_KEY" \
-d "method=turnstile" \
-d "sitekey=0x4AAAAAAAC3DHQFLr1GavNl" \
-d "pageurl=https://staging.example.com/qa-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://staging.example.com/qa-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://staging.example.com/qa-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://staging.example.com/qa-login",
"json" => 1,
]));
echo $response;
Adım 2: görev kimliğini saklayın
Başarılı yanıt:
{
"status": 1,
"request": "71823469"
}
request alanı görevinizin kimliğidir — sonucu çekmek için gerekli olacak.
status değeri 0 ise bir sorun var; hata kodu request içinde:
| Hata | Anlamı | Çözüm |
|---|---|---|
ERROR_WRONG_USER_KEY |
API anahtarı format hatası | 32 karakter olduğunu doğrulayın |
ERROR_KEY_DOES_NOT_EXIST |
Anahtar bulunamadı | Panelden tekrar kontrol edin |
ERROR_ZERO_BALANCE |
Boş thread yok | Bakiye yükleyin veya bekleyin |
ERROR_PAGEURL |
pageurl parametresi eksik |
Tam URL'yi ekleyin |
ERROR_WRONG_GOOGLEKEY |
sitekey boş veya hatalı | sitekey'i tekrar çıkarın (Turnstile için 0x ile başlar) |
Adım 3: sonucu sorgulayın
Önce 15 saniye bekleyin, sonra her 5 saniyede bir sorgulayın.
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));
}
Adım 4: token'ı kullanın
Enjeksiyon biçimi CAPTCHA türüne bağlıdır:
- Turnstile / reCAPTCHA:
cf-turnstile-responseveyag-recaptcha-responsealanına yazın ya da sayfa callback'ini çağırın. - Image OCR: tanınan metni cevap input'una koyun.
- GeeTest / FunCaptcha: dönen birkaç alanı sitenin beklediği şekilde birleştirin.
Tarayıcıda en basit enjeksiyon:
document.querySelector('[name="cf-turnstile-response"]').value = token;
document.querySelector("form").submit();
Yaygın başlangıç hataları
- API anahtarında boşluk — temizleyin.
pageurl'de protokol eksik —https://...olmalı.- Çok erken ilk sorgu — 15 saniye bekleyin.
- Çok sık sorgu — 5 saniye yeterli, daha sıkı sorgu hız kazandırmaz.
- Thread tükenmiş — API hata kodları ve plan thread sayınızı kontrol edin.