API Documentation

API को अपने एप्लिकेशन में इंटीग्रेट करने के लिए उपलब्ध एंडपॉइंट्स, रिक्वेस्ट फॉर्मेट, पैरामीटर्स, और उदाहरण रिस्पॉन्स के लिए संदर्भ।

यह documentation उन developers के लिए है जो CapSkip को सीधे अपनी scripts, applications, या automation systems में इंटीग्रेट करना चाहते हैं। third party सॉफ़्टवेयर के उपयोगकर्ताओं को setup निर्देशों के लिए Tutorials अनुभाग का पालन करना चाहिए।

CapSkip व्यापक रूप से इस्तेमाल होने वाली कैप्चा हल करने वाली सेवाओं के APIs को एमुलेट करता है, जिससे यह बिना किसी बदलाव के कम्पैटिबल थर्ड-पार्टी सॉफ़्टवेयर से कनेक्ट हो पाता है। इंटीग्रेशन के लिए आमतौर पर सिर्फ़ CapSkip चलाना ही ज़रूरी होता है।

डॉक्यूमेंटेशन बताता है कि requests कैसे सबमिट करें और results कैसे प्राप्त करें। CapSkip कई API families को सपोर्ट करता है, जिनमें 2Captcha स्टाइल API (in.php / res.php), AntiCaptcha, CapMonster और CapSolver द्वारा उपयोग किया जाने वाला JSON createTask / getTaskResult API, और DeathByCaptcha REST API शामिल हैं। एक ही family की सेवाएँ समान endpoints, request और response format साझा करती हैं। प्रत्येक सेवा के लिए केवल base URL (host और port) अलग होता है।

API familyसेवाएँ
2captcha-शैली2captcha.com, rucaptcha.com, solvecaptcha.com, captchas.io
JSON (createTask / getTaskResult)anti-captcha.com, capmonster.cloud, capsolver.com
DeathByCaptchadeathbycaptcha.com

Image CAPTCHA

एक सामान्य कैप्चा एक ऐसी image है जिसमें विकृत पर human-readable text होता है। इसे हल करने के लिए, उपयोगकर्ता को image में दिखाया गया text टाइप करना होता है।

किसी सामान्य कैप्चा को हल करने के लिए, API endpoint को HTTP POST request के ज़रिए image submit करें। configured local address और port का उपयोग करके request सीधे अपने CapSkip instance को भेजें, उदाहरण के लिए: http://127.0.0.1:PORT/in.php

CapSkip multipart/form-data या Base64-encoded format में images स्वीकार करता है।

Multipart sample form

<form method="post" action="http://127.0.0.1:PORT/in.php" enctype="multipart/form-data">
<input type="hidden" name="method" value="post">
Your key:
<input type="text" name="key" value="YOUR_APIKEY">
The CAPTCHA file:
<input type="file" name="file">
<input type="submit" value="Upload and get the ID">
</form>

YOUR_APIKEY अगर CapSkip में API key validation सक्षम है तो आपकी API key को दर्शाता है। अगर API key validation अक्षम है, तो कोई भी string वैल्यू स्वीकार की जाएगी।

Base64 नमूना form

<form method="post" action="http://127.0.0.1:PORT/in.php">
<input type="hidden" name="method" value="base64">
Your key:
<input type="text" name="key" value="YOUR_APIKEY">
The CAPTCHA file body in base64 format:
<textarea name="body">BASE64_FILE</textarea>
<input type="submit" value="Upload and get the ID">
</form>

YOUR_APIKEY अगर CapSkip में API key validation सक्षम है तो आपकी API key को दर्शाता है। अगर API key validation अक्षम है, तो कोई भी string वैल्यू स्वीकार की जाएगी।

BASE64_FILE Base64-encoded image डेटा है।

POST Request Parameters की सूची
POST parameterTypeआवश्यकविवरण
keyस्ट्रिंगहां आपकी CapSkip API key।
methodस्ट्रिंगहां post – इमेज को multipart/form-data का इस्तेमाल करके सबमिट करें
base64 – इमेज को एक Base64-एन्कोडेड स्ट्रिंग के रूप में सबमिट करें
fileफ़ाइलहाँ* कैप्चा image file।
* method=post होने पर आवश्यक।
bodyस्ट्रिंगहाँ* Base64-encoded कैप्चा image data।
* method=base64 होने पर आवश्यक।
jsonपूर्णांक
डिफ़ॉल्ट: 0
नहीं 0 – रिस्पॉन्स प्लेन टेक्स्ट के रूप में लौटाया जाता है
1 – response JSON format में लौटाया जाता है

कैप्चा सबमिट करें (multipart file upload):

curl -X POST -F "key=YOUR_API_KEY" -F "method=post" -F "[email protected]" http://127.0.0.1:8080/in.php

कैप्चा सबमिट करें (base64 encoded):

curl -X POST -d "key=YOUR_API_KEY&method=base64&body=BASE64_IMAGE_DATA" http://127.0.0.1:8080/in.php

request सबमिट करने के बाद, अगर सब कुछ सही है, तो CapSkip कैप्चा ID को plain text के रूप में लौटाएगा: OK|12345

अगर json=1 parameter इस्तेमाल होता है, तो रिस्पॉन्स JSON फ़ॉर्मैट में लौटाया जाएगा:

{
"status":1,
"request":"12345"
}

1 सेकंड प्रतीक्षा करें, फिर result endpoint पर एक HTTP GET request भेजें (/res.php) लौटाई गई कैप्चा ID के साथ।

अगर कैप्चा हल हो गया है, तो CapSkip परिणाम को plain text के रूप में लौटाएगा: OK|TEXT

अगर json=1 निर्दिष्ट किया गया था, तो रिस्पॉन्स होगा:

{
"status":1,
"request":"TEXT"
}

अगर कैप्चा अभी तक हल नहीं हुआ है, तो CapSkip यह लौटाएगा: CAPCHA_NOT_READY

इस मामले में, 1 सेकंड रुकें और अंतिम रिज़ल्ट मिलने तक रिक्वेस्ट दोहराएँ। अगर CapSkip खाली response body लौटाता है, तो रिज़ल्ट पहले ही रिट्रीव किया जा चुका है या ID मौजूद नहीं है। हर रिज़ल्ट सिर्फ़ एक बार पढ़ा जा सकता है।

GET request parameters की सूची
GET पैरामीटरTypeआवश्यकविवरण
keyस्ट्रिंगहां आपकी CapSkip API key।
actionस्ट्रिंगहां get – सबमिट किए गए कैप्चा के लिए answer प्राप्त करें।
idपूर्णांकहां इसके द्वारा लौटाया गया कैप्चा ID in.php.
jsonपूर्णांक
डिफ़ॉल्ट: 0
नहीं 0 – रिस्पॉन्स प्लेन टेक्स्ट के रूप में लौटाया जाता है
1 – response JSON format में लौटाया जाता है
curl "http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=CAPTCHA_ID"

