Skip to content
API
ReCAPTCHA
Gambar

ReCAPTCHA Image (Ponsel)

Ringkasan

Selesaikan Recaptcha dengan kecepatan ultra-cepat, akurasi nomor 1 di pasar. Kami menyediakan layanan untuk menyelesaikan semua jenis ReCaptcha Image di ponsel.

📱

Layanan ini memungkinkan Anda mengirim gambar captcha dan menerima indeks sel yang harus diklik untuk menyelesaikan captcha.

ReCAPTCHA Mobile

1. Buat Task

Request

POST https://api.achicaptcha.com/createTask

Parameter

Nama ParameterTipe DataWajib?Deskripsi
clientKeystringyaApi key
task.typestringyaReCaptchaPhoneTask
task.subTypestringyaNilai sama dengan 0
task.imagestringyaGambar captcha dalam format base64, tangkap area tampilan gambar captcha (tanpa border, hanya sel-sel kotak kecil)
task.otherstringyaPertanyaan|Jumlah grid
• Pertanyaan: "Select all images with a bus" (full question text shown in the captcha prompt)
• Jumlah grid: 3 (atau 4, 5)
→ other: "Select all images with a bus|4"

Contoh Request

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ReCaptchaPhoneTask",
    "subType": "0",
    "image": "iVBORw0KGgoAAAANSUhEUgAA...(base64 encoded image)",
    "other": "Select all images with a bus|4"
  }
}

Response

Ketika berhasil, server mengembalikan errorId = 0 dan taskId

{
  "errorId": 0,
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

2. Dapatkan Hasil

Request

POST https://api.achicaptcha.com/getTaskResult

Parameter

Nama ParameterTipe DataWajib?Deskripsi
clientKeystringyaApi key
taskIdstringyaTaskId yang diperoleh dari (1)

Contoh Request

POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

Response

{
  "errorId": 0,
  "status": "ready",
  "solution": "0,5,9"
}

Catatan: Untuk tipe "grid", solution adalah daftar indeks gambar yang harus diklik, dimulai dari 0

Penjelasan Status

  • errorId = 0: Berhasil diselesaikan, baca hasil di solution
  • errorId = 1: Sedang menyelesaikan captcha, tunggu 2-3 detik dan coba lagi
  • errorId > 1: Error sistem, mengembalikan kode error dan deskripsi

Contoh Integrasi

import requests
import time
 
def solve_recaptcha_phone(image_base64, question, grid_count, api_key='YOUR_API_KEY'):
    # Langkah 1: Buat task
    create_task_url = 'https://api.achicaptcha.com/createTask'
    create_task_payload = {
        'clientKey': api_key,
        'task': {
            'type': 'ReCaptchaPhoneTask',
            'subType': '0',
            'image': image_base64,
            'other': f'{question}|{grid_count}'
        }
    }
    
    response = requests.post(create_task_url, json=create_task_payload)
    result = response.json()
    
    if result['errorId'] > 1:
        raise Exception(result['errorDescription'])
    
    task_id = result['taskId']
    
    # Langkah 2: Dapatkan hasil
    get_result_url = 'https://api.achicaptcha.com/getTaskResult'
    
    while True:
        time.sleep(2)  # Tunggu 2-3 detik
        
        get_result_payload = {
            'clientKey': api_key,
            'taskId': task_id
        }
        
        response = requests.post(get_result_url, json=get_result_payload)
        result = response.json()
        
        if result['errorId'] > 1:
            raise Exception(result['errorDescription'])
        
        if result['status'] == 'ready':
            return result['solution']  # Mengembalikan "0,5,9" - indeks yang harus diklik
        
        # Jika status == 'processing', lanjutkan loop
 
# Penggunaan
image_base64 = 'iVBORw0KGgoAAAANSUhEUgAA...'  # Gambar captcha yang di-encode base64
question = 'Select all images with a bus'  # Full question text from the captcha prompt
grid_count = 4  # Jumlah grid (3, 4, atau 5)
solution = solve_recaptcha_phone(image_base64, question, grid_count, 'YOUR_API_KEY')
print('Indeks grid yang harus diklik:', solution)  # Contoh: "0,5,9"
 
# Gunakan solution untuk mengklik sel yang sesuai
indices = [int(i) for i in solution.split(',')]
for index in indices:
    # Klik sel dengan indeks yang sesuai
    print(f'Klik sel indeks: {index}')

Kode Error Umum

Kode ErrorDeskripsiCatatan
0suksesSukses
1diprosesDiproses
2field wajib tidak adaField wajib tidak ada, periksa parameter lagi
3task tidak didukungTipe task tidak didukung
4pembuatan task gagalPembuatan task gagal
5client key tidak adaAPI key tidak ada, periksa API key lagi
6saldo akun tidak cukupSaldo akun tidak cukup, tambahkan kredit
7task gagal, silakan buat task baruTask gagal, silakan buat task baru
8task ID tidak adaTask ID tidak ada

Best Practice

Untuk hasil terbaik saat menggunakan API Achicaptcha, ikuti prinsip-prinsip berikut:

1. Persiapkan Gambar Captcha

  • Tangkap area tampilan gambar captcha dengan jelas, tanpa border atau elemen UI lainnya
  • Hanya sertakan sel-sel kotak kecil (grid) dari captcha
  • Gambar dalam format base64
  • Pastikan gambar memiliki resolusi yang cukup untuk pengenalan

2. Tentukan Informasi yang Akurat

  • Dapatkan pertanyaan dari bagian teks tebal captcha (contoh: "Select all images with a bus", "Select all squares with traffic lights")
  • Tentukan jumlah grid yang benar (3x3, 4x4, atau 5x5)
  • Format other dengan benar: "pertanyaan|jumlah_grid" (contoh: "Select all images with a bus|4")

3. Interval Polling

  • Tunggu setidaknya 2-3 detik antara pengecekan hasil
  • Jangan spam API dengan terlalu banyak request berturut-turut
  • Atur timeout untuk menghindari infinite loop (disarankan 120 detik)

4. Proses Hasil

  • Solution yang dikembalikan adalah string indeks yang harus diklik, dipisahkan dengan koma (contoh: "0,5,9")
  • Indeks dimulai dari 0, menghitung dari kiri ke kanan, atas ke bawah
  • Parse string dan klik sel yang sesuai

5. Logika Retry

  • Implementasikan retry untuk error sementara seperti ERROR_NO_SLOT_AVAILABLE
  • Gunakan exponential backoff saat retry
  • Batasi jumlah maksimum percobaan retry

6. Keamanan API Key

  • Jangan hardcode API key dalam kode
  • Gunakan environment variable
  • Jangan expose API key di sisi client

Link berguna: