UNLOCK API

CAPTCHA सॉल्विंग API रेफरेंस

दो रिक्वेस्ट फॉर्मेट, एक अकाउंट। JSON मेथड (createTask, getTaskResult, getBalance) या क्लासिक फॉर्म मेथड (in.php, res.php) इस्तेमाल करें। दोनों आपके अकाउंट पेज की API key और एक ही बैलेंस इस्तेमाल करते हैं।

बुनियादी बातें

Base URL
https://unlock-api.com
API key
32 कैरेक्टर, आपके अकाउंट पेज पर। इसे clientKey (JSON) या key (in.php, res.php) के रूप में भेजें।
फॉर्मेट
JSON मेथड: JSON body के साथ POST। in.php और res.php: GET या POST फॉर्म फील्ड; JSON जवाब के लिए json=1 जोड़ें।
सीमाएं
हर अकाउंट के लिए प्रति मिनट 1,200 रिक्वेस्ट, नतीजा चेक करना भी शामिल। टास्क बनाने के बाद करीब 5 सेकंड रुकें, फिर हर 5 सेकंड में चेक करें।
समय सीमा
जो टास्क 5 मिनट में हल नहीं होता, वह ERROR_CAPTCHA_UNSOLVABLE के साथ फेल हो जाता है और उसका चार्ज बैलेंस में वापस आ जाता है।
बिलिंग
टास्क की कीमत टास्क बनाते समय कटती है। फेल हुए टास्क का पैसा अपने आप वापस आता है।

क्विक स्टार्ट

JSON मेथड से reCAPTCHA v2 हल करें। YOUR_API_KEY की जगह अपनी key डालें।

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 मेथड

POST /createTask टास्क बनाएं

Body: clientKey और एक task ऑब्जेक्ट। बाकी फील्ड टास्क type से तय होते हैं; टास्क प्रकार देखें। जवाब: errorId 0 और taskId, या errorCode के साथ errorId 1।

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 नतीजा पाएं

Body: clientKey और taskId। टास्क चलते समय: status processing। पूरा होने पर: solution और cost के साथ status ready। फेल हुआ टास्क अपने errorCode के साथ errorId 1 लौटाता है।

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 बैलेंस देखें

Body: clientKey। जवाब: अमेरिकी डॉलर में बैलेंस।

{"clientKey":"YOUR_API_KEY"}

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

गलत जवाब की रिपोर्ट करें

reportIncorrectRecaptcha और reportIncorrectImageCaptcha, clientKey और taskId लेते हैं और success लौटाते हैं। इन्हें मौजूदा लाइब्रेरी के साथ कम्पैटिबिलिटी के लिए स्वीकार किया जाता है; रिपोर्ट से चार्ज नहीं बदलता।

फॉर्म मेथड (in.php, res.php)

टास्क भेजें: in.php

फील्ड: key, method और CAPTCHA प्रकार के फील्ड। जवाब: OK|ID, या json=1 के साथ {"status":1,"request":"ID"}। एरर अपने नाम के रूप में लौटते हैं, जैसे 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"}

जवाब पाएं: res.php

action=get&id=ID हल होने पर OK|ANSWER और काम चलते समय CAPCHA_NOT_READY लौटाता है। action=get2 में cost भी आता है। ids=ID1,ID2 एक साथ 100 टास्क तक चेक करता है। action=getbalance बैलेंस लौटाता है। action=reportbad और reportgood स्वीकार किए जाते हैं।

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

और मेथड

POST /getToken बनाएं और इंतज़ार करें: getToken

createTask जैसी ही body। कॉल 50 सेकंड तक इंतज़ार करती है और getTaskResult जैसा ही जवाब लौटाती है। अगर टास्क अभी भी चल रहा है, तो जवाब में taskId के साथ status processing आता है; getTaskResult पोल करते रहें।

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"}

नतीजे के callback

createTask में callbackUrl (या in.php में pingback) जोड़ें, और टास्क पूरा होने पर नतीजा वहां भेजा जाता है: taskId के साथ getTaskResult जैसी JSON body, या in.php के लिए फॉर्म body id=…&code=…। सिर्फ पब्लिक एड्रेस पर, एक बार, 5 सेकंड के timeout के साथ कॉल की जाती है; नतीजा पोलिंग से भी मिलता रहता है।

{"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"}

आंकड़े

getQueueStats अभी इंतज़ार में और हल हो रहे टास्क, और पिछले एक घंटे का औसत हल समय लौटाता है। getSpendingStats एक UTC दिन (date, unix time में) के लिए हर घंटे का आपका वॉल्यूम और खर्च लौटाता है। test मिली हुई body को वैसे ही लौटा देता है।

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 allow list

अगर आप अकाउंट पेज पर IP allow list सेट करते हैं, तो दूसरे IP से आई रिक्वेस्ट को ERROR_IP_NOT_ALLOWED मिलता है।

टास्क प्रकार

हर प्रकार का एक proxyless नाम और एक proxy नाम (Proxyless हटाकर) होता है। नाम किसी भी case में और दूसरे सॉल्वर API की स्पेलिंग के साथ भी मैच होते हैं। Proxy टास्क को proxyType (http, socks4, socks5), proxyAddress और proxyPort, या http://user:[email protected]:8080 जैसी एक proxy स्ट्रिंग भी चाहिए। यहां न दिए गए वैकल्पिक फील्ड जैसे भेजे गए, वैसे ही सॉल्वर को दे दिए जाते हैं।

reCAPTCHA v2

विवरण

RecaptchaV2TaskProxylessRecaptchaV2Task

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

reCAPTCHA v2 Enterprise

विवरण

RecaptchaV2EnterpriseTaskProxylessRecaptchaV2EnterpriseTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

reCAPTCHA v3

विवरण

RecaptchaV3TaskProxylessRecaptchaV3Task

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

Cloudflare Turnstile

विवरण

TurnstileTaskProxylessTurnstileTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

GeeTest v3 / v4

विवरण

GeeTestTaskProxylessGeeTestTask

फील्ड

websiteURL (ज़रूरी)

FunCaptcha (Arkose Labs)

विवरण

FunCaptchaTaskProxylessFunCaptchaTask

फील्ड

websiteURL (ज़रूरी)websitePublicKey (ज़रूरी)

Amazon AWS WAF

विवरण

AmazonTaskProxylessAmazonTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

MtCaptchaTaskProxylessMtCaptchaTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

Friendly Captcha

विवरण

FriendlyCaptchaTaskProxylessFriendlyCaptchaTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

Lemin Cropped Captcha

विवरण

LeminTaskProxylessLeminTask

फील्ड

websiteURL (ज़रूरी)captchaId (ज़रूरी)divId (ज़रूरी)

DataDomeSliderTask

फील्ड

websiteURL (ज़रूरी)captchaUrl (ज़रूरी)userAgent (ज़रूरी)

KeyCaptcha

विवरण

KeyCaptchaTaskProxylessKeyCaptchaTask

फील्ड

websiteURL (ज़रूरी)s_s_c_user_id (ज़रूरी)s_s_c_session_id (ज़रूरी)s_s_c_web_server_sign (ज़रूरी)s_s_c_web_server_sign2 (ज़रूरी)

Capy Puzzle

विवरण

CapyTaskProxylessCapyTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

Cloudflare Challenge पेज

विवरण

AntiCloudflareTask

फील्ड

websiteURL (ज़रूरी)

Cutcaptcha

विवरण

CutCaptchaTaskProxylessCutCaptchaTask

फील्ड

websiteURL (ज़रूरी)

CyberSiARA

विवरण

AntiCyberSiAraTaskProxylessAntiCyberSiAraTask

फील्ड

websiteURL (ज़रूरी)

atbCAPTCHA

विवरण

AtbCaptchaTaskProxylessAtbCaptchaTask

फील्ड

websiteURL (ज़रूरी)

Tencent Captcha

विवरण

TencentTaskProxylessTencentTask

फील्ड

websiteURL (ज़रूरी)

Prosopo Procaptcha

विवरण

ProsopoTaskProxylessProsopoTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

CaptchaFox

विवरण

CaptchaFoxTaskProxylessCaptchaFoxTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

AltchaTaskProxylessAltchaTask

फील्ड

websiteURL (ज़रूरी)

NetEase Yidun

विवरण

YidunTaskProxylessYidunTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

Yandex SmartCaptcha

विवरण

