İçeriğe geç

Captcha çözme

POST /captchas/resolve, bir captcha görevini bir çözücüye gönderir ve çözüm hazır olana kadar isteği açık tutar. Tek istek, tek sonuç.

curl -X POST https://api.clearance.rest/captchas/resolve \
-H "X-API-Key: $CLEARANCE_REST_API_KEY" \
-H "X-Service-Timeout: 60000" \
-H "content-type: application/json" \
-d '{
"provider": "capsolver",
"task": { "type": "ImageToTextTask", "body": "<base64 image>" }
}'

provider çözücüyü seçer ve varsayılanı capsolver’dır.

provider task
capsolver Bir Capsolver görevi, örneğin { "type": "ImageToTextTask", "body": "…" }.
2captcha Bir 2Captcha görevi.
nonecap NoneCap’in kendi istek gövdesi, örneğin { "type": "hcaptcha", "sitekey": "…", "url": "https://…" }.
nonecap-browser { "url", "sitekey", "proxy"? }. sitekey zorunludur. type ve rqdata desteklenmez.

task çözücüye değiştirilmeden iletilir; şekli çözücünün kendisidir. Hangi görev türlerinin ve alanların olduğu için çözücünün dokümantasyonuna bakın.

Projenizin, istediğiniz sağlayıcı için bir hesabı olmalıdır. Yoksa istek 400 döndürür.

Yanıt normalleştirilmez. Çözücünün kendi yanıtıdır; iki alan eklenmiştir: jobId (destekle konuşurken belirtebileceğiniz bir id) ve waitedMs. Gerisi çözücüye bağlıdır:

{ "jobId": "6f1c…", "waitedMs": 1234, "errorId": 0, "taskId": "8b1c…", "status": "ready", "solution": { "text": "abc123" } }
{ "jobId": "6f1c…", "waitedMs": 1234, "id": "12345", "code": "abc123" }
{ "jobId": "6f1c…", "waitedMs": 4021, "id": "solve_01HQF7K3JKWZX", "object": "solve", "status": "solved", "token": "P1_eyJ…" }

Birincisi Capsolver, ikincisi 2Captcha, üçüncüsü NoneCap’tir. SDK’lar bunlardan herhangi birinin içindeki token’ı ya da metni sizin için okur (Node’da solution.value, PHP’de Captchas::solutionValue()).

  • Çözücü çözemedi. Bu yine HTTP 200’dür. Hatayı çözücünün kendi alanlarından okuyun (örneğin 2Captcha’nın code: "ERROR_…" ya da NoneCap’in status: "failed" değeri). SDK’lar bunun yerine tipli bir hata fırlatır.

  • Çözücü çağrısının kendisi başarısız oldu (ağ, kimlik doğrulama, çözücünün hata alanı): HTTP 502 ve { "jobId": "…", "error": "…" }.

  • Süreniz doldu. HTTP 200 ve error: "timeout":

    { "jobId": "6f1c…", "waitedMs": 60000, "error": "timeout" }
  • Hatalı istek (400): geçersiz JSON, bilinmeyen bir provider, eksik task ya da geçersiz bir X-Service-Timeout.

Bekleme en fazla 10 dakika sürer; X-Service-Timeout ile düşürebilirsiniz. Bkz. Timeout. İstemciniz bağlantıyı koparırsa nonecap ya da nonecap-browser üzerindeki çözüm, çözücüde iptal edilir.