> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtener estado de la tarea

> Recupera el estado y el resultado de cualquier tarea async usando el poll_url devuelto por los endpoints de creación

## Descripción general

Usa este endpoint para un sondeo async unificado entre tipos de tareas como generación de video, imagen, música y 3D.

Si una respuesta de creación incluye `poll_url`, llama a esa ruta exacta. Para flujos de trabajo async más recientes, `poll_url` puede apuntar a `/v1/tasks/{id}`.

## Parámetros de ruta

<ParamField path="id" type="string" required>
  El ID de la tarea devuelto por la solicitud de creación.
</ParamField>

## Respuesta

<ResponseField name="id" type="string">
  Identificador de la tarea.
</ResponseField>

<ResponseField name="task_id" type="string">
  Alias del identificador de tarea asíncrona.
</ResponseField>

<ResponseField name="poll_url" type="string">
  URL de sondeo preferida cuando la respuesta de creación la proporciona.
</ResponseField>

<ResponseField name="status" type="string">
  Estado de la tarea, como `pending`, `processing`, `completed` o `failed`. Las tareas canceladas se representan como `failed` con `cancelled: true`.
</ResponseField>

<ResponseField name="cancelled" type="boolean">
  `true` cuando una tarea asíncrona en cola se canceló antes de la ejecución.
</ResponseField>

<ResponseField name="cancellation_status" type="string">
  Marcador de cancelación. Presente como `cancelled` cuando la cancelación se realiza correctamente.
</ResponseField>

<ResponseField name="data" type="array">
  Para tareas de imagen completadas, los resultados generados se devuelven aquí. Las tareas de imagen devuelven URL en `data[].url`.
</ResponseField>

<ResponseField name="progress" type="number">
  Valor de progreso opcional. Solo se devuelve cuando hay un progreso real disponible; usa `status` para determinar la finalización.
</ResponseField>

<ResponseField name="video_url" type="string">
  URL del recurso resultante cuando la tarea se completa y produce un video.
</ResponseField>

<ResponseField name="error" type="string">
  Mensaje de error cuando la tarea falla.
</ResponseField>

## Comportamiento de error

Si la tarea ya no existe, ha expirado o no puede resolverse mediante los detalhes do modelo de tareas async, TokenLab devuelve:

```json theme={null}
{
  "error": {
    "message": "Task not found or no longer available.",
    "type": "invalid_request_error",
    "code": "async_task_not_found"
  }
}
```

## Ejemplos

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.tokenlab.sh/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
    -H "Authorization: Bearer sk-your-api-key"
  ```
</RequestExample>

```python Python theme={null}
import requests

poll_url = "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
response = requests.get(
    f"https://api.tokenlab.sh{poll_url}",
    headers={"Authorization": "Bearer sk-your-api-key"},
)
print(response.json())
```

```javascript JavaScript theme={null}
const pollUrl = '/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
const response = await fetch(`https://api.tokenlab.sh${pollUrl}`, {
  headers: { Authorization: 'Bearer sk-your-api-key' },
});
console.log(await response.json());
```
