Skip to content
API
ReCAPTCHA
Token Verifikasi

ReCAPTCHA

Ringkasan

Google reCAPTCHA adalah sistem captcha paling populer di dunia, digunakan oleh jutaan website untuk melindungi dari spam dan bot. Achicaptcha saat ini mendukung reCAPTCHA v2 dengan tingkat keberhasilan tinggi.

⚠️

Saat ini Achicaptcha hanya mendukung reCAPTCHA v2. reCAPTCHA v3 dan Enterprise belum didukung.

ReCAPTCHA

1. Buat Task

Request

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

Parameter

Nama ParameterTipe DataWajib?Deskripsi
clientKeystringyaApi key
task.typestringyaRecaptchaV2TaskProxyless untuk penyelesaian ultra-cepat
RecaptchaV2TaskProxylessNormal untuk penyelesaian normal
task.websiteURLstringyaURL website yang berisi captcha
task.websiteKeystringyareCAPTCHA sitekey

Contoh Request

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "RecaptchaV2TaskProxyless",
    "websiteURL": "https://www.google.com/recaptcha/api2/demo",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
  }
}

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": "03AGdBq27QGA96FJRo3mtz..."
}

Penjelasan Status

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

Contoh Integrasi

import requests
import time
 
def solve_recaptcha_v2(website_url, website_key, 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': 'RecaptchaV2TaskProxyless',
            'websiteURL': website_url,
            'websiteKey': website_key
        }
    }
    
    response = requests.post(create_task_url, json=create_task_payload)
    result = response.json()
    
    if result['errorId'] != 0:
        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 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'] != 0:
            raise Exception(result['errorDescription'])
        
        if result['status'] == 'ready':
            return result['solution']
        
        # Jika status == 'processing', lanjutkan loop
 
# Penggunaan
website_url = 'https://www.google.com/recaptcha/api2/demo'
website_key = '6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-'
token = solve_recaptcha_v2(website_url, website_key, 'YOUR_API_KEY')
print('Token reCAPTCHA:', token)

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. Validasi Site Key

  • Periksa site key sebelum mengirim request
  • Pastikan site key yang diperoleh dari atribut data-sitekey akurat
  • Verifikasi URL website sesuai dengan halaman yang berisi captcha

2. Tangani Timeout

  • Token memiliki waktu kadaluarsa (biasanya 120 detik)
  • Gunakan token segera setelah menerima
  • Jangan cache token terlalu lama

3. Interval Polling

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

4. Logika Retry

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

5. Keamanan API Key

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

Link berguna: