# Pengenalan gambar hCaptcha

> Kenali tantangan gambar hCaptcha dengan YesCaptcha (HCaptchaClassification): pemilihan kisi, klik posisi tertentu, seret ke posisi tertentu, dan pertanyaan animasi; sinkron, dan tidak ada pemotongan poin jika target tidak ditemukan.

Source: https://docs.yescaptcha.com/id/tasks/hcaptcha-classification/ · 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/tasks/hcaptcha-classification/

`HCaptchaClassification` mengenali tantangan gambar yang muncul di hCaptcha: kirim pertanyaan dan gambarnya, lalu Anda mendapat hasil berupa gambar mana yang harus dipilih, posisi mana yang harus diklik, atau dari mana ke mana harus menyeret; program Anda yang menjalankan aksinya di browser. Jenis ini **tidak mengembalikan token**. Responsnya sinkron, biayanya 8 poin (≈ $1.20 / 1k) per permintaan, dan tidak ada pemotongan poin jika target tidak ditemukan (hasil kosong).

> **Tips:** Jika tidak ingin menulis logika klik sendiri, gunakan [ekstensi browser](https://docs.yescaptcha.com/id/extension.md); semua jenis pertanyaan ini didukung oleh ekstensi. Jika Anda membutuhkan token, bukan posisi klik, gunakan [hCaptcha](https://docs.yescaptcha.com/id/tasks/hcaptcha.md).

- POST `https://api.yescaptcha.com/createTask` (Endpoint global)
- POST `https://cn.yescaptcha.com/createTask` (Endpoint Tiongkok)

## Jenis tugas dan harga

| Jenis tugas | Harga | Mode | Catatan |
| --- | --- | --- | --- |
| `HCaptchaClassification` | $1.20 / 1k; 8 poin/tugas · ¥8 / 1k | Sinkron | Tidak ada pemotongan poin jika target tidak ditemukan |

Harga dalam dolar AS adalah perkiraan dengan kurs US$1 ≈ ¥6.67; tugas ditagih dalam poin.

## Parameter permintaan

| Kolom | Tipe | Wajib | Deskripsi |
| --- | --- | --- | --- |
| `type` | string | Ya | Jenis tugas; lihat "Jenis tugas dan harga" di halaman ini |
| `queries` | array | Ya | Daftar gambar soal dalam encoding Base64, sesuai urutan di halaman (9 gambar kecil untuk kisi 3×3) |
| `question` | string | Tidak | Pertanyaan lengkap seperti yang ditampilkan di halaman (disarankan bahasa Mandarin Sederhana atau Inggris), misalnya `Please click each image containing a bicycle`. Kirim minimal salah satu dari `question` dan `anchors`; disarankan mengirim keduanya |
| `anchors` | array | Tidak | Daftar gambar contoh dalam encoding Base64 yang ditampilkan di samping pertanyaan; wajib dikirim untuk pertanyaan yang memiliki gambar contoh |

-   Kirim `question` persis seperti kalimat lengkap yang tampil di halaman; tidak perlu diterjemahkan, tetapi disarankan mengganti bahasa hCaptcha ke Mandarin Sederhana atau Inggris. Pertanyaan baru umumnya segera didukung, dan kategori yang benar-benar baru didukung dalam 3 hari kerja.

> **Perhatian:** Jika di pojok kanan atas pertanyaan terdapat gambar contoh kecil, masukkan gambar tersebut ke `anchors`. Pertanyaan yang hanya bisa dijawab dengan melihat gambar contoh tidak dapat dikenali tanpa `anchors`.

## Pemilihan kisi 3×3

Pertanyaannya berbunyi “Please click each image containing …” dengan 9 gambar kecil di bawahnya. Masukkan Base64 dari 9 gambar kecil tersebut ke `queries` secara berurutan:

POST https://api.yescaptcha.com/createTask

```json
{
  "clientKey": "YOUR_CLIENT_KEY",
  "task": {
    "type": "HCaptchaClassification",
    "question": "Please click each image containing a bicycle",
    "queries": ["BASE64_IMAGE_1", "BASE64_IMAGE_2"]
  }
}
```

Hasil:

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "objects": [true, false, false, true, true, false, true, true, false],
    "top_k": [0, 3, 4, 6, 7],
    "confidences": [1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0]
  }
}
```

`objects` dan `top_k` memiliki arti yang sama: `objects` menunjukkan apakah tiap gambar adalah target, sedangkan `top_k` berisi nomor urut gambar target (dimulai dari 0). Cukup klik gambar-gambar tersebut.

## Klik posisi tertentu

Pertanyaannya berbunyi “Please click …”, dengan satu gambar besar di bawahnya, dan Anda perlu mengklik satu (atau beberapa) posisi pada gambar itu.

1.  Ambil `question` dari halaman; jika ada gambar contoh kecil, masukkan ke `anchors`.
2.  Masukkan satu gambar ke `queries`: sebaiknya gambar asli yang diekspor langsung dari canvas (disarankan dikonversi ke JPG). Jika hanya bisa mengambil tangkapan layar, tangkap area gambar besar di dalam kotak merah di bawah ini, jangan lebih dan jangan kurang.
3.  `box` pada hasil adalah koordinat yang harus diklik, berurutan x1, y1, x2, y2, …, dengan titik asal di pojok kiri atas gambar yang diunggah.
4.  Jika ukuran gambar yang diunggah berbeda dengan ukuran tampilannya di halaman, lakukan konversi: x di halaman = x hasil × lebar tampilan ÷ lebar gambar yang diunggah (y sama). Contoh: hasil x = 769, lebar tampilan canvas 350, lebar gambar yang diunggah 1000, maka posisi yang diklik di halaman adalah 769 × 350 ÷ 1000 ≈ 269.

![Area tangkapan layar untuk soal klik: teks pertanyaan sebagai question, tiga gambar contoh kecil sebagai anchors, gambar besar di bawahnya sebagai queries](https://docs.yescaptcha.com/_astro/hcaptcha-click-areas.DCBFUFPf_Z123RnJ.webp)

POST https://api.yescaptcha.com/createTask

```json
{
  "clientKey": "YOUR_CLIENT_KEY",
  "task": {
    "type": "HCaptchaClassification",
    "question": "Please click on the entity present in the sample image.",
    "anchors": ["BASE64_ANCHOR_1", "BASE64_ANCHOR_2", "BASE64_ANCHOR_3"],
    "queries": ["BASE64_OF_THE_BIG_IMAGE"]
  }
}
```

Hasil:

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "box": ["221", "213"]
  }
}
```

