Skip to content

Referensi API

CaptchaLa menyediakan RESTful API untuk semua integrasi sisi server.

Base URL

https://apiv1.captcha.la

Hanya ada satu base URL

Semua endpoint di halaman ini berada di apiv1.captcha.la. Host cadangan (bypass.*, fallbackapiv1.*) adalah target failover yang dihubungi SDK sendiri saat terjadi gangguan — mengarahkan integrasi Anda ke sana akan mengembalikan service_online.

Autentikasi

Semua request API membutuhkan header autentikasi:

X-App-Key:    YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET

WARNING

X-App-Secret is server-side only. Never expose it to browsers, mobile apps, or public repos.

API Validasi Sisi Server

💡 Gunakan SDK server untuk lewati boilerplate. Membungkus endpoint, retry, error bertipe:

Setelah pengguna lulus CAPTCHA di frontend, server Anda perlu memvalidasi token yang dikembalikan SDK. Berikut endpoint validasi sisi server.

Validasi Token Sisi Server

Validasi pass_token yang dikembalikan SDK frontend (prefix pt_). Membutuhkan header X-App-Key dan X-App-Secret.

bash
POST /v1/validate
X-App-Key: YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET
Content-Type: application/json

{ "pass_token": "pt_xxx", "client_ip": "1.2.3.4" }

client_ip bersifat opsional tetapi disarankan — IP pengguna akhir dari request masuk Anda, dipakai untuk pemeriksaan risiko tambahan; aman untuk dihilangkan.

json
{
  "code": 0,
  "data": {
    "valid": true,
    "challenge_id": "ch_xxx",
    "action": "login",
    "uid": null,
    "captcha_args": {
      "platform": "web",
      "user_ip": "1.2.3.4",
      "referer": "https://your-site.com/login",
      "pkg": null,
      "solved_at": 1750000000,
      "risk_score": 12
    }
  }
}

captcha_args adalah data informasional (untuk logging / analisis risiko Anda): platform, user_ip (IP saat tantangan diselesaikan), referer, pkg, solved_at, risk_score.

TIP

Validate data.valid === true and that data.action matches the scene you expected (reject if a token from a pay flow is presented at /login). Tokens are single-use.

Challenge Token yang Diterbitkan Server

Terbitkan server_token berumur pendek dari backend Anda. Browser lalu meneruskan token ini saat menginisialisasi challenge, membuktikan bahwa request berasal dari server tepercaya Anda.

Terbitkan Server Token

Panggil endpoint ini hanya dari server Anda sendiri. Membutuhkan X-App-Key + X-App-Secret. Respons berisi server_token (prefix sct_) yang akan diteruskan frontend ke inisialisasi verifikasi.

bash
POST /v1/server/challenge/issue
X-App-Key: YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET
Content-Type: application/x-www-form-urlencoded

action=login&ttl=300&max_uses=1&bind_ip=1.2.3.4
json
{
  "code": 0,
  "data": {
    "server_token": "sct_xxxxxxxxxxxx",
    "expires_in": 300,
    "issued_at": 1713600000
  }
}

Body Parameters (form-urlencoded)

FieldDeskripsi
actionScene bisnis, mis. login, register, pay. Harus cocok dengan action yang digunakan di inisialisasi verifikasi.
ttlMasa berlaku token dalam detik. Default 300, maksimum 900.
max_usesMaksimal jumlah token dapat dikonsumsi. Default 10.
bind_ipIkat token ke IP client. Inisialisasi dari IP lain akan ditolak.
bind_device_idIkat token ke device id tertentu.
bind_fingerprintIkat token ke fingerprint browser tertentu.

Inisialisasi Challenge

Dipanggil oleh SDK untuk memulai CAPTCHA challenge. Menerima server_token opsional yang diterbitkan oleh /v1/server/challenge/issue.

FieldDeskripsi
app_keyApp Key publik Anda.
actionScene bisnis. Harus cocok dengan action yang digunakan saat menerbitkan server_token.
server_tokenOpsional; wajib ketika app memiliki server_token_required = true.

INFO

Jika server_token_required diaktifkan untuk app ini di dashboard, inisialisasi verifikasi akan menolak request yang tidak membawa server_token yang valid.

Endpoint fallback offline

CaptchaLa menjalankan layanan cadangan di host terpisah agar verifikasi tetap berjalan saat API utama tidak dapat dijangkau:

HostDipanggil olehFungsi
bypass.captchala.com · bypass.captcha-cdn.netSDK web / native (sisi pengguna akhir)Menjalankan verifikasi offline dan menerbitkan pass token offline_ selama API utama down
fallbackapiv1.captchala.com · fallbackapiv1.captcha-cdn.netSDK serverMemvalidasi token offline_ (POST /api/validate)

Ini target failover, bukan API alternatif. SDK berpindah ke sana sendiri, hanya setelah API utama benar-benar gagal, lalu kembali otomatis begitu pulih. Tidak ada bagian konfigurasi Anda yang boleh menunjuk ke host ini.

service_online (HTTP 503)

json
{ "code": -1, "error": "service_online", "message": "Main API is online, please use main API" }

Error ini muncul saat API utama sedang online: layanan cadangan hanya melayani ketika terjadi gangguan. Request masuk ke bypass.*, bukan ke https://apiv1.captcha.la — perbaiki URL-nya, retry tidak membantu.

Penyebab umum:

PenyebabPerbaikan
Opsi SDK apiServer diarahkan ke host bypassKembalikan ke https://apiv1.captcha.la, atau hapus opsinya dan biarkan SDK memilih
bypassServers ditimpa manualHapus penimpaan, kecuali kami memang memberi Anda host khusus
HTTP client buatan sendiri menyalin URL bypass (mis. dari devtools saat insiden)Panggil https://apiv1.captcha.la dan serahkan failover ke SDK — layanan cadangan tidak menerima trafik challenge normal
Load balancer / proxy / DNS menulis ulang host APIArahkan upstream kembali ke apiv1.captcha.la

TIP

Validasi sisi server juga tidak butuh host fallback: cukup POST /v1/validate di apiv1.captcha.la, dan SDK server PHP / Go menangani token offline_ lewat API cadangan secara otomatis.

Error Code

KodeDeskripsi
invalid_app_keyApp Key tidak valid
invalid_app_secretApp Secret tidak valid
challenge_expiredChallenge kedaluwarsa
challenge_not_foundChallenge tidak ditemukan
invalid_answerJawaban tidak valid
token_expiredToken kedaluwarsa
token_already_usedToken sudah digunakan
token_not_foundToken tidak ditemukan
quota_exceededKuota terlampaui
rate_limitedTerkena rate limit
rate_limit_exceededTerlalu banyak request penerbitan untuk app ini. Lakukan back off dan coba lagi.
service_onlineRequest masuk ke layanan fallback offline padahal API utama sedang online. Gunakan https://apiv1.captcha.la — lihat Endpoint fallback offline.

MIT-licensed examples · CaptchaLa is operated independently