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

# Jobs

> Slow work returns a job id at once. Poll the result with get_jobs or receive it on a webhook.

A job is any slow operation: a generation, a render, a language change, reading a file (its words, its search index, its shot log), a subject read behind a crop, or a download behind an import. A tool that starts one returns a job id at once. **A job id means the work was dispatched, not that it finished.**

## When work becomes a job

A tool call answers within the time a client waits for a call, about 30 seconds. Work that cannot finish in that window is dispatched and reported as a job with its id, its place in the queue, and an estimate where past runs of the same shape agree. `inspect_media` on a file that has not been read yet answers within the window and reports that the read is preparing. `import_media` by URL answers in about 20 seconds and finishes each remaining download as its own job.

## Following a job

* `get_jobs` with ids long-polls those jobs for up to `wait_seconds`, at most 25, inside the 30 seconds some clients allow a call. A cut call loses the answer, not the job.
* `get_jobs` with no ids lists every job still running in the workspace, whoever started it, with its prompt, model, the item it will become and who started it.
* A finished generation or render carries the item's id, its URL and a link a conversation can render. A finished language change carries `timeline_id`. A job id also resolves as a ref for the item it made.
* A workspace can register a [webhook](/api/webhooks). `job.succeeded`, `job.failed` and `job.cancelled` are posted as they happen, for generation, render, dub and transcription jobs.

## Cost

`cost_credits` on a job is what it has cost so far. A generation the model fails to produce is refunded. `cancel_jobs` returns the charge for work still waiting, keeps it for what a running job finished, and refunds a job at a model provider where nothing was used. Each id reports its outcome and whether it was refunded.

## The result

A generation or a render produces an item. A language change produces a new timeline, and the job carries its id. A file read (a transcript, an index, a shot log) has nothing to fetch: the tool that started it, called again with the same input, returns the stored result.