recaptcha v2 solver  reCAPTCHA V2

reCAPTCHA v2, जिसे “I’m not a robot” reCAPTCHA के नाम से भी जाना जाता है, एक व्यापक रूप से इस्तेमाल होने वाला कैप्चा प्रकार है जो इस तरह दिखता है:
recaptcha v2

reCAPTCHA v2 हल करने के लिए, भेजें the googlekey और pageurl पैरामीटर्स के साथ method=userrecaptcha और आपकी CapSkip API key।

आप प्राप्त कर सकते हैं googlekey निम्नलिखित में से किसी एक method का उपयोग करके:

reCAPTCHA widget पर right-click करें और चुनें Inspect। एक ऐसा URL ढूँढें जो इससे शुरू हो:

www.google.com/recaptcha/api2/anchor

इसका value कॉपी करें k उस URL से parameter। वैकल्पिक रूप से, इसे ढूंढें data-sitekey पेज source में attribute और उसकी value कॉपी करें।

CapSkip sitekey

जैसे ही आपके पास site key हो, एक HTTP GET या POST request सबमिट करें http://127.0.0.1:PORT/in.php

POST Request Parameters की सूची
पैरामीटरTypeआवश्यकविवरण
keyस्ट्रिंगहां आपकी CapSkip API key।
methodस्ट्रिंगहां userrecaptcha – एक reCAPTCHA v2 request निर्दिष्ट करता है।
googlekeyस्ट्रिंगहां इसका value k या data-sitekey टारगेट पेज पर पाया गया पैरामीटर।
pageurlस्ट्रिंगहां उस पेज का पूरा URL जहाँ reCAPTCHA स्थित है।
enterpriseपूर्णांक
डिफ़ॉल्ट: 0
नहीं 1 – reCAPTCHA Enterprise v2 को दर्शाता है।
0 – मानक reCAPTCHA v2।
invisibleपूर्णांक
डिफ़ॉल्ट: 0
नहीं 1 – Invisible reCAPTCHA दर्शाता है।
0 – standard checkbox reCAPTCHA।
data-sस्ट्रिंगनहीं का मान data-s page पर मिलने वाला parameter। Google Search और कुछ Google services पर लागू।
jsonपूर्णांक
डिफ़ॉल्ट: 0
नहीं 0 – response सादे टेक्स्ट के रूप में लौटाया जाता है।
1 – response को JSON format में लौटाया जाता है।
proxyस्ट्रिंगनहींप्रॉक्सी पता। IP authentication के लिए format: IP:PORT (उदाहरण: 123.123.123.123:3128). login/password authentication के लिए format: login:password@IP:PORT
proxytypeस्ट्रिंगनहींप्रॉक्सी का प्रकार। समर्थित values: HTTP, HTTPS, SOCKS5, SOCKS5H। डिफ़ॉल्ट: HTTP जब proxy प्रदान किया गया है पर proxytype छोड़ दिया जाता है।

reCAPTCHA v2 सबमिट करें (Standard):

curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com" http://127.0.0.1:8080/in.php

reCAPTCHA v2 सबमिट करें (Invisible):

curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com&invisible=1" http://127.0.0.1:8080/in.php

Enterprise reCAPTCHA v2 सबमिट करें:

curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com&enterprise=1" http://127.0.0.1:8080/in.php

Enterprise reCAPTCHA v2 (Invisible) submit करें:

curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com&enterprise=1&invisible=1" http://127.0.0.1:8080/in.php

अगर request सफल होती है, तो CapSkip कैप्चा ID को plain text के रूप में लौटाएगा: OK|12345

अगर json=1 पैरामीटर का उपयोग किया गया था, तो response को JSON format में लौटाया जाएगा:

{
"status":1,
"request":"12345"
}

अगर request फेल होती है, तो CapSkip एक error code लौटाएगा।

15 से 20 सेकंड प्रतीक्षा करें, फिर हल प्राप्त करने के लिए result endpoint पर एक HTTP GET request भेजें: http://127.0.0.1:PORT/res.php

GET request parameters की सूची
GET पैरामीटरTypeआवश्यकविवरण
keyस्ट्रिंगहां आपकी CapSkip API key।
actionस्ट्रिंगहां get – सबमिट किए गए कैप्चा के लिए answer प्राप्त करें।
idपूर्णांकहां इसके द्वारा लौटाया गया कैप्चा ID in.php.
jsonपूर्णांक
डिफ़ॉल्ट: 0
नहीं 0 – रिस्पॉन्स प्लेन टेक्स्ट के रूप में लौटाया जाता है
1 – response JSON format में लौटाया जाता है
curl "http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=CAPTCHA_ID"

अगर कैप्चा हल हो गया है, तो CapSkip plain text या JSON में जवाब देगा और answer token लौटाएगा। token नीचे दिए गए जैसा दिखेगा:

03AHJ_Vuve5Asa4koK3KSMyUkCq0vUFCR5Im4CwB7PzO3dCxIo11i53epEraq-uBO5mVm2XRikL8iKOWr0aG50sCuej9bXx5qcviUGSm4iK4NC_Q88flavWhaTXSh0VxoihBwBjXxwXuJZ-WGN5Sy4dtUl2wbpMqAj8Zwup1vyCaQJWFvRjYGWJ_TQBKTXNB5CCOgncqLetmJ6B6Cos7qoQyaB8ZzBOTGf5KSP6e-K9niYs772f53Oof6aJeSUDNjiKG9gN3FTrdwKwdnAwEYX-F37sI_vLB1Zs8NQo0PObHYy0b0sf7WSLkzzcIgW9GR0FwcCCm1P8lB-50GQHPEBJUHNnhJyDzwRoRAkVzrf7UkV8wKCdTwrrWqiYDgbrzURfHc2ESsp020MicJTasSiXmNRgryt-gf50q5BMkiRH7osm4DoUgsjc_XyQiEmQmxl5sqZP7aKsaE-EM00x59XsPzD3m3YI6SRCFRUevSyumBd7KmXE8VuzIO9lgnnbka4-eZynZa6vbB9cO3QjLH0xSG3-egcplD1uLGh79wC34RF49Ui3eHwua4S9XHpH6YBe7gXzz6_mv-o-fxrOuphwfrtwvvi2FGfpTexWvxhqWICMFTTjFBCEGEgj7_IFWEKirXW2RTZCVF0Gid7EtIsoEeZkPbrcUISGmgtiJkJ_KojuKwImF0G0CsTlxYTOU2sPsd5o1JDt65wGniQR2IZufnPbbK76Yh_KI2DY4cUxMfcb2fAXcFMc9dcpHg6f9wBXhUtFYTu6pi5LhhGuhpkiGcv6vWYNxMrpWJW_pV7q8mPilwkAP-zw5MJxkgijl2wDMpM-UUQ_k37FVtf-ndbQAIPG7S469doZMmb5IZYgvcB4ojqCW3Vz6Q

