# getTaskResult — obtener el resultado

> POST /getTaskResult consulta el resultado de una tarea asíncrona: consulta cada 5 segundos, sigue esperando con processing, lee solution con ready y detén la consulta periódica si hay un error; una tarea tarda hasta unos 110 segundos, el resultado se conserva unos 10 minutos y las consultas no cobran puntos.

Source: https://docs.yescaptcha.com/es/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` consulta el resultado de una tarea asíncrona. Después de crear la tarea, llámalo cada 5 segundos: si devuelve `processing`, sigue esperando; si devuelve `ready`, el resultado está en `solution`; si devuelve un error, detente. Las consultas no cobran puntos, sin importar cuántas hagas.

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

## Parámetros de la solicitud

| Campo | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `clientKey` | string | Sí | Tu ClientKey, el mismo que usaste al crear la tarea |
| `taskId` | string | Sí | El ID de tarea que devuelve [createTask](https://docs.yescaptcha.com/es/api/create-task.md) |

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

## Respuesta

| Situación | Respuesta | Qué hacer |
| --- | --- | --- |
| En proceso | `errorId` es 0, `status` es `processing` | Consulta de nuevo en 5 segundos |
| Completada | `errorId` es 0, `status` es `ready`, el resultado está en `solution` | Lee `solution`; sus campos están en la página de cada tipo de tarea |
| No se pudo resolver | `errorId` es 1, `errorCode` es `ERROR_CAPTCHA_UNSOLVABLE` | Ya se reembolsaron los puntos automáticamente; puedes crear una tarea nueva |
| Tiempo agotado | `errorId` es 1, `errorCode` es `ERROR_TASK_TIMEOUT` | Ya se reembolsaron los puntos automáticamente; puedes crear una tarea nueva |
| La tarea no existe o expiró | `errorId` es 1, `errorCode` es `ERROR_TASKID_INVALID` | Deja de consultar este `taskId` |

Ejemplo de tarea completada (reCAPTCHA v2):

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

## Reglas

-   **Consulta cada 5 segundos.** Las consultas repetidas del mismo `taskId` dentro de 5 segundos devuelven `processing` de inmediato; consultar con más frecuencia no acelera el resultado.
-   **Una tarea se procesa como máximo unos 110 segundos** (180 a 220 segundos en unos pocos tipos). Si se agota el tiempo, devuelve `ERROR_TASK_TIMEOUT` y se reembolsan los puntos automáticamente. Te recomendamos fijar en tu código un tiempo máximo de espera de unos 3 minutos.
-   **El resultado se conserva unos 10 minutos**; después, el `taskId` deja de ser válido y devuelve `ERROR_TASKID_INVALID`. Usa el resultado cuanto antes: el token en sí caduca antes (unos 120 segundos en reCAPTCHA).
-   **Si hay un error, detente.** Después de `errorId: 1`, seguir consultando el mismo `taskId` no cambia el resultado; a partir de la tercera consulta de una tarea ya finalizada, el final de `errorDescription` te indica que detengas la consulta periódica. `ERROR_TASKID_INVALID` cuenta como error para la [pausa automática](https://docs.yescaptcha.com/es/api/rate-limits.md) (con el mismo ID solo cuenta la primera vez).
-   Consulta en el mismo endpoint en el que creaste la tarea.
-   `getTaskResult` no se ve afectado por la pausa automática: las tareas creadas antes de la pausa se pueden consultar con normalidad.
