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.
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 |
|---|---|---|---|---|
type | string | No | - | Filter by Event type. Comma-separated values are supported. |
types[] | string | No | - | Array-style Event type filter. |
include_tool_calls | boolean | No | true | Include tool call events. |
include_thinking | boolean | No | true | Include thinking events. |
Example request
Example response
HTTP 200 OKIncremental streaming example
When the Session was created withincremental_streaming_enabled=true, the stream can include incremental events before the final agent.message.
Response fields
| Field | Description |
|---|---|
id | SSE event ID. Equals the Event ID. |
event | Event type. |
data | Filtered Forward Event JSON. The payload fields follow the Event type matrix documented by List Session Events. |
Errors
| HTTP | Type | Code | Trigger |
|---|---|---|---|
| 400 | invalid_request_error | invalid_event_cursor | Last-Event-ID 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
- Incremental streaming is controlled by the Session create request and cannot be enabled with this endpoint.
- Unknown Event types are forwarded as envelope-only events when available.
include_thinking=falsefilters thinking events and recognizable thinking deltas.include_tool_calls=falsefilters tool-use events and recognizable tool input/output deltas.