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

# Subscribe to tasks from your backend

> Subscribe to run progress, stream AI output, and react to task status changes from your backend code or other tasks.

**Subscribe to runs from your server-side code or other tasks using async iterators.** Get status updates, metadata changes, and streamed data without polling.

## What's available

| Category | What it does | Guide |
| - | - | - |
| **Run updates** | Subscribe to run status, metadata, and tag changes | [Run updates](https://trigger.dev/docs/realtime/backend/subscribe.md) |
| **Streaming** | Read AI output, file chunks, or any continuous data from tasks | [Streaming](https://trigger.dev/docs/realtime/backend/streams.md) |

> [!NOTE]
>
> To learn how to emit streams from your tasks, see [Streaming data from tasks](https://trigger.dev/docs/tasks/streams.md).

## Authentication

All backend functions support both server-side and client-side authentication:

* **Server-side**: Use your API key (automatically handled in tasks)
* **Client-side**: Generate a Public Access Token with appropriate scopes

See our [authentication guide](https://trigger.dev/docs/realtime/auth.md) for detailed information on creating and using tokens.

## Quick example

Subscribe to a run:

```ts theme={"theme":"css-variables"}
import { runs, tasks } from "@trigger.dev/sdk";

// Trigger a task
const handle = await tasks.trigger("my-task", { some: "data" });

// Subscribe to real-time updates
for await (const run of runs.subscribeToRun(handle.id)) {
  console.log(`Run ${run.id} status: ${run.status}`);
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.