Skip to content

Fraud Prevention Data API

Data API ialah pasangan bahagian pelayan kepada Web SDK. Gunakannya untuk menarik keputusan, mengagregat statistik, dan mengeksport data untuk pelaporan dan penyelarasan — menarik angka yang sistem anda sendiri persetujui.

URL asas

https://apiv1.captcha.la

Pengesahan

Semua permintaan Data API disahkan dengan kelayakan aplikasi Fraud Prevention anda, dihantar sebagai pengepala:

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

WARNING

X-App-Secret adalah bahagian pelayan sahaja. Jangan sekali-kali dedahkannya kepada pelayar, aplikasi mudah alih, atau repositori awam. SDK halaman hanya menggunakan appKey awam.

Titik akhir

Dapatkan keputusan

Dapatkan keputusan untuk satu lawatan (cth. untuk menyelaras lawatan tertentu).

bash
GET /v1/bot/verdict?cid=CID_OF_THE_VISIT
X-App-Key: YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET

data respons ialah objek BotVerdict:

json
{
  "code": 0,
  "data": {
    "is_bot": true,
    "score": 87,
    "level": "high",
    "action": "flag",
    "consistency": { "ok": false },
    "degraded": false
  }
}

Statistik teragregat

Tarik kiraan berbaldi sepanjang julat masa — jumlah, bahagian bot, dan pecahan mengikut action/level — untuk papan pemuka dan laporan kualiti.

bash
GET /v1/bot/stats?from=2026-06-01&to=2026-06-30
X-App-Key: YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET
json
{
  "code": 0,
  "data": {
    "from": "2026-06-01",
    "to": "2026-06-30",
    "total": 124500,
    "bots": 18230,
    "bot_rate": 0.146,
    "by_action": { "record_only": 102100, "flag": 19800, "challenge": 2600 },
    "by_level":  { "low": 100300, "medium": 16900, "high": 6200, "critical": 1100 }
  }
}

Eksport

Eksport baris keputusan per lawatan untuk satu julat masa, untuk penyelarasan luar talian.

bash
GET /v1/bot/export?from=2026-06-01&to=2026-06-30&format=csv
X-App-Key: YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET

Setiap baris membawa pengecam lawatan, cap masa, dan medan keputusan (is_bot, score, level, action), supaya anda boleh mencantumkannya semula kepada log anda sendiri.

Penyelarasan per klik

Untuk senario trafik berbayar, satu lawatan boleh diikat semula kepada klik tertentu yang dihantar supaya dua pihak boleh menyelesaikannya. Itu menggunakan token klik dan diliputi dalam panduan Ad fraud.

Rujukan token klik (untuk penyedia trafik)

Penyedia trafik menandatangani token klik pada pelayannya sendiri dan menambahkannya pada URL destinasi, supaya verdict bagi lawatan yang terhasil dikaitkan semula kepada penyedia tersebut. Penandatanganan dilakukan secara luar talian — tiada panggilan API.

Dapatkan kelayakan penandatanganan anda

Dalam papan pemuka, buka aplikasi anda → Fraud Prevention → Issue signing key. Anda akan menerima:

  • bot_kid — id kunci awam anda (dimasukkan ke dalam token sebagai pkid).
  • bot_hmac_secret — rahsia penandatanganan anda, dipaparkan sekali sahaja. Simpan ia di sebelah pelayan.

Format token

ct.<base64url(payload)>.<base64url(HMAC_SHA256(body, bot_hmac_secret))>

body ialah base64url bagi payload JSON; tandatangan dikira ke atas rentetan body tersebut.

Medan payload

fieldrequireddescription
pkidyabot_kid anda; backend menggunakannya untuk mencari rahsia anda dan mengesahkan tandatangan
cidyaid unik untuk klik ini; kunci penyelarasan. Jana nilai baharu yang unik bagi setiap klik
audtidakapp_key bagi pengiklan sasaran. Apabila ditetapkan, token hanya dihormati pada halaman pengiklan tersebut. Tinggalkan kosong untuk membenarkan mana-mana halaman pengiklan menerimanya
click_tstidakunix saat ketika klik berlaku
exptidakunix saat tamat tempoh; token yang tamat tempoh ditolak

Tambahkannya pada pautan

Tambahkan token sebagai parameter pertanyaan _ctk pada URL destinasi pengiklan:

https://advertiser.example/lp?_ctk=ct.<...>.<...>

SDK pengiklan membaca _ctk secara automatik (boleh dikonfigurasi melalui tokenParam). Satu cid hanya boleh dituntut sekali sahaja (dilindungi daripada main semula). Lihat Model keselamatan.

Contoh (pseudo-kod)

js
const payload = { pkid, cid, aud: advertiserAppKey, click_ts: now, exp: now + 900 }
const body  = base64url(JSON.stringify(payload))
const sig   = base64url(hmacSha256(body, botHmacSecret))
const token = `ct.${body}.${sig}`
const url   = `${destination}?_ctk=${encodeURIComponent(token)}`

Langkah seterusnya

MIT-licensed examples · CaptchaLa is operated independently