Jika ada beberapa target yang harus diklik, `box` berisi beberapa pasang koordinat secara berurutan: `["221", "213", "340", "118", ...]`.

## Seret ke posisi tertentu

Pertanyaannya berbunyi “Drag … to …”, dan Anda perlu menyeret potongan di sebelah kanan ke posisi yang sesuai pada gambar.

1.  Ambil `question` dari halaman.
2.  Ambil satu tangkapan layar dan masukkan ke `queries`; gambar harus memuat **sekaligus** potongan yang akan diseret dan posisi tujuannya, dengan setiap sisi gambar minimal 260 piksel.
3.  Setiap item di `box` pada hasil adalah satu kali seretan: `start` adalah posisi potongan, `end` adalah posisi tujuan. Jika ada beberapa potongan, seret satu per satu.

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "type": "drag",
    "box": [
      {
        "start": [644, 218],
        "end": [239, 315]
      }
    ]
  }
}
```

![Contoh hasil pengenalan soal seret: Start adalah potongan yang diseret, End adalah posisi tujuan](https://docs.yescaptcha.com/_astro/hcaptcha-drag-result.vEj4iyUz_1Ou9zz.webp)

Jika yang Anda peroleh adalah data protokol (gambar potongan, koordinat potongan, dan gambar latar besar) dan bukan tangkapan layar, tempelkan dulu potongan ke gambar latar sesuai koordinatnya hingga tampilannya sama dengan tangkapan layar halaman, lalu kirim.

## Pertanyaan animasi

Jika gambar pertanyaan berupa animasi, masukkan Base64 animasi (GIF atau format lain) ke `queries`. Disarankan durasi animasi minimal 3 detik, idealnya 5 sampai 6 detik, dengan frame rate sekitar 12 FPS.

## Laporan dan pengembalian poin

Jika verifikasi gagal setelah klik, Anda dapat melaporkannya dengan [report](https://docs.yescaptcha.com/id/api/report.md) dalam 1 jam; pengembalian poin setelah laporan diselesaikan sekitar 24 jam kemudian. Aturannya ada di [Penagihan dan pengembalian poin](https://docs.yescaptcha.com/id/getting-started/billing.md).

## Tutorial terkait

-   [Klik gambar hCaptcha dengan Selenium](https://docs.yescaptcha.com/id/guides/hcaptcha-click-selenium.md)
