Amazon Grid Captcha
अवलोकन
Amazon Grid Captcha एक ग्रिड चयन कैप्चा है: पेज एक प्रश्न/संकेत और टाइल्स की ग्रिड दिखाता है। सॉल्वर को वापस करना होगा कि कौन सी ग्रिड सेल प्रश्न से मेल खाती हैं (0-आधारित इंडेक्स, पंक्ति-प्रमुख: बाएं से दाएं, ऊपर से नीचे)।
task.image फ़ील्ड ग्रिड छवि को एकल Base64 स्ट्रिंग या 9 अलग 1x1 छवियों (Base64, | से अलग) के रूप में एनकोड कर सकता है

1. कार्य बनाएं
छवि सबमिशन प्रारूप
ग्रिड छवि 3x3
या 9 अलग 1x1 छवियां
अनुरोध
POST https://api.achicaptcha.com/createTask
पैरामीटर
| पैरामीटर नाम | डेटा प्रकार | आवश्यक? | विवरण |
|---|---|---|---|
clientKey | string | yes | API key |
task.type | string | yes | GridCaptcha |
task.subType | string | yes | amzn |
task.image | string | yes | Base64-एनकोडेड ग्रिड छवि |
task.other | string | yes | उपयोगकर्ता को दिखाया गया प्रश्न/संकेत पाठ (जैसे "the curtains") |
अनुरोध उदाहरण
POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GridCaptcha",
"subType": "amzn",
"image": "BASE64_GRID_IMAGE",
"other": "the curtains"
}
}प्रतिक्रिया
सफल होने पर, सर्वर वापस करता है errorId = 0 और taskId
{
"errorId": 0,
"taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}2. परिणाम प्राप्त करें
अनुरोध
POST https://api.achicaptcha.com/getTaskResult
पैरामीटर
| पैरामीटर नाम | डेटा प्रकार | आवश्यक? | विवरण |
|---|---|---|---|
clientKey | string | yes | API key |
taskId | string | yes | चरण (1) से प्राप्त TaskId |
अनुरोध उदाहरण
POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}प्रतिक्रिया
{
"errorId": 0,
"status": "ready",
"solution": {
"click": "0,2,5"
}
}solution.click ग्रिड में क्लिक करने के लिए 0-आधारित सेल इंडेक्स (पंक्ति-प्रमुख) की अल्पविराम-पृथक स्ट्रिंग है।
स्थिति विवरण
errorId = 0औरstatus = ready: सफलतापूर्वक हल,solution.clickमें सेल इंडेक्स पढ़ेंerrorId = 0औरstatus = processing: अभी हल हो रहा है, 2 सेकंड प्रतीक्षा करें और फिर जांचेंerrorId > 0: सिस्टम त्रुटि,errorCodeऔरerrorDescriptionजांचें
एकीकरण उदाहरण
import requests
import base64
import time
def solve_amzn(grid_path, question, api_key='YOUR_API_KEY'):
with open(grid_path, 'rb') as f:
grid_b64 = base64.b64encode(f.read()).decode()
# चरण 1: कार्य बनाएं
create_resp = requests.post(
'https://api.achicaptcha.com/createTask',
json={
'clientKey': api_key,
'task': {
'type': 'GridCaptcha',
'subType': 'amzn',
'image': grid_b64,
'other': question
}
}
)
result = create_resp.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
task_id = result['taskId']
# चरण 2: परिणाम की जांच करें
while True:
time.sleep(2)
poll_resp = requests.post(
'https://api.achicaptcha.com/getTaskResult',
json={'clientKey': api_key, 'taskId': task_id}
)
result = poll_resp.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
if result['status'] == 'ready':
return result['solution']['click'] # e.g. "0,2,5"
# उपयोग
indices = solve_amzn('grid.png', 'the curtains', 'YOUR_API_KEY')
print('क्लिक करने के लिए सेल:', indices)सामान्य त्रुटि कोड
| त्रुटि कोड | विवरण | नोट्स |
|---|---|---|
| 0 | success | सफलता |
| 1 | processing | प्रसंस्करण |
| 2 | missing required fields | आवश्यक फ़ील्ड गुम, पैरामीटर जांचें |
| 3 | task not supported | कार्य प्रकार समर्थित नहीं |
| 4 | task creation failed | कार्य निर्माण विफल |
| 5 | client key does not exist | API key मौजूद नहीं, कुंजी जांचें |
| 6 | insufficient account balance | अपर्याप्त खाता शेष, क्रेडिट जोड़ें |
| 7 | task failed, please create a new task | कार्य विफल, नया कार्य बनाएं |
| 8 | task ID does not exist | कार्य ID मौजूद नहीं |
सर्वोत्तम प्रथाएं
Amazon Grid Captcha के लिए Achicaptcha API का उपयोग करते समय सर्वोत्तम परिणामों के लिए इन सिद्धांतों का पालन करें:
1. छवि एनकोडिंग
- केवल ग्रिड छवि को एकल Base64 स्ट्रिंग के रूप में भेजें
data:image/...;base64,उपसर्ग न शामिल करें — केवल कच्चा Base64- भेजने से पहले सुनिश्चित करें कि छवि पूरी तरह लोड और एनकोड है
2. task.other पैरामीटर
- उपयोगकर्ता को दिखाया गया सटीक प्रश्न पाठ पास करें (जैसे
"the curtains") - यह फ़ील्ड आवश्यक है — इसे छोड़ने से गलत परिणाम आएंगे
- कैप्चा चुनौती से प्रश्न स्ट्रिंग शब्दशः कॉपी करें
3. पोलिंग अंतराल
- परिणाम जांच के बीच कम से कम 2 सेकंड प्रतीक्षा करें
- लगातार अनुरोधों से API को स्पैम न करें
- अनंत लूप से बचने के लिए टाइमआउट सेट करें (अनुशंसित: 60 सेकंड)
4. परिणाम प्रसंस्करण
solution.click0-आधारित सेल इंडेक्स (पंक्ति-प्रमुख, बाएं से दाएं, ऊपर से नीचे) की अल्पविराम-पृथक स्ट्रिंग है- संबंधित ग्रिड सेल क्लिक करने से पहले
,से विभाजित करें और पूर्णांक में बदलें
5. पुनः प्रयास तर्क
ERROR_NO_SLOT_AVAILABLEजैसी अस्थायी त्रुटियों के लिए पुनः प्रयास लागू करें- पुनः प्रयास करते समय एक्सपोनेंशियल बैकऑफ़ का उपयोग करें
- अधिकतम पुनः प्रयास प्रयासों की संख्या सीमित करें
6. API कुंजी सुरक्षा
- अपनी API कुंजी को सोर्स कोड में हार्डकोड न करें
- एनवायरनमेंट वेरिएबल या सीक्रेट्स मैनेजर का उपयोग करें
- क्लाइंट साइड पर API कुंजी कभी न उजागर करें
उपयोगी लिंक: