बुनियादी बातें
- 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"])
breakJSON मेथड
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 Enterprise
विवरणRecaptchaV2EnterpriseTaskProxylessRecaptchaV2EnterpriseTask
फील्ड
websiteURL (ज़रूरी)websiteKey (ज़रूरी)
Cloudflare Turnstile
विवरणTurnstileTaskProxylessTurnstileTask
फील्ड
websiteURL (ज़रूरी)websiteKey (ज़रूरी)
FunCaptcha (Arkose Labs)
विवरणFunCaptchaTaskProxylessFunCaptchaTask
फील्ड
websiteURL (ज़रूरी)websitePublicKey (ज़रूरी)
Friendly Captcha
विवरणFriendlyCaptchaTaskProxylessFriendlyCaptchaTask
फील्ड
websiteURL (ज़रूरी)websiteKey (ज़रूरी)
Lemin Cropped Captcha
विवरणLeminTaskProxylessLeminTask
फील्ड
websiteURL (ज़रूरी)captchaId (ज़रूरी)divId (ज़रूरी)
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 (ज़रूरी)
Yandex SmartCaptcha
विवरणYandexSmartCaptchaTaskProxylessYandexSmartCaptchaTask
फील्ड
websiteURL (ज़रूरी)websiteKey (ज़रूरी)
एरर
दोनों फॉर्मेट में एक ही नाम। एरर के साथ मना की गई रिक्वेस्ट पर कोई चार्ज नहीं लगता।
| एरर | इसका मतलब और क्या करें |
|---|---|
ERROR_KEY_DOES_NOT_EXIST | key गलत है। इसे अकाउंट पेज से फिर से कॉपी करें। (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_PAGEURL | websiteURL या pageurl नहीं है, या पूरा http(s) एड्रेस नहीं है। |
ERROR_GOOGLEKEY | in.php reCAPTCHA रिक्वेस्ट में googlekey नहीं है। |
ERROR_BAD_PROXY | Proxy टास्क के लिए 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 जोड़ें। |