अगर कैप्चा अभी तक हल नहीं हुआ है, तो CapSkip लौटाएगा CAPCHA_NOT_READY। इस स्थिति में, 5 सेकंड प्रतीक्षा करें और request दोहराएँ। अगर CapSkip एक खाली response body लौटाता है, तो या तो result पहले ही प्राप्त किया जा चुका है या ID मौजूद नहीं है। प्रत्येक result को केवल एक बार पढ़ा जा सकता है।

इस ID वाले element को ढूंढें g-recaptcha-response और इसे हटाकर दृश्यमान बनाएँ display: none स्टाइल।

g recaptcha response CapSkip

कृपया ध्यान दें: कुछ मामलों में, पेज की सामग्री गतिशील रूप से जेनरेट होती है, और g-recaptcha-response element may not appear in the static HTML source. In such situations, inspect the page structure using your browser’s developer tools to locate the dynamically generated element.


एक विकल्प के रूप में, आप JavaScript का उपयोग करके इसका मान सेट कर सकते हैं g-recaptcha-response field सीधे:

document.getElementById("g-recaptcha-response").innerHTML="TOKEN";

पेज पर एक इनपुट फ़ील्ड दिखाई देगा। उत्तर टोकन को उस फ़ील्ड में पेस्ट करें और फॉर्म सबमिट करें।

recaptcha v2 solver  reCAPTCHA V2 Callback

कुछ मामलों में, कोई submit button नहीं होता और इसके बजाय एक callback function इस्तेमाल होता है। reCAPTCHA हल होने पर callback function अपने आप execute हो जाता है।

POST और GET request parameters की सूची यहाँ उपलब्ध है: reCAPTCHA V2 POST और GET request पैरामीटर

callback function आम तौर पर इसमें परिभाषित होता है data-callback reCAPTCHA widget का attribute, उदाहरण के लिए:

data-callback="myCallbackFunction"

अन्य मामलों में, callback फंक्शन को इस रूप में परिभाषित किया जाता है callback इसका parameter the grecaptcha.render() function, उदाहरण के लिए:

grecaptcha.render('example', {
'sitekey' : 'someSitekey',
'callback' : myCallbackFunction,
'theme' : 'dark'
});

callback फ़ंक्शन ढूंढने का एक और तरीका है browser का JavaScript console खोलना और reCAPTCHA configuration object का निरीक्षण करना:

___grecaptcha_cfg.clients[0].aa.l.callback

ध्यान दें कि aa.l property अलग हो सकती है, और पेज पर कई reCAPTCHA clients हो सकते हैं। ऐसे मामलों में, आपको यह भी inspect करना चाहिए clients[1], clients[2], और सही configuration object खोजने के लिए अन्य entries।

वैकल्पिक रूप से, आप reCAPTCHA parameters अपने आप निकालने के लिए निम्नलिखित script का उपयोग कर सकते हैं:

function findRecaptchaClients() {
if (typeof (___grecaptcha_cfg) !== 'undefined') {
return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => {
const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' };
const objects = Object.entries(client).filter(([_, value]) => value && typeof value === 'object');objects.forEach(([toplevelKey, toplevel]) => {
const found = Object.entries(toplevel).find(([_, value]) => (
value && typeof value === 'object' && 'sitekey' in value && 'size' in value
));
if (typeof toplevel === 'object' && toplevel instanceof HTMLElement && toplevel['tagName'] === 'DIV'){
data.pageurl = toplevel.baseURI;
}
if (found) {
const [sublevelKey, sublevel] = found;data.sitekey = sublevel.sitekey;
const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback';
const callback = sublevel[callbackKey];
if (!callback) {
data.callback = null;
data.function = null;
} else {
data.function = callback;
const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join('');
data.callback = `___grecaptcha_cfg.clients${keys}`;
}
}
});
return data;
});
}
return [];
}

अंत में, callback function को call करें:

myCallbackFunction();

या वैकल्पिक रूप से:

___grecaptcha_cfg.clients[0].aa.l.callback();

कुछ मामलों में, callback फंक्शन को एक आर्गुमेंट की आवश्यकता होती है। अधिकांश स्थितियों में, आपको हल किए गए टोकन को उस आर्गुमेंट के रूप में पास करना चाहिए। उदाहरण के लिए:

myCallbackFunction('TOKEN');

recaptcha v2 solver  reCAPTCHA V2 Invisible

reCAPTCHA v2 में एक Invisible mode भी होता है। आप यहाँ एक उदाहरण देख सकते हैं:

https://www.google.com/recaptcha/api2/demo?invisible=true

Invisible reCAPTCHA “I’m not a robot” checkbox नहीं दिखाता। इसके बजाय, यह आमतौर पर किसी बटन से जुड़ा होता है या पेज लोड या यूज़र इंटरैक्शन पर अपने आप ट्रिगर होता है, जैसे किसी बटन पर क्लिक करना या फॉर्म सबमिट करना।

आंतरिक रूप से, Invisible reCAPTCHA widget एक छिपे हुए के अंदर render होता है <div> दृश्यमान viewport के बाहर स्थित element, जो इसे उपयोगकर्ता के लिए अदृश्य बना देता है।

उपयोगकर्ता के cookies और risk score के आधार पर, reCAPTCHA बिना कोई challenge दिखाए अपने आप पास हो सकता है। अन्यथा, एक standard image challenge दिखाई देगा।

अधिकांश मामलों में, चैलेंज पूरा होने पर एक callback फंक्शन एक्ज़ीक्यूट होता है। अधिक विवरण के लिए ऊपर callback सेक्शन देखें।

POST और GET request parameters की सूची यहाँ उपलब्ध है: reCAPTCHA V2 POST और GET request पैरामीटर

कैसे तय करें कि reCAPTCHA Invisible है या नहीं?

आप निम्नलिखित संकेतकों में से किसी एक का उपयोग करके Invisible reCAPTCHA पहचान सकते हैं:

  • “I’m not a robot” checkbox दिखता नहीं है, पर उपयोगकर्ता के इंटरैक्शन के बाद एक challenge दिखता है।

  • reCAPTCHA iframe URL में parameter होता है size=invisible.

  • reCAPTCHA कॉन्फ़िगरेशन ऑब्जेक्ट में शामिल है एक size प्रॉपर्टी इस पर सेट invisible, उदाहरण के लिए:
    ___grecaptcha_cfg.clients[0].aa.l.size === "invisible"

API के ज़रिए Invisible reCAPTCHA हल करते समय, यह पैरामीटर शामिल करें: invisible=1

Browser में Invisible reCAPTCHA को कैसे संभालें?
तरीक़ा 1: JavaScript का उपयोग

इसका मान सेट करें g-recaptcha-response field को CapSkip द्वारा लौटाए गए token पर:

document.getElementById("g-recaptcha-response").innerHTML="TOKEN";

token सेट करने के बाद, वह action निष्पादित करें जो आमतौर पर सफल वेरिफ़िकेशन के बाद होता है।

अधिकांश मामलों में, इसका मतलब है एक फॉर्म सबमिट करना। आपको सही फॉर्म को उसके आधार पर पहचानना होता है id, name, या कोई अन्य attribute, और फिर submission को ट्रिगर करें। यहाँ कुछ उदाहरण हैं:

document.getElementById("recaptcha-demo-form").submit(); //by id "recaptcha-demo-form"
document.getElementsByName("myFormName")[0].submit(); //by element name "myFormName"
document.getElementsByClassName("example").submit(); //by class name "example"

कुछ मामलों में, reCAPTCHA हल होने पर एक callback फ़ंक्शन अपने आप निष्पादित होता है।

callback function आम तौर पर इसमें परिभाषित होता है data-callback reCAPTCHA widget का attribute, उदाहरण के लिए:

data-callback="myCallbackFunction"

अन्य मामलों में, callback फंक्शन को इस रूप में परिभाषित किया जाता है callback इसका parameter the grecaptcha.render() function, उदाहरण के लिए:

grecaptcha.render('example', {
'sitekey' : 'someSitekey',
'callback' : myCallbackFunction,
'theme' : 'dark'
});

आपको बस उस फंक्शन को कॉल करना है:

myCallbackFunction();
विधि 2: HTML को संशोधित करना

हटाएँ the <div> वह element जो page body से reCAPTCHA widget रखता है।

<div style="visibility: hidden; position: absolute; width:100%; top: -10000px; left: 0px; right: 0px; transition: visibility 0s linear 0.3s, opacity 0.3s linear; opacity: 0;">
<div style="width: 100%; height: 100%; position: fixed; top: 0px; left: 0px; z-index: 2000000000; background-color: #fff; opacity: 0.5;  filter: alpha(opacity=50)"></div>
<div style="margin: 0 auto; top: 0px; left: 0px; right: 0px; position: absolute; border: 1px solid #ccc; z-index: 2000000000; background-color: #fff; overflow: hidden;">
<iframe src="https://www.google.com/recaptcha/api2/bframe?hl=en&v=r20170213115309&k=6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs#zglq3yifgkmj"
title="recaptcha challenge"
style="width: 100%; height: 100%;"
scrolling="no"
name="zglq3yifgkmj"
frameborder="0"></iframe>
</div>
</div>

पेज से पूरा reCAPTCHA block हटा दें।

<div class="">
<!-- BEGIN: ReCAPTCHA implementation example. -->
<div
id="recaptcha-demo"
class="g-recaptcha"
data-sitekey="6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs"
data-callback="onSuccess"
data-bind="recaptcha-demo-submit"
>
<div
class="grecaptcha-badge"
style="width: 256px; height: 60px; transition: right 0.3s ease 0s; position: fixed; bottom: 14px; right: -186px; box-shadow: 0px 0px 5px gray;"
>
<div class="grecaptcha-logo">
<iframe
src="https://www.google.com/recaptcha/api2/anchor?k=6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs&co=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbTo0NDM.&hl=en&v=r20170213115309&size=invisible&cb=uror1hlow5a"
title="recaptcha widget"
scrolling="no"
name="undefined"
width="256"
height="60"
frameborder="0"
></iframe>
</div>
<div class="grecaptcha-error"></div>
<textarea
id="g-recaptcha-response"
name="g-recaptcha-response"
class="g-recaptcha-response"
style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none;  display: none; "
></textarea>
</div>
</div>
<script>
var onSuccess = function (response) {
var errorDivs = document.getElementsByClassName('recaptcha-error');
if (errorDivs.length) {
errorDivs[0].className = '';
}
var errorMsgs = document.getElementsByClassName('recaptcha-error-message');
if (errorMsgs.length) {
errorMsgs[0].parentNode.removeChild(errorMsgs[0]);
}
document.getElementById('recaptcha-demo-form').submit();
};
</script>
<!-- Optional noscript fallback. --><!-- END: ReCAPTCHA implementation example. -->
</div>

हटाए गए ब्लॉक के स्थान पर निम्नलिखित कोड डालें:

<input type="submit" /> <textarea name="g-recaptcha-response">%g-recaptcha-response%</textarea>

%g-recaptcha-response% CapSkip से प्राप्त उत्तर token को दर्शाता है।

block को बदलने के बाद, एक “Submit query” button दिखाई देगा। form को इसके साथ सबमिट करने के लिए button पर क्लिक करें g-recaptcha-response मान और अन्य सभी आवश्यक फॉर्म डेटा वेबसाइट को।

recaptcha v2 solver  reCAPTCHA V3

reCAPTCHA v3 Google द्वारा विकसित एक आधुनिक कैप्चा तंत्र है। यह कोई दिखने वाला challenge पेश नहीं करता और किसी user interaction की ज़रूरत नहीं होती। इसके बजाय, यह इस संभावना के आधार पर एक score देता है कि interaction इंसानी है।

तकनीकी रूप से, reCAPTCHA v3, reCAPTCHA v2 के समान है। वेबसाइट को reCAPTCHA API से एक token प्राप्त होता है, जिसे फिर एक POST request में लक्ष्य सर्वर पर भेजा जाता है और reCAPTCHA API के माध्यम से सत्यापित किया जाता है।

मुख्य अंतर यह है कि reCAPTCHA v3 कोई दृश्यमान challenge नहीं दिखाता। इसके बजाय, यह एक रेटिंग लौटाता है जो अनुमान लगाती है कि उपयोगकर्ता इंसान है या बॉट। इस रेटिंग को कहते हैं score और 0.0 से 1.0 तक होता है। स्कोर वेबसाइट को भेजा जाता है, जो फिर उस वैल्यू के आधार पर तय करती है कि रिक्वेस्ट को कैसे संभालना है।

एक अतिरिक्त पैरामीटर भी है जिसे कहते हैं action, जो वेबसाइट को विभिन्न उपयोगकर्ता इंटरैक्शन के बीच अंतर करने की अनुमति देता है। token को सत्यापित करने के बाद, reCAPTCHA API request से जुड़े action name को लौटाता है।

CapSkip का उपयोग करके reCAPTCHA v3 कैसे हल करें?

पहले, पुष्टि करें कि टारगेट वेबसाइट reCAPTCHA v3 इस्तेमाल कर रही है।

reCAPTCHA v3 के संकेतकों में शामिल हैं:

  • कोई दिखने वाला कैप्चा या image challenge नहीं

  • The api.js script इसके साथ लोड होती है render=SITEKEY पैरामीटर, उदाहरण के लिए:
    https://www.google.com/recaptcha/api.js?render=SITEKEY

  • The ___grecaptcha_cfg.clients array में एक उच्च numeric index वाली entry होती है, जैसे कि clients[100000]

reCAPTCHA v3 हल करने के लिए, निम्नलिखित parameters की पहचान करें:

  1. sitekey
    यह इसमें पाया जा सकता है render इसका parameter the api.js स्क्रिप्ट URL। यह एक iframe URL में भी दिखाई दे सकता है, उस JavaScript कोड के भीतर जो कॉल करता है grecaptcha.execute(), या इसके अंदर ___grecaptcha_cfg configuration object।
  2. action
    इसे JavaScript code में इन calls के निरीक्षण द्वारा खोजें grecaptcha.execute(), उदाहरण के लिए:
    grecaptcha.execute('SITEKEY', {action: 'do_something'})
    कुछ मामलों में, action ढूँढने के लिए page द्वारा load की गई कई JavaScript files की समीक्षा करनी पड़ती है। अगर आप action value तय नहीं कर पाते, तो आप default value इस्तेमाल कर सकते हैं "verify".
  3. pageurl
    उस page का पूरा URL जहां reCAPTCHA v3 लागू किया गया है।
स्कोर को समझना

स्वीकार्य स्कोर थ्रेशोल्ड वेबसाइट के अनुसार अलग-अलग होता है और केवल टेस्टिंग के माध्यम से निर्धारित किया जा सकता है। स्कोर की रेंज:

  • 0.0 → संभवतः बॉट

  • 1.0 → संभवतः इंसान

अधिकांश वेबसाइटें 0.3 और 0.7 के बीच thresholds इस्तेमाल करती हैं, क्योंकि वैध उपयोगकर्ताओं को भी कम scores मिल सकते हैं।

आप अपना इच्छित threshold इसका इस्तेमाल करके पास कर सकते हैं min_score parameter, पर अंतिम स्कोर हमेशा वेरिफ़िकेशन के समय Google द्वारा तय किया जाता है और सॉल्वर द्वारा इसकी गारंटी नहीं दी जा सकती।

POST Request Parameters की सूची
पैरामीटरTypeआवश्यकविवरण
keyस्ट्रिंगहां आपकी CapSkip API key।
methodस्ट्रिंगहां userrecaptcha – एक reCAPTCHA request निर्दिष्ट करता है।
versionस्ट्रिंगहां v3 – दर्शाता है कि request reCAPTCHA v3 के लिए है।
googlekeyस्ट्रिंगहां इसका value data-sitekey टारगेट पेज पर पाया गया पैरामीटर।
pageurlस्ट्रिंगहां उस पेज का पूरा URL जहाँ reCAPTCHA स्थित है।
enterpriseपूर्णांक
डिफ़ॉल्ट: 0
नहीं 1 – reCAPTCHA Enterprise v3 दर्शाता है।
0 – मानक reCAPTCHA v3।
actionस्ट्रिंग
Default: verify
नहीं इसका value action पेज पर परिभाषित पैरामीटर।
min_scoreFloatनहीं token के लिए अनुरोधित न्यूनतम score। जब आपका server token सत्यापित करता है तब Google अंतिम score असाइन करता है, इसलिए यह वैल्यू एक संकेत है और इसकी गारंटी नहीं है। Google बाद में जो भी score असाइन करे उससे बेपरवाह, CapSkip जो token हासिल करता है वह लौटा देता है।
jsonपूर्णांक
डिफ़ॉल्ट: 0
नहीं 0 – response सादे टेक्स्ट के रूप में लौटाया जाता है।
1 – response को JSON format में लौटाया जाता है।
proxyस्ट्रिंगनहींप्रॉक्सी पता। IP authentication के लिए format: IP:PORT (उदाहरण: 123.123.123.123:3128). login/password authentication के लिए format: login:password@IP:PORT
proxytypeस्ट्रिंगनहींप्रॉक्सी का प्रकार। समर्थित values: HTTP, HTTPS, SOCKS5, SOCKS5H। डिफ़ॉल्ट: HTTP जब proxy प्रदान किया गया है पर proxytype छोड़ दिया जाता है।

reCAPTCHA v3 सबमिट करें:

curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&version=v3&action=submit&min_score=0.7&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com" http://127.0.0.1:8080/in.php

Enterprise reCAPTCHA v3 सबमिट करें:

curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&version=v3&action=submit&min_score=0.7&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com&enterprise=1" http://127.0.0.1:8080/in.php

अगर request सफल होती है, तो CapSkip कैप्चा ID को plain text के रूप में लौटाएगा: OK|12345

अगर json=1 पैरामीटर निर्दिष्ट किया गया है, तो response को JSON format में लौटाया जाएगा:

{
"status":1,
"request":"12345"
}

अगर कोई error होता है, तो CapSkip एक error code लौटाएगा।

10 से 15 सेकंड प्रतीक्षा करें, फिर result endpoint पर एक HTTP GET request भेजें: http://127.0.0.1:PORT/res.php

अपनी request में लौटाई गई CAPTCHA ID दें। उपलब्ध parameters की पूरी सूची नीचे तालिका में दिखाई गई है।

अगर कैप्चा सफलतापूर्वक हल हो गया है, तो CapSkip नतीजा plain text या JSON format में लौटाएगा। लौटाई गई value नीचे दी गई जैसी एक verification token होती है:

03AHJ_Vuve5Asa4koK3KSMyUkCq0vUFCR5Im4CwB7PzO3dCxIo11i53epEraq-uBO5mVm2XRikL8iKOWr0aG50sCuej9bXx5qcviUGSm4iK4NC_Q88flavWhaTXSh0VxoihBwBjXxwXuJZ-WGN5Sy4dtUl2wbpMqAj8Zwup1vyCaQJWFvRjYGWJ_TQBKTXNB5CCOgncqLetmJ6B6Cos7qoQyaB8ZzBOTGf5KSP6e-K9niYs772f53Oof6aJeSUDNjiKG9gN3FTrdwKwdnAwEYX-F37sI_vLB1Zs8NQo0PObHYy0b0sf7WSLkzzcIgW9GR0FwcCCm1P8lB--gf50q5BMkiRH7osm4DoUgsjc_XyQiEmQmxl5sqZP7aKsaE-EM00x59XsPzD3m3YI6SRCFRUevSyumBd7KmXE8VuzIO9lgnnbka4-eZynZa6vbB9cO3QjLH0xSG3--o-fxrOuphwfrtwvvi2FGfpTexWvxhqWICMFTTjFBCEGEgj7_IFWEKirXW2RTZCVF0Gid7EtIsoEeZkPbrcUISGmgtiJkJ_KojuKwImF0G0CsTlxYTOU2sPsd5o1JDt65wGniQR2IZufnPbbK76Yh_KI2DY4cUxMfcb2fAXcFMc9dcpHg6f9wBXhUtFYTu6pi5LhhGuhpkiGcv6vWYNxMrpWJW_pV7q8mPilwkAP-zw5MJxkgijl2wDMpM-UUQ_k37FVtf-ndbQAIPG7S469doZMmb5IZYgvcB4ojqCW3Vz6Q

