UNLOCK API

CAPTCHA çözme API başvuru belgesi

İki istek formatı, tek hesap. JSON yöntemlerini (createTask, getTaskResult, getBalance) veya klasik form yöntemlerini (in.php, res.php) kullanın. İkisi de hesap sayfanızdaki API anahtarını ve aynı bakiyeyi kullanır.

Temel bilgiler

Temel URL
https://unlock-api.com
API anahtarı
32 karakter, hesap sayfanızda. clientKey (JSON) veya key (in.php, res.php) olarak gönderin.
Format
JSON yöntemleri: JSON gövdeli POST. in.php ve res.php: GET veya POST form alanları; JSON yanıt için json=1 ekleyin.
Sınırlar
Hesap başına dakikada 1.200 istek, sonuç kontrolleri dahil. Görev oluşturduktan sonra yaklaşık 5 saniye bekleyin, ardından her 5 saniyede bir kontrol edin.
Süre sınırı
5 dakika içinde çözülmeyen bir görev ERROR_CAPTCHA_UNSOLVABLE ile başarısız olur ve ücreti bakiyeye geri döner.
Ücretlendirme
Görev ücreti, görev oluşturulduğunda alınır. Başarısız görevler otomatik olarak iade edilir.

Hızlı başlangıç

JSON yöntemleriyle bir reCAPTCHA v2 çözün. YOUR_API_KEY yerine kendi anahtarınızı yazın.

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
  "clientKey": KEY,
  "task": {
      "type": "RecaptchaV2TaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "6LcR_RsTAAAAAFJR_5ZdbQd0SMxL7yIDmSXH1-lo"
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

while True:
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(r["errorCode"])   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"]["gRecaptchaResponse"])
        break

JSON yöntemleri

POST /createTask Görev oluşturma

Gövde: clientKey ve bir task nesnesi. Diğer alanları görev türü belirler; Görev türleri bölümüne bakın. Yanıt: errorId 0 ve taskId ya da errorId 1 ile errorCode.

POST https://unlock-api.com/createTask
{"clientKey":"YOUR_API_KEY","task":{"type":"TurnstileTaskProxyless","websiteURL":"https://example.com","websiteKey":"0x4AAAAAAAC3DHQFLr1GavRN"}}

{"errorId":0,"taskId":1001}
{"errorId":1,"errorCode":"ERROR_ZERO_BALANCE","errorDescription":"..."}

POST /getTaskResult Sonucu alma

Gövde: clientKey ve taskId. Görev çalışırken: status processing. Tamamlandığında: solution ve cost ile birlikte status ready. Başarısız bir görev errorId 1 ve errorCode ile yanıt verir.

POST https://unlock-api.com/getTaskResult
{"clientKey":"YOUR_API_KEY","taskId":1001}

{"errorId":0,"status":"processing"}
{"errorId":0,"status":"ready","solution":{"token":"0.zrSnRHO7h0..."},"cost":"0.0012","createTime":1791640000,"endTime":1791640011,"solveCount":1}

POST /getBalance Bakiyeyi alma

Gövde: clientKey. Yanıt: ABD doları cinsinden balance.

{"clientKey":"YOUR_API_KEY"}

{"errorId":0,"balance":42.5}

Yanlış yanıtı bildirme

reportIncorrectRecaptcha ve reportIncorrectImageCaptcha, clientKey ve taskId alır ve success ile yanıt verir. Mevcut kütüphanelerle uyumluluk için kabul edilirler; bildirim ücreti değiştirmez.

Form yöntemleri (in.php, res.php)

Görev gönderme: in.php

Alanlar: key, method ve CAPTCHA türünün alanları. Yanıt: OK|ID veya json=1 ile {"status":1,"request":"ID"}. Hatalar adlarıyla döner, örneğin ERROR_ZERO_BALANCE.

POST https://unlock-api.com/in.php
key=YOUR_API_KEY&method=hcaptcha&sitekey=SITE_KEY&pageurl=https://example.com&json=1

OK|1001
{"status":1,"request":"1001"}

Yanıtı alma: res.php

action=get&id=ID, çözüldüğünde OK|ANSWER, çalışırken CAPCHA_NOT_READY döndürür. action=get2 ücreti de ekler. ids=ID1,ID2 tek seferde en fazla 100 görevi kontrol eder. action=getbalance bakiyeyi döndürür. action=reportbad ve reportgood kabul edilir.

GET https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001
CAPCHA_NOT_READY
OK|P1_eyJ0eXAiOiJKV1Qi...

GET https://unlock-api.com/res.php?key=YOUR_API_KEY&action=getbalance
42.5

Diğer yöntemler

POST /getToken Oluştur ve bekle: getToken

createTask ile aynı gövde. Çağrı en fazla 50 saniye bekler ve getTaskResult ile aynı yanıtı döndürür. Görev hâlâ çalışıyorsa yanıt, taskId ile birlikte status processing olur; getTaskResult ile sorgulamaya devam edin.

POST https://unlock-api.com/getToken
{"clientKey":"YOUR_API_KEY","task":{"type":"TurnstileTaskProxyless","websiteURL":"https://example.com","websiteKey":"0x4AAAA..."}}

{"errorId":0,"taskId":1001,"status":"ready","solution":{"token":"0.zrSnRHO7h0..."},"cost":"0.000725"}

Sonuç geri çağrıları

createTask isteğine callbackUrl (veya in.php isteğine pingback) ekleyin; görev bittiğinde sonuç oraya gönderilir: taskId içeren, getTaskResult benzeri bir JSON gövdesi ya da in.php için id=…&code=… form gövdesi. Yalnızca herkese açık adresler, bir kez ve 5 saniyelik zaman aşımıyla çağrılır; sonuç sorgulama yoluyla da erişilebilir kalır.

{"clientKey":"YOUR_API_KEY","callbackUrl":"https://your.server/captcha-result","task":{...}}

POST https://your.server/captcha-result
{"errorId":0,"taskId":1001,"status":"ready","solution":{...},"cost":"0.0005"}

İstatistikler

getQueueStats, bekleyen ve şu anda çözülen görevleri ve son bir saatteki ortalama çözme süresini döndürür. getSpendingStats, bir UTC günü için saatlik hacminizi ve harcamanızı döndürür (date, unix zamanı olarak). test, aldığı gövdeyi aynen geri döndürür.

POST https://unlock-api.com/getQueueStats     {"clientKey":"..."}  ->  {"errorId":0,"waiting":3,"solving":12,"speed":6.4,"total":15}
POST https://unlock-api.com/getSpendingStats  {"clientKey":"...","date":1791590400}  ->  {"errorId":0,"data":[{"dateFrom":...,"volume":120,"money":0.06},...]}
POST https://unlock-api.com/test              {"anything":1}  ->  {"errorId":0,"received":{"anything":1}}

IP izin listesi

Hesap sayfasında bir IP izin listesi ayarlarsanız, diğer IP'lerden gelen istekler ERROR_IP_NOT_ALLOWED alır.

Görev türleri

Her türün proxy'siz bir adı ve proxy'li bir adı (Proxyless kısmı çıkarılmış hali) vardır. Adlar büyük/küçük harf fark etmeksizin ve diğer çözücü API'lerinin kullandığı yazımlarla eşleştirilir. Proxy'li görevler ayrıca proxyType (http, socks4, socks5), proxyAddress ve proxyPort ya da http://user:[email protected]:8080 gibi tek bir proxy dizesi ister. Burada listelenmeyen isteğe bağlı alanlar çözücüye gönderildiği gibi iletilir.

reCAPTCHA v2

Ayrıntılar

RecaptchaV2TaskProxylessRecaptchaV2Task

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

reCAPTCHA v2 Enterprise

Ayrıntılar

RecaptchaV2EnterpriseTaskProxylessRecaptchaV2EnterpriseTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

reCAPTCHA v3

Ayrıntılar

RecaptchaV3TaskProxylessRecaptchaV3Task

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

Cloudflare Turnstile

Ayrıntılar

TurnstileTaskProxylessTurnstileTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

GeeTest v3 / v4

Ayrıntılar

GeeTestTaskProxylessGeeTestTask

Alanlar

websiteURL (zorunlu)

FunCaptcha (Arkose Labs)

Ayrıntılar

FunCaptchaTaskProxylessFunCaptchaTask

Alanlar

websiteURL (zorunlu)websitePublicKey (zorunlu)

Amazon AWS WAF

Ayrıntılar

AmazonTaskProxylessAmazonTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

MTCaptcha

Ayrıntılar

MtCaptchaTaskProxylessMtCaptchaTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

Friendly Captcha

Ayrıntılar

FriendlyCaptchaTaskProxylessFriendlyCaptchaTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

Lemin Cropped Captcha

Ayrıntılar

LeminTaskProxylessLeminTask

Alanlar

websiteURL (zorunlu)captchaId (zorunlu)divId (zorunlu)

DataDome

Ayrıntılar

DataDomeSliderTask

Alanlar

websiteURL (zorunlu)captchaUrl (zorunlu)userAgent (zorunlu)

KeyCaptcha

Ayrıntılar

KeyCaptchaTaskProxylessKeyCaptchaTask

Alanlar

websiteURL (zorunlu)s_s_c_user_id (zorunlu)s_s_c_session_id (zorunlu)s_s_c_web_server_sign (zorunlu)s_s_c_web_server_sign2 (zorunlu)

Capy Puzzle

Ayrıntılar

CapyTaskProxylessCapyTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

Cloudflare Challenge sayfası

Ayrıntılar

AntiCloudflareTask

Alanlar

websiteURL (zorunlu)

Cutcaptcha

Ayrıntılar

CutCaptchaTaskProxylessCutCaptchaTask

Alanlar

websiteURL (zorunlu)

CyberSiARA

Ayrıntılar

AntiCyberSiAraTaskProxylessAntiCyberSiAraTask

Alanlar

websiteURL (zorunlu)

atbCAPTCHA

Ayrıntılar

AtbCaptchaTaskProxylessAtbCaptchaTask

Alanlar

websiteURL (zorunlu)

Tencent Captcha

Ayrıntılar

TencentTaskProxylessTencentTask

Alanlar

websiteURL (zorunlu)

Prosopo Procaptcha

Ayrıntılar

ProsopoTaskProxylessProsopoTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

CaptchaFox

Ayrıntılar

CaptchaFoxTaskProxylessCaptchaFoxTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

AltchaTaskProxylessAltchaTask

Alanlar

websiteURL (zorunlu)

NetEase Yidun

Ayrıntılar

YidunTaskProxylessYidunTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

Yandex SmartCaptcha

Ayrıntılar

YandexSmartCaptchaTaskProxylessYandexSmartCaptchaTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

VK Captcha

Ayrıntılar

VKCaptchaTaskProxylessVKCaptchaTask

Alanlar

websiteURL (zorunlu)

Binance Captcha

Ayrıntılar

BinanceTaskProxylessBinanceTask

Alanlar

websiteURL (zorunlu)websiteKey (zorunlu)

Özel görev (Imperva, Temu ve diğerleri)

Ayrıntılar

CustomTask

Alanlar

class (zorunlu)

Görselden metne

Ayrıntılar

ImageToTextTask

Alanlar

body (zorunlu)

Metin sorusu

Ayrıntılar

TextCaptchaTask

Alanlar

comment (zorunlu)

Görsel ızgarası

Ayrıntılar

GridTask

Alanlar

body (zorunlu)

Tıklama koordinatları

Ayrıntılar

CoordinatesTask

Alanlar

body (zorunlu)

Döndürme

Ayrıntılar

RotateTask

Alanlar

body (zorunlu)

AudioTask

Alanlar

body (zorunlu)

Sınırlayıcı kutu

Ayrıntılar

BoundingBoxTask

Alanlar

body (zorunlu)

Etrafını çizme

Ayrıntılar

DrawAroundTask

Alanlar

body (zorunlu)

Sürükle ve bırak

Ayrıntılar

DragAndDropTask

Alanlar

Karmaşık görsel görevi

Ayrıntılar

ComplexImageTask

Alanlar

class (zorunlu)

Hatalar

İki formatta da aynı adlar. Hatayla reddedilen istekler ücretlendirilmez.

HataAnlamı ve yapılması gereken
ERROR_KEY_DOES_NOT_EXISTAnahtar yanlış. Hesap sayfasından yeniden kopyalayın. (in.php ve res.php: ERROR_WRONG_USER_KEY)
ERROR_ZERO_BALANCEBakiye görevi karşılamıyor. Bakiye yükleyin; hiçbir ücret alınmadı.
ERROR_NO_SLOT_AVAILABLEŞu anda çok fazla istek var, bu yüzden görev kabul edilemedi. Birkaç saniye sonra tekrar deneyin; hiçbir ücret alınmadı.
ERROR_TASK_NOT_SUPPORTEDGörev türü bilinmiyor veya kapalı. Tür adını kontrol edin.
ERROR_BAD_PARAMETERSZorunlu bir alan eksik veya formatı yanlış.
ERROR_PAGEURLwebsiteURL veya pageurl eksik ya da tam bir http(s) adresi değil.
ERROR_GOOGLEKEYin.php reCAPTCHA isteğinde googlekey eksik.
ERROR_BAD_PROXYProxy'li bir görev için proxyAddress ve proxyPort gerekir.
ERROR_ZERO_CAPTCHA_FILESIZEGörsel eksik veya çok küçük.
ERROR_TOO_BIG_CAPTCHA_FILESIZEGörsel 100 KB'tan büyük.
ERROR_IMAGE_TYPE_NOT_SUPPORTEDGörsel geçerli bir base64 değil.
ERROR_WRONG_CAPTCHA_IDHesabınızda bu kimliğe sahip bir görev yok.
CAPCHA_NOT_READYYalnızca in.php ve res.php: görev hâlâ çalışıyor. 5 saniye sonra tekrar kontrol edin.
ERROR_CAPTCHA_UNSOLVABLEGörev zamanında çözülemedi. Ücreti bakiyenize geri döndü.
ERROR_TOO_MANY_REQUESTSÇok fazla istek. Sonuç kontrollerini 5 saniyede bire düşürün.
ERROR_IP_NOT_ALLOWEDİstek, hesabın izin listesinde olmayan bir IP'den geldi. IP'yi hesap sayfasında ekleyin.