# Menentukan jenis captcha

> Cara mengetahui captcha apa yang dipakai sebuah halaman web, yaitu reCAPTCHA v2, v2 invisible, v3, versi Enterprise, hCaptcha, perbedaan Cloudflare Turnstile dengan halaman verifikasi Cloudflare, serta jenis tugas YesCaptcha yang sesuai.

Source: https://docs.yescaptcha.com/id/guides/identify-captcha/ · Last verified: 2026-10-15

> This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/guides/identify-captcha/

Langkah pertama untuk memilih jenis tugas yang tepat adalah mengenali captcha-nya. Cara paling andal adalah membuka developer tools browser (F12), lalu melihat di panel Network (Jaringan) skrip captcha mana yang dimuat halaman. Anda juga bisa menebaknya dari tampilannya.

## Dari tampilan

Berikut tampilan tiap captcha di halaman web (animasi ilustrasi, bukan tangkapan layar). Klik kartu untuk membuka halaman jenis tugas yang sesuai. Jika tampilannya sulit dibedakan, pastikan dengan tabel ringkas di bawah dan panel Network.

-   [reCAPTCHA v2: Kotak centang · Tak terlihat](https://docs.yescaptcha.com/id/tasks/recaptcha-v2.md)
-   [reCAPTCHA v3](https://docs.yescaptcha.com/id/tasks/recaptcha-v3.md)
-   [Pengenalan gambar reCAPTCHA v2: Kisi 3×3 · Kisi 4×4 · Gambar tunggal 1x1](https://docs.yescaptcha.com/id/tasks/recaptcha-classification.md)
-   [hCaptcha](https://docs.yescaptcha.com/id/tasks/hcaptcha.md)
-   [Pengenalan gambar hCaptcha: Kisi gambar · Klik satu titik · Seret dan lepas · Animasi](https://docs.yescaptcha.com/id/tasks/hcaptcha-classification.md)
-   [Cloudflare Turnstile: Otomatis · Kotak centang](https://docs.yescaptcha.com/id/tasks/turnstile.md)
-   [Halaman verifikasi Cloudflare: Otomatis · Kotak centang](https://docs.yescaptcha.com/id/tasks/cloudflare-challenge.md)
-   [Pengenalan gambar FunCaptcha: Panah · Kisi 6 gambar](https://docs.yescaptcha.com/id/tasks/funcaptcha-classification.md)
-   [Pengenalan gambar AWS WAF / bCaptcha: AWS WAF · bCaptcha](https://docs.yescaptcha.com/id/tasks/aws-bcaptcha-classification.md)
-   [Pengenalan teks pada gambar: Berbintik · Garis gangguan · Matematika](https://docs.yescaptcha.com/id/tasks/image-to-text.md)

## Tabel ringkas

| Yang Anda lihat | Apa itu | Jenis tugas yang dipakai |
| --- | --- | --- |
| Kotak centang “I’m not a robot” | reCAPTCHA v2 | [reCAPTCHA v2](https://docs.yescaptcha.com/id/tasks/recaptcha-v2.md) |
| Tidak ada kotak centang; soal gambar baru muncul setelah klik kirim; ada logo kecil reCAPTCHA di pojok kanan bawah | reCAPTCHA v2 invisible (atau v3) | Lihat “Versi reCAPTCHA” di bawah |
| Tanpa interaksi apa pun, hanya ada logo kecil reCAPTCHA di pojok kanan bawah | reCAPTCHA v3 | [reCAPTCHA v3](https://docs.yescaptcha.com/id/tasks/recaptcha-v3.md) |
| Kotak centang “I am human”, soal gambar bertanda hCaptcha | hCaptcha | [hCaptcha](https://docs.yescaptcha.com/id/tasks/hcaptcha.md) |
| Kotak verifikasi Cloudflare tertanam di formulir; setelah dicentang halaman tidak berpindah | Cloudflare Turnstile | [Turnstile](https://docs.yescaptcha.com/id/tasks/turnstile.md) |
| Seluruh halaman menampilkan “Just a moment…” / “Checking your connection”, lalu berpindah otomatis | Halaman verifikasi Cloudflare | [Halaman verifikasi Cloudflare](https://docs.yescaptcha.com/id/tasks/cloudflare-challenge.md) |
| Puzzle atau soal memilih gambar dari Arkose Labs (misalnya “pilih gambar yang posisinya benar”) | FunCaptcha | [Pengenalan gambar FunCaptcha](https://docs.yescaptcha.com/id/tasks/funcaptcha-classification.md) |
| Gambar berisi huruf dan angka yang terdistorsi | Captcha karakter | [Pengenalan huruf dan angka pada gambar](https://docs.yescaptcha.com/id/tasks/image-to-text.md) |

## Versi reCAPTCHA

Cari `api.js` atau `enterprise.js` di panel Network:

| Skrip yang dimuat | Versi |
| --- | --- |
| `recaptcha/api.js`, tanpa parameter `render` atau dengan `render=explicit` | v2 biasa |
| Sama seperti di atas, dan URL permintaan `anchor` berisi `size=invisible` | v2 invisible, tambahkan `"isInvisible": true` pada tugas |
| `recaptcha/api.js?render=SITE_KEY` (`render` bukan `explicit`) | v3 biasa |
| `recaptcha/enterprise.js`, tanpa parameter `render` atau dengan `render=explicit` | v2 Enterprise |
| `recaptcha/enterprise.js?render=SITE_KEY` | v3 Enterprise |

Contoh:

```text
https://www.google.com/recaptcha/api.js?onload=onloadcallback&render=explicit   → v2
https://www.google.com/recaptcha/api.js?render=6LdyC2cUAAAAACGuDKpXeDorzUDWXmdqeg-xy696   → v3
https://www.google.com/recaptcha/enterprise.js?render=explicit   → v2 Enterprise
```

v2 invisible kadang baru lolos dengan jenis tugas v3, jadi coba keduanya.

Anda juga bisa menjalankan kode berikut di Console. Kode ini mencantumkan semua reCAPTCHA di halaman beserta versi, site key, URL halaman, dan fungsi callback-nya:

find-recaptcha-clients.js

```js
// Paste into the browser DevTools console on a page with reCAPTCHA, then run findRecaptchaClients().
// Lists every reCAPTCHA on the page: version (V2/V3), sitekey, page URL and the callback function.
function findRecaptchaClients() {
  if (typeof ___grecaptcha_cfg === 'undefined') return [];
  return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => {
    const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' };
    const objects = Object.entries(client).filter(([, value]) => value && typeof value === 'object');
    objects.forEach(([toplevelKey, toplevel]) => {
      const found = Object.entries(toplevel).find(
        ([, value]) => value && typeof value === 'object' && 'sitekey' in value && 'size' in value,
      );
      if (toplevel instanceof HTMLElement && toplevel.tagName === 'DIV') data.pageurl = toplevel.baseURI;
      if (found) {
        const [sublevelKey, sublevel] = found;
        data.sitekey = sublevel.sitekey;
        const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback';
        const callback = sublevel[callbackKey];
        if (!callback) {
          data.callback = null;
          data.function = null;
        } else {
          data.function = callback;
          const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join('');
          data.callback = `___grecaptcha_cfg.clients${keys}`;
        }
      }
    });
    return data;
  });
}

findRecaptchaClients();
```

Contoh hasil:

```json
[
  {
    "id": "0",
    "version": "V2",
    "sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "function": "onSuccess",
    "callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']",
    "pageurl": "https://www.google.com/recaptcha/api2/demo"
  }
]
```

Halaman demo resmi Google bisa dipakai sebagai pembanding: v2 biasa `https://www.google.com/recaptcha/api2/demo`, v2 invisible `https://www.google.com/recaptcha/api2/demo?invisible=true`.

## Turnstile dan halaman verifikasi Cloudflare

Keduanya dari Cloudflare, tetapi berbeda:

-   **Turnstile** adalah kotak verifikasi yang tertanam di formulir halaman web. Setelah verifikasi selesai, kotak diberi tanda centang dan halaman itu sendiri tidak berpindah. Halaman memuat `challenges.cloudflare.com/turnstile/v0/api.js`. Gunakan [Turnstile](https://docs.yescaptcha.com/id/tasks/turnstile.md).
-   **Halaman verifikasi Cloudflare** mengganti seluruh halaman dengan halaman pemeriksaan Cloudflare yang menampilkan “Just a moment…” dan “xx.com perlu memeriksa keamanan koneksi Anda terlebih dahulu”. Halaman ini mungkin juga berisi kotak verifikasi, dan setelah lolos Anda otomatis dialihkan ke halaman yang sebenarnya. Di source terdapat `__cf_chl_rt_tk` atau `cdn-cgi/challenge-platform`. Gunakan [Halaman verifikasi Cloudflare](https://docs.yescaptcha.com/id/tasks/cloudflare-challenge.md).

Jika permintaan dari program mendapat 403 dan “Just a moment…”, padahal browser bisa membuka halamannya langsung, kemungkinan besar Anda hanya diblokir karena sidik jari TLS. Gunakan library yang dapat meniru sidik jari TLS browser (misalnya curl\_cffi), dan permintaan akan berhasil tanpa perlu melewati halaman verifikasi.