अगर कैप्चा अभी तक हल नहीं हुआ है, तो CapSkip लौटाएगा CAPCHA_NOT_READY। 5 सेकंड प्रतीक्षा करें और request दोहराएं। अगर CapSkip एक खाली response body लौटाता है, तो या तो नतीजा पहले ही retrieve किया जा चुका है या वह ID मौजूद नहीं है। हर नतीजा केवल एक बार पढ़ा जा सकता है।

GET request parameters की सूची
GET पैरामीटरTypeआवश्यकविवरण
keyस्ट्रिंगहां आपकी CapSkip API key।
actionस्ट्रिंगहां get – सबमिट किए गए कैप्चा के लिए answer प्राप्त करें।
idपूर्णांकहां इसके द्वारा लौटाया गया कैप्चा ID in.php.
jsonपूर्णांक
डिफ़ॉल्ट: 0
नहीं 0 – रिस्पॉन्स प्लेन टेक्स्ट के रूप में लौटाया जाता है
1 – response JSON format में लौटाया जाता है
curl "http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=CAPTCHA_ID"

CapSkip से token मिलने के बाद, आपको इसे सही तरीके से टारगेट वेबसाइट को सबमिट करना होगा। यह कैसे काम करता है इसे समझने का सबसे अच्छा तरीका है सामान्य उपयोगकर्ता की तरह वेरिफ़िकेशन पूरा करते समय भेजी गई रिक्वेस्ट्स को देखना। ज़्यादातर browsers developer tools देते हैं जिनमें एक Network tab जो आपको आउटगोइंग requests का निरीक्षण करने देता है।

ज़्यादातर मामलों में, token एक POST request के माध्यम से भेजा जाता है। parameter name हो सकता है g-recaptcha-response, reCAPTCHA v2 के समान, या कुछ ऐसा जैसे g-recaptcha-response-100000। कुछ कार्यान्वयनों में, एक अलग parameter name का उपयोग किया जा सकता है।

आपको network requests का निरीक्षण करके यह तय करना चाहिए कि token कैसे प्रसारित होता है और फिर उसके अनुसार अपनी request की संरचना करनी चाहिए।

recaptcha v2 solver  reCAPTCHA Enterprise

reCAPTCHA Enterprise, Google के reCAPTCHA सिस्टम का उन्नत संस्करण है। यह v2 और v3 दोनों मोड में काम कर सकता है और वेबसाइट एडमिनिस्ट्रेटर को अतिरिक्त नियंत्रण देता है, जिसमें यह आकलन और रिपोर्ट करने की क्षमता शामिल है कि कोई इंटरैक्शन इंसानी था या स्वचालित।

reCAPTCHA Enterprise कैसे हल करें?

पहला कदम यह निर्धारित करना है कि website reCAPTCHA के Enterprise संस्करण का उपयोग कर रही है या नहीं।

reCAPTCHA Enterprise के मुख्य संकेतकों में शामिल हैं:

  • पेज लोड होता है enterprise.js के बजाय api.js, उदाहरण के लिए:

    <script src="https://recaptcha.net/recaptcha/enterprise.js" async defer></script>

  • वेबसाइट का JavaScript कोड कॉल करता है grecaptcha.enterprise.METHOD के बजाय grecaptcha.METHOD

इसके बाद तय करें कि कौन सा implementation इस्तेमाल हो रहा है: v2, Invisible v2, या v3। इसे आम तौर पर यह विश्लेषण करके पहचाना जा सकता है कि widget कैसे render होता है और page पर कैसे व्यवहार करता है।

सही इम्प्लीमेंटेशन तय करने के लिए नीचे दिए flowchart का पालन करें। यह अधिकांश मामलों में लागू होता है।

recaptcha enterprise

कैप्चा parameters को उसी तरह पहचानें जैसा reCAPTCHA v2 या v3 के लिए बताया गया है।

v2 Enterprise implementations के लिए, कुछ अतिरिक्त वैकल्पिक data हो सकता है। ज़्यादातर मामलों में, यह एक custom string होता है जो में परिभाषित होता है s या data-s parameter। अगर मौजूद हो, तो इस मान को अपनी रिक्वेस्ट में इसका इस्तेमाल करते हुए शामिल करें data-s पैरामीटर।

POST और GET request parameters की सूची यहाँ उपलब्ध है: reCAPTCHA V2 POST और GET request पैरामीटर

v3 Enterprise कार्यान्वयनों के लिए, आपको इसकी भी ज़रूरत हो सकती है action value। इसे ढूँढने के लिए, website’s के JavaScript code का निरीक्षण करें और खोजें grecaptcha.enterprise.execute() कॉल। यह action पैरामीटर आमतौर पर इस फंक्शन के भीतर पास किया जाता है। ध्यान रखें कि action वैकल्पिक है और कुछ मामलों में undefined हो सकता है।

POST और GET request parameters की सूची यहाँ उपलब्ध है: reCAPTCHA V3 POST और GET request parameters

जब आप अपनी request सबमिट करते हैं /in.php endpoint, अतिरिक्त parameter शामिल करें: enterprise=1

उसके बाद, CapSkip API के साथ उसी तरह इंटरैक्ट करें जैसे reCAPTCHA v2 या v3 हल करते समय करते हैं। जब token लौट आता है, तो उसे टारगेट वेबसाइट को उसके इम्प्लीमेंटेशन के अनुसार सबमिट करें।

Cloudflare turnstile solving Cloudflare Turnstile

Cloudflare Turnstile, Cloudflare द्वारा विकसित एक आधुनिक कैप्चा विकल्प है। यह पारंपरिक विज़ुअल challenge पर निर्भर हुए बिना यह सत्यापित करता है कि विज़िटर इंसान है या नहीं। Turnstile एक स्टैंडअलोन विजेट के रूप में या किसी challenge पेज के हिस्से के रूप में दिख सकता है, और यह कम या बिना किसी यूज़र इंटरैक्शन के काम करता है।

दो आम Turnstile implementations हैं:

1. स्टैंडअलोन Turnstile Widget

एक standalone Turnstile widget सीधे किसी website page पर एम्बेड होता है, जो आमतौर पर किसी form को स्वचालित सबमिशन से बचाता है। इस मामले में:

  • इसे निकालें sitekey from the page.

  • इसे पूरे के साथ CapSkip API को भेजें pageurl.

  • token प्राप्त करने के बाद, इसे इसमें डालें the cf-turnstile-response फ़ील्ड।

  • कुछ इम्प्लीमेंटेशन में, टोकन को इसमें भी रखने की आवश्यकता हो सकती है g-recaptcha-response फ़ील्ड।

  • अगर में कोई callback परिभाषित है turnstile.render() कॉन्फ़िगरेशन, इसे लौटाए गए token के साथ निष्पादित करें।

फिर form को हमेशा की तरह submit करें।

2. Cloudflare Challenge Page पर Turnstile

यह तब होता है जब वेबसाइट Cloudflare के ज़रिए proxied होती है और access देने से पहले एक Turnstile challenge पेज प्रस्तुत करती है। इस स्थिति में, आपको निम्नलिखित parameters निकालने होंगे:

  • cData

  • chlPageData

  • action

ये मान आपकी API रिक्वेस्ट में शामिल होने ही चाहिए। इसके अलावा, आपको यह इस्तेमाल करना ही होगा User-Agent token सबमिट करते समय CapSkip API द्वारा लौटाया गया value।

आवश्यक Parameters कैसे निकालें?

आवश्यक parameters निकालने के लिए, आप override कर सकते हैं turnstile.render मेथड और उस पर कॉल होने पर पास किए गए आर्गुमेंट्स को इंटरसेप्ट करें। उदाहरण के लिए, निम्नलिखित JavaScript कोड को पेज में इंजेक्ट करें। पैरामीटर्स को सफलतापूर्वक कैप्चर करने के लिए स्क्रिप्ट को Turnstile विजेट लोड होने से पहले एक्ज़ीक्यूट किया जाना चाहिए।

const i = setInterval(()=>{
if (window.turnstile) {
clearInterval(i)
window.turnstile.render = (a,b) => {
let p = {
method: "turnstile",
key: "YOUR_API_KEY",
sitekey: b.sitekey,
pageurl: window.location.href,
data: b.cData,
pagedata: b.chlPageData,
action: b.action,
userAgent: navigator.userAgent,
json: 1
}
console.log(JSON.stringify(p))
window.tsCallback = b.callback
return 'foo'
}
}
},50)
POST Request Parameters की सूची
पैरामीटरTypeआवश्यकविवरण
keyस्ट्रिंगहां आपकी CapSkip API key।
methodस्ट्रिंगहां turnstile – एक Cloudflare Turnstile रिक्वेस्ट निर्दिष्ट करता है।
sitekeyस्ट्रिंगहां इसका value data-sitekey टारगेट पेज पर पाया गया पैरामीटर।
pageurlस्ट्रिंगहां उस page का पूरा URL जहाँ Turnstile challenge स्थित है।
actionस्ट्रिंगनहीं में परिभाषित वैकल्पिक action value data-action attribute या इसे पास किया गया turnstile.render().
dataस्ट्रिंगनहीं इसका मान cData पास किया गया turnstile.render() या इसमें परिभाषित data-cdata attribute।
pagedataस्ट्रिंगनहीं इसका मान chlPageData पास किया गया turnstile.render().
jsonपूर्णांक
डिफ़ॉल्ट: 0
नहीं 0 – response सादे टेक्स्ट के रूप में लौटाया जाता है।
1 – response को JSON format में लौटाया जाता है।
proxyस्ट्रिंगनहींप्रॉक्सी पता। IP authentication के लिए format: IP:PORT (उदाहरण: 123.123.123.123:3128). login/password authentication के लिए format: login:password@IP:PORT
proxytypeस्ट्रिंगनहींप्रॉक्सी का प्रकार। समर्थित values: HTTP, HTTPS, SOCKS5, SOCKS5H। डिफ़ॉल्ट: HTTP जब proxy प्रदान किया गया है पर proxytype छोड़ दिया जाता है।

Turnstile सबमिट करें (standalone):

curl -X POST -d "key=YOUR_API_KEY&method=turnstile&sitekey=0x4AAAAAAABUYP0XeMJF0xoy&pageurl=https://example.com" http://127.0.0.1:8080/in.php

Turnstile सबमिट करें (challenge – वैकल्पिक action, data, pagedata):

curl -X POST -d "key=YOUR_API_KEY&method=turnstile&sitekey=0x4AAAAAAABUYP0XeMJF0xoy&pageurl=https://example.com&action=managed&data=...&pagedata=..." http://127.0.0.1:8080/in.php

अगर request सफल होती है, तो CapSkip कैप्चा ID को plain text के रूप में लौटाएगा: OK|12345

अगर json=1 पैरामीटर निर्दिष्ट किया गया है, तो response को JSON format में लौटाया जाएगा:

{
"status":1,
"request":"12345"
}

अगर कोई error होता है, तो CapSkip एक error code लौटाएगा।

परिणाम प्राप्त करने के लिए लौटाई गई ID का उपयोग करें /res.php API का endpoint।

GET request parameters की सूची
GET पैरामीटरTypeआवश्यकविवरण
keyस्ट्रिंगहां आपकी CapSkip API key।
actionस्ट्रिंगहां get – सबमिट किए गए कैप्चा के लिए answer प्राप्त करें।
idपूर्णांकहां इसके द्वारा लौटाया गया कैप्चा ID in.php.
jsonपूर्णांक
डिफ़ॉल्ट: 0
नहीं 0 - response को plain text के रूप में लौटाया जाता है।
1 - response को JSON format में लौटाया जाता है, जिसमें शामिल है userAgent value।

Cloudflare Turnstile के लिए सॉल्वर एक विशिष्ट browser User-Agent का उपयोग करता है, और token सबमिट करते समय आपको वही User-Agent भेजना ज़रूरी है। इसके साथ json=1 response में शामिल है एक userAgent field। plain text मोड में, वही value यहाँ से पढ़ें X-Turnstile-User-Agent रिस्पॉन्स हेडर।

curl "http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=CAPTCHA_ID"

geetest v3 GeeTest v3

GeeTest v3 Slider, GeeTest द्वारा विकसित एक इंटरैक्टिव कैप्चा है। यह तेज़ और सहज सत्यापन अनुभव प्रदान करते हुए मनुष्यों को बॉट्स से अलग करने के लिए एक slider challenge के माध्यम से उपयोगकर्ताओं का सत्यापन करता है।

CapSkip से GeeTest v3 कैप्चा हल करने के लिए, आपको पहले target website से ज़रूरी कैप्चा parameters प्राप्त करने होंगे। ज़रूरी parameters ये हैं:

  • gt: Public website key (static)
  • challenge: Dynamic challenge value
  • api_server: GeeTest API सर्वर डोमेन (वैकल्पिक)

ये values आम तौर पर तब उपलब्ध होती हैं जब website GeeTest को इनिशियलाइज़ करती है।

महत्वपूर्ण: एक नया challenge वैल्यू हर हल request के लिए प्राप्त करनी होती है। एक बार जब कैप्चा पेज पर लोड हो जाता है, तो पिछला challenge अमान्य हो जाता है। आपको website’s के network requests का निरीक्षण करके उस request की पहचान करनी चाहिए जो एक नया generate करती है challenge value और CapSkip को हर हल request सबमिट करने से पहले वह request करें।

POST Request Parameters की सूची
पैरामीटरTypeआवश्यकविवरण
keyस्ट्रिंगहाँ*आपकी CapSkip API key। सिर्फ़ तब ज़रूरी जब API Key सत्यापन सक्षम है।
methodस्ट्रिंगहांहोना ही चाहिए geetest। निर्दिष्ट करता है कि आप एक GeeTest v3 कैप्चा सबमिट कर रहे हैं।
gtस्ट्रिंगहांThe gt टारगेट वेबसाइट से प्राप्त वैल्यू।
challengeस्ट्रिंगहांThe challenge लक्षित वेबसाइट से प्राप्त value। हर हल request के लिए एक नई value प्राप्त करनी होगी।
pageurlस्ट्रिंगहांGeeTest कैप्चा वाले पेज का पूरा URL।
api_serverस्ट्रिंगनहींलक्ष्य वेबसाइट द्वारा उपयोग किया जाने वाला GeeTest API server domain (उदाहरण के लिए api.geetest.com या api-na.geetest.com).
jsonपूर्णांक
डिफ़ॉल्ट: 0
नहीं0 response को plain text के रूप में लौटाता है। 1 response को JSON के रूप में लौटाता है।
proxyस्ट्रिंगनहींप्रॉक्सी पता। IP authentication के लिए format: IP:PORT (उदाहरण: 123.123.123.123:3128). login/password authentication के लिए format: login:password@IP:PORT.
proxytypeस्ट्रिंगनहींप्रॉक्सी का प्रकार। समर्थित values: HTTP, HTTPS, SOCKS5, SOCKS5H। डिफ़ॉल्ट: HTTP जब proxy प्रदान किया गया है पर proxytype छोड़ दिया जाता है।

अपने CapSkip API endpoint पर एक HTTP GET या POST request सबमिट करें (/in.php) के साथ method=geetest। पिछले चरण में प्राप्त आवश्यक GeeTest parameters को कैप्चा वाले पेज के पूर्ण URL के साथ शामिल करें।

curl -X POST \
-d "key=YOUR_API_KEY" \
-d "method=geetest" \
-d "gt=f1ab2cdefa3456789012345b6c78d90e" \
-d "challenge=12345678abc90123d45678ef90123a456b" \
-d "pageurl=https://www.example.com/" \
-d "api_server=api-na.geetest.com" \
http://127.0.0.1:8080/in.php

अगर सब कुछ सफल होता है, तो CapSkip कैप्चा ID को सादे text के रूप में लौटाएगा: OK|212

अगर json=1 पैरामीटर निर्दिष्ट किया गया है, तो response को JSON format में लौटाया जाएगा:

{
"status": 1,
"request": "212"
}

अन्यथा, CapSkip एक उपयुक्त error code लौटाएगा।

लगभग प्रतीक्षा करें 5 सेकंड, फिर एक HTTP GET request सबमिट करें res.php परिणाम प्राप्त करने के लिए एंडपॉइंट।

GET request parameters की सूची
पैरामीटरTypeआवश्यकविवरण
keyस्ट्रिंगहाँ*आपकी CapSkip API key। सिर्फ़ तब ज़रूरी जब API Key सत्यापन सक्षम है।
actionस्ट्रिंगहांनिर्दिष्ट करें get कैप्चा का हल प्राप्त करने के लिए।
idपूर्णांकहांइसके द्वारा लौटाई गई CAPTCHA ID in.php request।
jsonपूर्णांक
डिफ़ॉल्ट: 0
नहीं0 response को plain text के रूप में लौटाता है। 1 response को JSON के रूप में लौटाता है।
curl "http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=212&json=1"

अगर कैप्चा सफलतापूर्वक हल हो गया है, तो CapSkip समाधान को JSON format में लौटाएगा:

{
"status": 1,
"request": "{\"geetest_challenge\":\"1a2b3456cd67890e12345fab678901c2de\",\"geetest_validate\":\"09fe8d7c6ba54f32e1dcb0a9fedc8765\",\"geetest_seccode\":\"12fe3d4c56789ba01f2e345d6789c012|jordan\"}"
}

अगर कैप्चा अभी तक हल नहीं हुआ है, तो CapSkip लौटाएगा: CAPCHA_NOT_READY

5 सेकंड इंतज़ार करें और request दोहराएँ। अगर कोई त्रुटि होती है, तो CapSkip एक उपयुक्त error code लौटाएगा। टारगेट वेबसाइट को अपनी request सबमिट करते समय निम्नलिखित फ़ील्ड का इस्तेमाल करके CapSkip द्वारा लौटाए गए मानों का उपयोग करें:

  • geetest_challenge
  • geetest_validate
  • geetest_seccode

प्रॉक्सी का उपयोग

reCAPTCHA v2, v3, Invisible, Enterprise और Cloudflare के लिए, आप हर task के साथ एक प्रॉक्सी भेज सकते हैं। CapSkip उस कैप्चा को CapSkip application में कॉन्फ़िगर किए गए proxy pool का इस्तेमाल करने के बजाय उस प्रॉक्सी के ज़रिए हल करेगा।

यह तब उपयोगी है जब लक्षित वेबसाइट जाँचती है कि कैप्चा token उसी IP address से बना है जिससे आपकी अपनी requests आती हैं, उदाहरण के लिए, Cloudflare के पीछे की साइटें, सख़्त reCAPTCHA scoring, या geo-restricted पेज।

POST Request Parameters की सूची
पैरामीटरTypeआवश्यकविवरण
proxyस्ट्रिंगनहींप्रॉक्सी पता। IP authentication के लिए format: IP:PORT (उदाहरण: 123.123.123.123:3128). login/password authentication के लिए format: login:password@IP:PORT
proxytypeस्ट्रिंगनहींप्रॉक्सी का प्रकार। समर्थित values: HTTP, HTTPS, SOCKS5, SOCKS5H। डिफ़ॉल्ट: HTTP जब proxy प्रदान किया गया है पर proxytype छोड़ दिया जाता है।

एरर कोड

कोडअर्थ
ERROR_KEY_DOES_NOT_EXISTअमान्य API key।
ERROR_WRONG_USER_KEYAPI key गायब या खाली है।
ERROR_WRONG_METHODअमान्य HTTP method या action पैरामीटर।
ERROR_WRONG_ID_FORMATअमान्य कैप्चा ID फॉर्मैट।
ERROR_BAD_PARAMETERSआवश्यक parameters गायब या अमान्य हैं।
ERROR_UPLOADकोई image data नहीं दिया गया या अपलोड नाकाम रहा।
ERROR_INVALID_IMAGEअमान्य image format या दूषित image डेटा।
ERROR_INVALID_BASE64अमान्य base64 एन्कोडिंग।
ERROR_TOO_BIG_CAPTCHA_FILESIZEइमेज का साइज़ 600 kB से अधिक है या आयाम 1000px से अधिक हैं।
ERROR_CAPTCHA_UNSOLVABLEकैप्चा हल करने में विफल। एक नया task सबमिट करें और पुनः प्रयास करें।
ERROR_GOOGLEKEYInvalid googlekey पैरामीटर।
ERROR_PAGEURLInvalid pageurl पैरामीटर।
CAPCHA_NOT_READYकैप्चा अभी भी प्रोसेस हो रहा है। पोल करते रहें।
(खाली response)परिणाम पहले ही प्राप्त किया जा चुका है, या ID मौजूद नहीं है।