UNLOCK API

Referensi API pemecah CAPTCHA

Dua format request, satu akun. Pakai metode JSON (createTask, getTaskResult, getBalance) atau metode form klasik (in.php, res.php). Keduanya memakai API key dari halaman akun dan saldo yang sama.

Dasar

Base URL
https://unlock-api.com
API key
32 karakter, ada di halaman akun. Kirim sebagai clientKey (JSON) atau key (in.php, res.php).
Format
Metode JSON: POST dengan body JSON. in.php dan res.php: field form GET atau POST; tambahkan json=1 untuk balasan JSON.
Batas
1.200 request per menit per akun, termasuk pengecekan hasil. Tunggu sekitar 5 detik setelah membuat tugas, lalu cek setiap 5 detik.
Batas waktu
Tugas yang tidak terpecahkan dalam 5 menit gagal dengan ERROR_CAPTCHA_UNSOLVABLE dan biayanya kembali ke saldo.
Penagihan
Harga tugas dipotong saat tugas dibuat. Tugas gagal dikembalikan otomatis.

Mulai cepat

Pecahkan reCAPTCHA v2 dengan metode JSON. Ganti YOUR_API_KEY dengan key Anda.

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
  "clientKey": KEY,
  "task": {
      "type": "RecaptchaV2TaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "6LcR_RsTAAAAAFJR_5ZdbQd0SMxL7yIDmSXH1-lo"
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

while True:
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(r["errorCode"])   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"]["gRecaptchaResponse"])
        break

Metode JSON

POST /createTask Buat tugas

Body: clientKey dan objek task. Tipe tugas menentukan field lainnya; lihat Jenis tugas. Balasan: errorId 0 dan taskId, atau errorId 1 dengan errorCode.

POST https://unlock-api.com/createTask
{"clientKey":"YOUR_API_KEY","task":{"type":"TurnstileTaskProxyless","websiteURL":"https://example.com","websiteKey":"0x4AAAAAAAC3DHQFLr1GavRN"}}

{"errorId":0,"taskId":1001}
{"errorId":1,"errorCode":"ERROR_ZERO_BALANCE","errorDescription":"..."}

POST /getTaskResult Ambil hasil

Body: clientKey dan taskId. Selama tugas berjalan: status processing. Setelah selesai: status ready dengan solution dan cost. Tugas yang gagal membalas errorId 1 dengan errorCode-nya.

POST https://unlock-api.com/getTaskResult
{"clientKey":"YOUR_API_KEY","taskId":1001}

{"errorId":0,"status":"processing"}
{"errorId":0,"status":"ready","solution":{"token":"0.zrSnRHO7h0..."},"cost":"0.0012","createTime":1791640000,"endTime":1791640011,"solveCount":1}

POST /getBalance Cek saldo

Body: clientKey. Balasan: balance dalam dolar AS.

{"clientKey":"YOUR_API_KEY"}

{"errorId":0,"balance":42.5}

Laporkan jawaban salah

reportIncorrectRecaptcha dan reportIncorrectImageCaptcha menerima clientKey dan taskId lalu membalas success. Keduanya diterima demi kompatibilitas dengan library yang sudah ada; laporan tidak mengubah biaya.

Metode form (in.php, res.php)

Kirim tugas: in.php

Field: key, method, dan field dari jenis CAPTCHA. Balasan: OK|ID, atau dengan json=1 {"status":1,"request":"ID"}. Error dikembalikan sebagai namanya, misalnya ERROR_ZERO_BALANCE.

POST https://unlock-api.com/in.php
key=YOUR_API_KEY&method=hcaptcha&sitekey=SITE_KEY&pageurl=https://example.com&json=1

OK|1001
{"status":1,"request":"1001"}

Ambil jawaban: res.php

action=get&id=ID mengembalikan OK|ANSWER jika sudah terpecahkan dan CAPCHA_NOT_READY selama diproses. action=get2 menambahkan biaya. ids=ID1,ID2 mengecek hingga 100 tugas sekaligus. action=getbalance mengembalikan saldo. action=reportbad dan reportgood diterima.

GET https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001
CAPCHA_NOT_READY
OK|P1_eyJ0eXAiOiJKV1Qi...

GET https://unlock-api.com/res.php?key=YOUR_API_KEY&action=getbalance
42.5

Metode lainnya

POST /getToken Buat dan tunggu: getToken

Body sama dengan createTask. Panggilan menunggu hingga 50 detik dan mengembalikan balasan yang sama dengan getTaskResult. Jika tugas masih berjalan, balasannya status processing dengan taskId; lanjutkan pengecekan dengan getTaskResult.

POST https://unlock-api.com/getToken
{"clientKey":"YOUR_API_KEY","task":{"type":"TurnstileTaskProxyless","websiteURL":"https://example.com","websiteKey":"0x4AAAA..."}}

{"errorId":0,"taskId":1001,"status":"ready","solution":{"token":"0.zrSnRHO7h0..."},"cost":"0.000725"}

Callback hasil

Tambahkan callbackUrl ke createTask (atau pingback ke in.php) dan hasilnya dikirim ke sana saat tugas selesai: body JSON seperti getTaskResult dengan taskId, atau untuk in.php body form id=…&code=…. Hanya alamat publik yang dipanggil, satu kali, dengan timeout 5 detik; hasilnya juga tetap bisa diambil lewat pengecekan.

{"clientKey":"YOUR_API_KEY","callbackUrl":"https://your.server/captcha-result","task":{...}}

POST https://your.server/captcha-result
{"errorId":0,"taskId":1001,"status":"ready","solution":{...},"cost":"0.0005"}

Statistik

getQueueStats mengembalikan jumlah tugas yang menunggu dan sedang dipecahkan saat ini serta rata-rata waktu pemecahan dalam satu jam terakhir. getSpendingStats mengembalikan volume dan pengeluaran Anda per jam untuk satu hari UTC (date dalam unix time). test mengembalikan body yang diterimanya.

POST https://unlock-api.com/getQueueStats     {"clientKey":"..."}  ->  {"errorId":0,"waiting":3,"solving":12,"speed":6.4,"total":15}
POST https://unlock-api.com/getSpendingStats  {"clientKey":"...","date":1791590400}  ->  {"errorId":0,"data":[{"dateFrom":...,"volume":120,"money":0.06},...]}
POST https://unlock-api.com/test              {"anything":1}  ->  {"errorId":0,"received":{"anything":1}}

Daftar IP yang diizinkan

Jika Anda mengatur daftar IP yang diizinkan di halaman akun, request dari IP lain mendapat ERROR_IP_NOT_ALLOWED.

Jenis tugas

Setiap jenis punya nama tanpa proxy dan nama dengan proxy (tanpa kata Proxyless). Nama dicocokkan tanpa memedulikan huruf besar kecil dan dengan ejaan yang dipakai API pemecah lain. Tugas dengan proxy juga memerlukan proxyType (http, socks4, socks5), proxyAddress, dan proxyPort, atau satu string proxy seperti http://user:[email protected]:8080. Field opsional yang tidak tercantum di sini diteruskan ke pemecah apa adanya.

reCAPTCHA v2

Detail

RecaptchaV2TaskProxylessRecaptchaV2Task

Field

websiteURL (wajib)websiteKey (wajib)

reCAPTCHA v2 Enterprise

Detail

RecaptchaV2EnterpriseTaskProxylessRecaptchaV2EnterpriseTask

Field

websiteURL (wajib)websiteKey (wajib)

reCAPTCHA v3

Detail

RecaptchaV3TaskProxylessRecaptchaV3Task

Field

websiteURL (wajib)websiteKey (wajib)

Cloudflare Turnstile

Detail

TurnstileTaskProxylessTurnstileTask

Field

websiteURL (wajib)websiteKey (wajib)

GeeTest v3 / v4

Detail

GeeTestTaskProxylessGeeTestTask

Field

websiteURL (wajib)

FunCaptcha (Arkose Labs)

Detail

FunCaptchaTaskProxylessFunCaptchaTask

Field

websiteURL (wajib)websitePublicKey (wajib)

Amazon AWS WAF

Detail

AmazonTaskProxylessAmazonTask

Field

websiteURL (wajib)websiteKey (wajib)

MTCaptcha

Detail

MtCaptchaTaskProxylessMtCaptchaTask

Field

websiteURL (wajib)websiteKey (wajib)

Friendly Captcha

Detail

FriendlyCaptchaTaskProxylessFriendlyCaptchaTask

Field

websiteURL (wajib)websiteKey (wajib)

Lemin Cropped Captcha

Detail

LeminTaskProxylessLeminTask

Field

websiteURL (wajib)captchaId (wajib)divId (wajib)

DataDome

Detail

DataDomeSliderTask

Field

websiteURL (wajib)captchaUrl (wajib)userAgent (wajib)

KeyCaptcha

Detail

KeyCaptchaTaskProxylessKeyCaptchaTask

Field

websiteURL (wajib)s_s_c_user_id (wajib)s_s_c_session_id (wajib)s_s_c_web_server_sign (wajib)s_s_c_web_server_sign2 (wajib)

Capy Puzzle

Detail

CapyTaskProxylessCapyTask

Field

websiteURL (wajib)websiteKey (wajib)

Halaman Cloudflare Challenge

Detail

AntiCloudflareTask

Field

websiteURL (wajib)

Cutcaptcha

Detail

CutCaptchaTaskProxylessCutCaptchaTask

Field

websiteURL (wajib)

CyberSiARA

Detail

AntiCyberSiAraTaskProxylessAntiCyberSiAraTask

Field

websiteURL (wajib)

atbCAPTCHA

Detail

AtbCaptchaTaskProxylessAtbCaptchaTask

Field

websiteURL (wajib)

Tencent Captcha

Detail

TencentTaskProxylessTencentTask

Field

websiteURL (wajib)

Prosopo Procaptcha

Detail

ProsopoTaskProxylessProsopoTask

Field

websiteURL (wajib)websiteKey (wajib)

CaptchaFox

Detail

CaptchaFoxTaskProxylessCaptchaFoxTask

Field

websiteURL (wajib)websiteKey (wajib)

Altcha

Detail

AltchaTaskProxylessAltchaTask

Field

websiteURL (wajib)

NetEase Yidun

Detail

YidunTaskProxylessYidunTask

Field

websiteURL (wajib)websiteKey (wajib)

Yandex SmartCaptcha

Detail

YandexSmartCaptchaTaskProxylessYandexSmartCaptchaTask

Field

websiteURL (wajib)websiteKey (wajib)

VK Captcha

Detail

VKCaptchaTaskProxylessVKCaptchaTask

Field

websiteURL (wajib)

Binance Captcha

Detail

BinanceTaskProxylessBinanceTask

Field

websiteURL (wajib)websiteKey (wajib)

Tugas khusus (Imperva, Temu, dan lainnya)

Detail

CustomTask

Field

class (wajib)

Gambar ke teks

Detail

ImageToTextTask

Field

body (wajib)

Pertanyaan teks

Detail

TextCaptchaTask

Field

comment (wajib)

Grid gambar

Detail

GridTask

Field

body (wajib)

Koordinat klik

Detail

CoordinatesTask

Field

body (wajib)

Putar gambar

Detail

RotateTask

Field

body (wajib)

Audio

Detail

AudioTask

Field

body (wajib)

Kotak pembatas

Detail

BoundingBoxTask

Field

body (wajib)

Gambar garis keliling

Detail

DrawAroundTask

Field

body (wajib)

Seret dan lepas

Detail

DragAndDropTask

Field

Tugas gambar kompleks

Detail

ComplexImageTask

Field

class (wajib)

Error

Nama yang sama di kedua format. Request yang ditolak dengan error tidak ditagih.

ErrorArtinya dan yang perlu dilakukan
ERROR_KEY_DOES_NOT_EXISTKey salah. Salin lagi dari halaman akun. (in.php dan res.php: ERROR_WRONG_USER_KEY)
ERROR_ZERO_BALANCESaldo tidak cukup untuk tugas ini. Tambah saldo; tidak ada biaya yang dipotong.
ERROR_NO_SLOT_AVAILABLETerlalu banyak request saat ini, jadi tugas tidak bisa diterima. Coba lagi beberapa detik lagi; tidak ada biaya yang dipotong.
ERROR_TASK_NOT_SUPPORTEDJenis tugas tidak dikenal atau dinonaktifkan. Periksa nama tipenya.
ERROR_BAD_PARAMETERSAda field wajib yang kosong atau formatnya salah.
ERROR_PAGEURLwebsiteURL atau pageurl kosong atau bukan alamat http(s) lengkap.
ERROR_GOOGLEKEYgooglekey tidak ada pada request reCAPTCHA in.php.
ERROR_BAD_PROXYTugas dengan proxy memerlukan proxyAddress dan proxyPort.
ERROR_ZERO_CAPTCHA_FILESIZEGambar tidak ada atau terlalu kecil.
ERROR_TOO_BIG_CAPTCHA_FILESIZEGambar lebih besar dari 100 KB.
ERROR_IMAGE_TYPE_NOT_SUPPORTEDGambar bukan base64 yang valid.
ERROR_WRONG_CAPTCHA_IDTidak ada tugas dengan id ini di akun Anda.
CAPCHA_NOT_READYKhusus in.php dan res.php: tugas masih berjalan. Cek lagi dalam 5 detik.
ERROR_CAPTCHA_UNSOLVABLETugas tidak bisa dipecahkan tepat waktu. Biayanya sudah kembali ke saldo.
ERROR_TOO_MANY_REQUESTSTerlalu banyak request. Perlambat pengecekan hasil menjadi setiap 5 detik.
ERROR_IP_NOT_ALLOWEDRequest berasal dari IP yang tidak ada di daftar izin akun. Tambahkan IP tersebut di halaman akun.