# Tâches asynchrones

> Suivez l'état des opérations asynchrones comme la génération de vidéos via les points d'accès dédiés aux tâches.

- Canonical: https://tchavi.com/fr/docs/jobs

---


Certains points d'accès — actuellement la génération de vidéos — s'exécutent de manière asynchrone. Ils répondent immédiatement avec un `id` de tâche et vous suivez leur achèvement via ces points d'accès.

## Récupérer une tâche

<Endpoint method="GET" path="/v1/jobs/:id" />

Renvoie l'enregistrement complet de la tâche. La forme de la charge utile dépend de `status` :

- `pending` / `processing` — pas encore de `output` ; `tchavi.credits_used` est renseigné.
- `completed` — `output.video_url`, `output.duration`, `output.resolution`, `output.file_size_mb`, `output.url_expires_at`.
- `failed` — `error.message`, `error.code`, et `tchavi.credits_refunded` (les crédits débités sont restitués automatiquement).

## Lister les tâches

<Endpoint method="GET" path="/v1/jobs" />

Liste les tâches de l'appelant, les plus récentes en premier. Paramètres de requête : `status` (filtre), `limit` (1–50, par défaut 20), `offset` (par défaut 0).

## Exemple

<CodeTabs>

```tchavi
import Tchavi from '@tchavi/sdk';
const client = new Tchavi({ apiKey: 'YOUR_API_KEY' });

// Récupérer une tâche spécifique
const job = await client.jobs.retrieve('job_abc123');
console.log(job.status, job.output?.video_url);

// Lister les 10 tâches terminées les plus récentes
const { data } = await client.jobs.list({ status: 'completed', limit: 10 });
for (const j of data) {
  console.log(j.created_at, j.model, j.output?.video_url);
}
```

```curl
# Récupérer
curl https://tchavi.com/api/v1/jobs/JOB_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

# Lister (les 10 tâches terminées les plus récentes)
curl "https://tchavi.com/api/v1/jobs?status=completed&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

</CodeTabs>

Voir [Génération de vidéos](/fr/docs/video-generation) pour le point d'accès qui produit ces tâches.

