# getTaskResult — mengambil hasil

> POST /getTaskResult memeriksa hasil tugas asinkron. Lakukan polling setiap 5 detik, tunggu terus saat processing, ambil solution saat ready, dan berhenti jika terjadi error; tugas berjalan hingga sekitar 110 detik, hasil disimpan sekitar 10 menit, dan pemeriksaan tidak memotong poin.

Source: https://docs.yescaptcha.com/id/api/get-task-result/ · 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/api/get-task-result/

`getTaskResult` memeriksa hasil tugas asinkron. Panggil setiap 5 detik setelah tugas dibuat: jika mengembalikan `processing`, tunggu terus; jika `ready`, hasilnya ada di `solution`; jika mengembalikan error, berhenti. Pemeriksaan tidak memotong poin, berapa pun jumlah pemeriksaannya.

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

## Parameter permintaan

| Field | Tipe | Wajib | Keterangan |
| --- | --- | --- | --- |
| `clientKey` | string | Ya | ClientKey Anda, sama dengan yang digunakan saat membuat tugas |
| `taskId` | string | Ya | ID tugas yang dikembalikan oleh [createTask](https://docs.yescaptcha.com/id/api/create-task.md) |

```json
{
  "clientKey": "YOUR_CLIENT_KEY",
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
```

## Hasil yang dikembalikan

| Kondisi | Respons | Yang harus dilakukan |
| --- | --- | --- |
| Sedang diproses | `errorId` bernilai 0, `status` bernilai `processing` | Periksa lagi 5 detik kemudian |
| Selesai | `errorId` bernilai 0, `status` bernilai `ready`, hasil ada di `solution` | Ambil `solution`; field-nya dijelaskan di halaman masing-masing jenis tugas |
| Gagal dikenali | `errorId` bernilai 1, `errorCode` bernilai `ERROR_CAPTCHA_UNSOLVABLE` | Poin sudah dikembalikan otomatis, Anda dapat membuat tugas baru |
| Timeout | `errorId` bernilai 1, `errorCode` bernilai `ERROR_TASK_TIMEOUT` | Poin sudah dikembalikan otomatis, Anda dapat membuat tugas baru |
| Tugas tidak ada atau sudah kedaluwarsa | `errorId` bernilai 1, `errorCode` bernilai `ERROR_TASKID_INVALID` | Berhenti memeriksa `taskId` ini |

Contoh saat selesai (reCAPTCHA v2):

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..."
  }
}
```

## Aturan

-   **Periksa setiap 5 detik.** Pemeriksaan berulang untuk `taskId` yang sama dalam 5 detik langsung mengembalikan `processing`; memeriksa lebih sering tidak membuat hasil lebih cepat.
-   **Tugas diproses paling lama sekitar 110 detik** (sebagian kecil jenis 180 sampai 220 detik). Jika melewati batas, dikembalikan `ERROR_TASK_TIMEOUT` dan poin dikembalikan otomatis. Disarankan menetapkan batas tunggu di program sekitar 3 menit.
-   **Hasil disimpan sekitar 10 menit**, setelah itu `taskId` tidak berlaku dan mengembalikan `ERROR_TASKID_INVALID`. Gunakan hasil sesegera mungkin: masa berlaku token sendiri lebih singkat (reCAPTCHA sekitar 120 detik).
-   **Berhenti jika terjadi error.** Setelah `errorId: 1` dikembalikan, memeriksa `taskId` yang sama lagi tidak akan mengubah hasil; mulai pemeriksaan ke-3 untuk tugas yang sudah berakhir, bagian akhir `errorDescription` akan menyarankan untuk berhenti polling. `ERROR_TASKID_INVALID` dihitung dalam jumlah error untuk [jeda otomatis](https://docs.yescaptcha.com/id/api/rate-limits.md) (ID yang sama hanya dihitung pertama kali).
-   Periksa di endpoint yang sama dengan tempat tugas dibuat.
-   `getTaskResult` tidak terpengaruh jeda otomatis: tugas yang dibuat sebelum jeda tetap dapat diperiksa seperti biasa.
