# getTaskResult – Lấy kết quả

> POST /getTaskResult truy vấn kết quả của tác vụ bất đồng bộ. Gọi lại mỗi 5 giây, tiếp tục chờ khi processing, đọc solution khi ready, dừng khi có lỗi; tác vụ chạy tối đa khoảng 110 giây, kết quả được giữ khoảng 10 phút, truy vấn không trừ điểm.

Source: https://docs.yescaptcha.com/vi/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` truy vấn kết quả của tác vụ bất đồng bộ. Sau khi tạo tác vụ, hãy gọi mỗi 5 giây một lần: nếu trả về `processing` thì tiếp tục chờ, khi trả về `ready` thì kết quả nằm trong `solution`, nếu trả về lỗi thì dừng. Truy vấn không trừ điểm, dù bạn gọi bao nhiêu lần.

- POST `https://api.yescaptcha.com/getTaskResult` (Endpoint quốc tế)
- POST `https://cn.yescaptcha.com/getTaskResult` (Endpoint Trung Quốc)

## Tham số yêu cầu

| Trường | Kiểu | Bắt buộc | Mô tả |
| --- | --- | --- | --- |
| `clientKey` | string | Có | `clientKey` của bạn, giống với khi tạo tác vụ |
| `taskId` | string | Có | ID tác vụ do [createTask](https://docs.yescaptcha.com/vi/api/create-task.md) trả về |

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

## Kết quả trả về

| Trường hợp | Kết quả trả về | Cần làm gì |
| --- | --- | --- |
| Đang xử lý | `errorId` là 0, `status` là `processing` | Truy vấn lại sau 5 giây |
| Hoàn tất | `errorId` là 0, `status` là `ready`, kết quả nằm trong `solution` | Lấy `solution`; các trường của nó có trong trang của từng loại tác vụ |
| Giải thất bại | `errorId` là 1, `errorCode` là `ERROR_CAPTCHA_UNSOLVABLE` | Đã tự động hoàn điểm, bạn có thể tạo lại tác vụ |
| Hết thời gian | `errorId` là 1, `errorCode` là `ERROR_TASK_TIMEOUT` | Đã tự động hoàn điểm, bạn có thể tạo lại tác vụ |
| Tác vụ không tồn tại hoặc đã hết hạn | `errorId` là 1, `errorCode` là `ERROR_TASKID_INVALID` | Ngừng truy vấn `taskId` này |

Ví dụ khi hoàn tất (reCAPTCHA v2):

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

## Quy tắc

-   **Truy vấn mỗi 5 giây một lần.** Các truy vấn lặp lại cho cùng một `taskId` trong vòng 5 giây sẽ trả về ngay `processing`; gọi dày hơn cũng không nhanh hơn.
-   **Một tác vụ được xử lý tối đa khoảng 110 giây** (một số ít loại là 180 đến 220 giây); quá thời gian sẽ trả về `ERROR_TASK_TIMEOUT` và tự động hoàn điểm. Nên đặt thời gian chờ tối đa trong chương trình khoảng 3 phút.
-   **Kết quả được giữ khoảng 10 phút**, sau đó `taskId` hết hiệu lực và trả về `ERROR_TASKID_INVALID`. Hãy dùng kết quả càng sớm càng tốt: bản thân token có thời hạn ngắn hơn (reCAPTCHA khoảng 120 giây).
-   **Gặp lỗi thì dừng.** Sau khi trả về `errorId: 1`, tiếp tục truy vấn cùng một `taskId` thì kết quả không đổi; từ lần truy vấn thứ 3 trở đi với cùng một tác vụ đã kết thúc, cuối `errorDescription` sẽ có nhắc dừng polling. `ERROR_TASKID_INVALID` được tính vào số lần lỗi của cơ chế [tự động tạm dừng](https://docs.yescaptcha.com/vi/api/rate-limits.md) (cùng một ID chỉ tính lần đầu tiên).
-   Tạo tác vụ ở endpoint nào thì truy vấn ở endpoint đó.
-   `getTaskResult` không bị ảnh hưởng bởi tự động tạm dừng: các tác vụ đã được tạo trước khi tạm dừng vẫn truy vấn bình thường.
