Skip to content
API
Funcaptcha

Funcaptcha Image

Ringkasan

FunCaptcha (juga dikenal sebagai Arkose Labs Captcha) adalah jenis captcha interaktif yang mengharuskan pengguna melakukan tindakan seperti memutar gambar, menyeret dan menjatuhkan objek untuk menyelesaikan tantangan. Ini digunakan oleh banyak situs web besar seperti Roblox, Epic Games, Outlook, dll.

🎮

FunCaptcha dirancang untuk melindungi dari bot sekaligus menciptakan pengalaman "menyenangkan" bagi pengguna melalui mini-game interaktif.

FunCaptcha FunCaptcha FunCaptcha

1. Buat Task

Request

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

Parameter

Nama ParameterTipe DataWajib?Deskripsi
clientKeystringyaApi key
task.typestringyaFuncaptchaImageTask
task.subTypestringyaNilai sama dengan 1
task.imagestringyaBase64 dari gambar
task.otherstringyaPertanyaan
Contoh: "Use the arrows to rotate the object to face in the direction of the hand"

Contoh Request

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "FuncaptchaImageTask",
    "subType": "1",
    "image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...",
    "other": "Use the arrows to rotate the object to face in the direction of the hand"
  }
}

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": "1" // Indeks gambar yang perlu diklik (Dimulai dari 0)
}

Penjelasan Status

  • errorId = 0 dan status = ready: Berhasil dipecahkan, baca hasil di solution.answer (array indeks gambar)
  • errorId = 0 dan status = processing: Sedang memecahkan captcha, tunggu 2 detik dan coba lagi
  • errorId > 0: Error sistem, mengembalikan kode error dan deskripsi error

Contoh Integrasi

import requests
import time
 
def solve_funcaptcha_image(image_base64, question, 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': 'FuncaptchaImageTask',
            'subType': '1',
            'image': image_base64,
            'other': question
        }
    }
    
    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
image_base64 = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...'  # Base64 dari gambar
question = 'Use the arrows to rotate the object to face in the direction of the hand'
solution = solve_funcaptcha_image(image_base64, question, 'YOUR_API_KEY')
print('Solusi FunCaptcha:', solution)

Kode Error Umum

Kode ErrorDeskripsiCatatan
0suksesBerhasil
1sedang diprosesSedang diproses
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 credits
7task gagal, silakan buat task baruTask gagal, silakan buat task baru
8task ID tidak adaTask ID tidak ada

Praktik Terbaik

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

1. Pemrosesan Gambar Base64

  • Hanya menerima satu gambar. Untuk pengguna ponsel, gabungkan menjadi satu gambar besar sebelum mengirim
  • Pastikan gambar dikodekan dengan benar dalam format Base64
  • Hapus prefix data:image/...;base64, jika ada
  • Periksa ukuran gambar wajar (tidak terlalu besar)

2. Pertanyaan

  • Berikan pertanyaan yang tepat dari tantangan FunCaptcha
  • Pertanyaan membantu sistem memahami jenis tantangan dengan lebih baik
  • Contoh: "Use the arrows to rotate the object to face in the direction of the hand"

3. Interval Polling

  • Tunggu setidaknya 2 detik antara pemeriksaan hasil
  • Jangan spam API dengan terlalu banyak permintaan berturut-turut
  • Tetapkan timeout untuk menghindari loop tak terbatas (disarankan 60 detik untuk tugas gambar)

4. Pemrosesan Hasil

  • Hasil yang dikembalikan adalah satu angka (indeks dimulai dari 0)
  • Gunakan hasil ini untuk mengirim ke FunCaptcha

5. Logika Coba Lagi

  • Terapkan coba lagi untuk kesalahan sementara seperti ERROR_NO_SLOT_AVAILABLE
  • Gunakan exponential backoff saat mencoba lagi
  • Batasi jumlah maksimum percobaan ulang

6. Keamanan API Key

  • Jangan hardcode API key dalam kode
  • Gunakan variabel lingkungan
  • Jangan ekspos API key di sisi klien

Link berguna: