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

# Async jobs and polling

> Understand task-based writes, terminal task states, and which resources hold durable state.

# Async jobs and polling

Most write operations are asynchronous.

## What returns immediately

These endpoints accept work and return IDs you can poll:

* `POST /projects`
* `POST /projects/{projectId}/tasks/stem-separation`
* `POST /projects/{projectId}/tasks/lyrics-sync`
* `POST /projects/{projectId}/exports`

## What to poll

* Poll `GET /tasks/{taskId}` for execution status and hydrated task output.
* Read `GET /projects/{projectId}` for long-lived project state.
* Read `GET /exports/{exportId}` for fresh export download URLs.

## Practical polling model

1. Start a mutation and store the returned IDs.
2. Poll `GET /tasks/{taskId}` until the task reaches a terminal state.
3. Re-read the durable resource by ID instead of trusting stale cached state.
4. For downloads, fetch `GET /exports/{exportId}` when you are ready to use the URL.

## Why this matters

* Task status is the execution timeline.
* Project state is the durable source of truth.
* Export download URLs should be treated as refreshable rather than permanent.
