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

# Stream session events

> Subscribe to a Forward session event stream with SSE.

`GET /api/v1/forward/sessions/{session_id}/events/stream`

Streams session events as Server-Sent Events. The `data` payload uses the same Forward filtering model as the event history endpoint. New integrations that need streaming output should subscribe with `event_deltas[]`.

## Headers

| Header          | Required | Description                 |
| --------------- | -------- | --------------------------- |
| `Authorization` | Yes      | `Bearer <PAT>`              |
| `Accept`        | Yes      | `text/event-stream`         |
| `Last-Event-ID` | No       | Resume after this Event ID. |

## Path parameters

| Parameter    | Type   | Required | Description |
| ------------ | ------ | -------- | ----------- |
| `session_id` | string | Yes      | Session ID. |

## Query parameters

| Parameter            | Type    | Required | Default | Description                                                                                                                                                                                                                                                      |
| -------------------- | ------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `event_deltas[]`     | string  | No       | -       | Subscribe to streaming delta events for the specified public event types. Supports repeated parameters. Allowed values: `agent.message`, `agent.thinking`. See [Event delta streaming](/cloud-agents/api/forward/sessions/data-structure#event-delta-streaming). |
| `include_tool_calls` | boolean | No       | `true`  | Include tool call events.                                                                                                                                                                                                                                        |
| `include_thinking`   | boolean | No       | `true`  | Include thinking events.                                                                                                                                                                                                                                         |

## Example request

```bash theme={null}
curl -N -X GET 'https://api.qoder.com/api/v1/forward/sessions/sess_xxx/events/stream' \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Accept: text/event-stream"
```

Subscribe to text and thinking streaming delta events:

```bash theme={null}
curl -N -G 'https://api.qoder.com/api/v1/forward/sessions/sess_xxx/events/stream' \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Accept: text/event-stream" \
  --data-urlencode 'event_deltas[]=agent.message' \
  --data-urlencode 'event_deltas[]=agent.thinking'
```

## Example response

**HTTP 200 OK**

```text theme={null}
id: evt_xxx
event: agent.message
data: {"id":"evt_xxx","type":"agent.message","session_id":"sess_xxx","content":[{"type":"text","text":"Here is the analysis result."}],"processed_at":"2026-06-22T11:00:03Z"}

```

## Event delta streaming example

When `event_deltas[]` is provided, the stream includes `event_start` and `event_delta` frames before the final buffered event:

```text theme={null}
id: evt_xxx
event: event_start
data: {"id":"evt_xxx","type":"event_start","session_id":"sess_xxx","event":{"id":"evt_xxx","type":"agent.message"}}

id: evt_xxx
event: event_delta
data: {"id":"evt_xxx","type":"event_delta","session_id":"sess_xxx","event_id":"evt_xxx","delta":{"type":"content_delta","index":0,"content":{"type":"text","text":"Here"}}}

```

## Response fields

| Field   | Description                                                                                                                                                                                                                                              |
| ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`    | SSE event ID. Equals the Event ID.                                                                                                                                                                                                                       |
| `event` | Event type.                                                                                                                                                                                                                                              |
| `data`  | Filtered Forward Event JSON. Standard public events follow the Event `type` matrix documented by List Session Events; event delta stream frames follow [Event delta streaming](/cloud-agents/api/forward/sessions/data-structure#event-delta-streaming). |

## Errors

| HTTP | Type                   | Code                      | Trigger                                                                                     |
| ---- | ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------- |
| 404  | `not_found_error`      | -                         | `Last-Event-ID` references an Event that does not exist or does not belong to this Session. |
| 401  | `authentication_error` | `authentication_required` | PAT invalid or expired.                                                                     |
| 404  | `not_found_error`      | `session_not_found`       | Session does not exist.                                                                     |

## Notes

* `event_deltas[]` is the recommended way to enable streaming; when this parameter is not provided, only standard public events are returned.
* `incremental_streaming_enabled` is a legacy streaming toggle retained for backward compatibility. If a Session was created with `incremental_streaming_enabled=true`, it uses legacy streaming and `event_deltas[]` will not take effect on that Session.
* Unknown Event types are forwarded as envelope-only events when available.
* `include_thinking=false` filters thinking events, legacy thinking deltas, and new stream `agent.thinking` event start signals and `delta.content.type=thinking` fragments.
* `include_tool_calls=false` filters tool-use events and legacy tool input/output deltas.

## Related

<CardGroup cols={2}>
  <Card title="Create a session" icon="plus" href="/cloud-agents/api/forward/sessions/create" />

  <Card title="List session events" icon="list" href="/cloud-agents/api/forward/sessions/list-events" />
</CardGroup>
