Pesan disini
MathCAPTCHA
API v1.0.0 Telah Rilis

Verifikasi Anti-Bot denganLogika Matematika Dinamis.

Tinggalkan tebak-tebakan gambar bus yang membosankan. MathCAPTCHA menghasilkan soal secara prosedural (real-time), auto-scaling, dan sistem JSON callbacks profesional.

Open Source di GitHub
JPROJECT-1/captcha-math

Konfigurasi API

Live Preview
Terminal JSON Output
// Awaiting user interaction...
Generated HTML + JS

                

Cara Memasang API

Implementasi bersih berbasis Vanilla JavaScript Class (ES6). Bebas library tambahan, aman dengan Private Fields (#).

1 PENTING: Gunakan Doctype

API ini memerlukan standar HTML5. Pastikan baris paling atas dari file HTML Anda memuat tag doctype, atau fitur matematika tidak akan dimuat dengan baik.

<!DOCTYPE html>
<html lang="en">
...

2 Inisialisasi Cepat

Siapkan container kosong dan panggil script API MathCAPTCHA.

<!-- Place inside your form -->
<div id="my-captcha-box"></div>

<!-- Place Script below the form -->
<script src="https://jproject-1.github.io/captcha-math/api.js"></script>
<script>
  const myCaptcha = new MathCAPTCHA({
    containerId: 'my-captcha-box',
    mode: 'auto',
    language: 'id',
    level: 'random',
    maxAttempts: 5,

    onSuccess: (response) => {
        console.log("Success!", response);
        // Send 'response.data.token' to backend for final validation
    }
  });
</script>

3 Struktur JSON Output

Berikut adalah penjelasan output yang diterima melalui fungsi callback saat pengguna berinteraksi.

onSuccess Output

{
  "status": "success",
  "data": {
    "levelPlayed": 4,
    "attemptsUsed": 2,
    "timestamp": "2026-08-24...",
    "token": "eyJ2YWxpZCI6..."
  }
}

onFail / onBlocked Output

{
  "status": "failed", // or "blocked"
  "reason": "wrong_answer", // or "closed_by_user"
  "attemptsUsed": 1,
  "maxAttempts": 5,
  "levelPlayed": 4,
  "timestamp": "2026-08-24..."
}

4 Referensi API Lengkap (Parameter)

Parameter Tipe Data Default Deskripsi Singkat
containerId* String null (Wajib) ID elemen div tempat CAPTCHA di-render.
mode String auto Menentukan tema antarmuka. Opsi: 'light', 'dark', 'auto'.
language String auto-web Bahasa instruksi UI. Opsi: 'id', 'en', dll, atau 'auto-user'.
level Integer|String random Tingkat kesulitan (1 - 7). Gunakan 'random' untuk diacak.
maxAttempts Integer 5 Batas jumlah percobaan gagal قبل pemblokiran sementara.
onSuccess* Function void (Wajib) Callback dieksekusi saat jawaban pengguna valid/benar.