YandexSmartCaptchaTaskProxylessYandexSmartCaptchaTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

VK Captcha

विवरण

VKCaptchaTaskProxylessVKCaptchaTask

फील्ड

websiteURL (ज़रूरी)

Binance Captcha

विवरण

BinanceTaskProxylessBinanceTask

फील्ड

websiteURL (ज़रूरी)websiteKey (ज़रूरी)

कस्टम टास्क (Imperva, Temu और दूसरे)

विवरण

CustomTask

फील्ड

class (ज़रूरी)

इमेज से टेक्स्ट

विवरण

ImageToTextTask

फील्ड

body (ज़रूरी)

टेक्स्ट सवाल

विवरण

TextCaptchaTask

फील्ड

comment (ज़रूरी)

इमेज ग्रिड

विवरण

GridTask

फील्ड

body (ज़रूरी)

क्लिक कोऑर्डिनेट

विवरण

CoordinatesTask

फील्ड

body (ज़रूरी)

इमेज घुमाना

विवरण

RotateTask

फील्ड

body (ज़रूरी)

ऑडियो

विवरण

AudioTask

फील्ड

body (ज़रूरी)

बाउंडिंग बॉक्स

विवरण

BoundingBoxTask

फील्ड

body (ज़रूरी)

चारों ओर रेखा खींचना

विवरण

DrawAroundTask

फील्ड

body (ज़रूरी)

ड्रैग एंड ड्रॉप

विवरण

DragAndDropTask

फील्ड

जटिल इमेज टास्क

विवरण

ComplexImageTask

फील्ड

class (ज़रूरी)

एरर

दोनों फॉर्मेट में एक ही नाम। एरर के साथ मना की गई रिक्वेस्ट पर कोई चार्ज नहीं लगता।

एररइसका मतलब और क्या करें
ERROR_KEY_DOES_NOT_EXISTkey गलत है। इसे अकाउंट पेज से फिर से कॉपी करें। (in.php और res.php: ERROR_WRONG_USER_KEY)
ERROR_ZERO_BALANCEबैलेंस टास्क के लिए काफी नहीं है। पैसे जोड़ें; कोई चार्ज नहीं लगा।
ERROR_NO_SLOT_AVAILABLEअभी बहुत ज़्यादा रिक्वेस्ट हैं, इसलिए टास्क स्वीकार नहीं हो सका। कुछ सेकंड में फिर से कोशिश करें; कोई चार्ज नहीं लगा।
ERROR_TASK_NOT_SUPPORTEDटास्क type अनजान है या बंद है। type का नाम जांचें।
ERROR_BAD_PARAMETERSकोई ज़रूरी फील्ड नहीं है या उसका फॉर्मेट गलत है।
ERROR_PAGEURLwebsiteURL या pageurl नहीं है, या पूरा http(s) एड्रेस नहीं है।
ERROR_GOOGLEKEYin.php reCAPTCHA रिक्वेस्ट में googlekey नहीं है।
ERROR_BAD_PROXYProxy टास्क के लिए proxyAddress और proxyPort ज़रूरी हैं।
ERROR_ZERO_CAPTCHA_FILESIZEइमेज नहीं है या बहुत छोटी है।
ERROR_TOO_BIG_CAPTCHA_FILESIZEइमेज 100 KB से बड़ी है।
ERROR_IMAGE_TYPE_NOT_SUPPORTEDइमेज सही base64 नहीं है।
ERROR_WRONG_CAPTCHA_IDआपके अकाउंट में इस id का कोई टास्क नहीं है।
CAPCHA_NOT_READYसिर्फ in.php और res.php: टास्क अभी चल रहा है। 5 सेकंड बाद फिर चेक करें।
ERROR_CAPTCHA_UNSOLVABLEटास्क समय पर हल नहीं हो सका। उसका चार्ज आपके बैलेंस में वापस आ गया है।
ERROR_TOO_MANY_REQUESTSबहुत ज़्यादा रिक्वेस्ट। नतीजा चेक करने की रफ्तार घटाकर हर 5 सेकंड में एक बार करें।
ERROR_IP_NOT_ALLOWEDरिक्वेस्ट ऐसे IP से आई जो अकाउंट की allow list में नहीं है। अकाउंट पेज पर IP जोड़ें।