SSE で Forward セッションのイベントストリームを購読します。
GET /api/v1/forward/sessions/{session_id}/events/stream
Server-Sent Events でセッションイベントをストリーミングします。ストリーミング出力が必要な新規統合では event_deltas[] で購読してください。
Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <PAT または SAT> |
Accept | Yes | text/event-stream |
Last-Event-ID | No | この Event ID の後から再開します。 |
X-Qoder-Beta | thinking デルタを購読する場合 | event_deltas[]=agent.thinking を指定する場合は thinking-event-stream-delta-2026-07-20 を設定します。 |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id | string | Yes | Session ID。 |
Query parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
event_deltas[] | string | No | - | 指定されたパブリックイベントタイプのストリーミングデルタイベントを購読します。繰り返しパラメータをサポートします。許可値: agent.message、agent.thinking。Event delta streaming を参照。 |
include_tool_calls | boolean | No | true | ツール呼び出しイベントを含めるかどうか。 |
include_thinking | boolean | No | true | thinking イベントを含めるかどうか。 |
Example request
Example response
HTTP 200 OK
Event delta streaming の例
event_deltas[] を使用してストリーミングデルタイベントを購読した場合、ストリームには event_start と event_delta フレームが含まれます。
モデル使用量イベントの例
Response fields
| Field | Description |
|---|---|
id | SSE イベント ID。Event ID と等しくなります。 |
event | Event の種類。 |
data | フィルタリング済みの Forward Event JSON。標準パブリックイベントは List Session Events に記載された Event type マトリクスに従います。event delta ストリームフレームは Event delta streaming を参照してください。 |
接続の切断と再接続
SSE 接続は、ゲートウェイのタイムアウトやサーバーの再起動などにより切断されることがあります。サーバーは接続が長時間維持されることを保証しないため、クライアント側で再接続とリトライを実装してください。
-
最後に受信した SSE frame の
id(Event ID)を継続的に記録します。 -
切断後、その ID を
Last-Event-IDリクエストヘッダーに指定して再接続すると、続きから購読を再開でき、Event の取りこぼしを防げます。 -
再接続時に
Last-Event-IDを省略すると、接続時点のイベントストリーム末尾から配信を開始し、接続確立後に新しく生成された Event のみを受信します。履歴 Event は再送されません。切断中の Event を取得するには、先に Session Event の一覧取得で履歴をページ単位で取得してから、SSE 接続を確立してストリームを継続してください。 -
2026 年 8 月 24 日以降、
Last-Event-IDを指定せずに接続した場合、サーバーは接続時点のイベントストリーム末尾から配信を開始し、履歴 Event を再送しません。推奨される接続方法は、履歴 Event を List Events でページ単位に取得し、リアルタイム Event を SSE で受信し、切断時は最後に受信した Event ID をLast-Event-IDに指定して再接続し、Event ID に基づいて冪等に処理することです。
Errors
| HTTP | Type | Code | Trigger |
|---|---|---|---|
| 400 | invalid_request_error | invalid_event_cursor | Last-Event-ID は現在の Session には使用できません。 |
| 404 | not_found_error | event_cursor_not_found | Session は存在しますが、Last-Event-ID に対応する Event は利用できません。 |
| 401 | authentication_error | authentication_required | PAT または SAT が無効または期限切れ。 |
| 404 | not_found_error | session_not_found | Session が存在しない。 |
Notes
event_deltas[]は推奨のストリーミング方法です。このパラメータが提供されない場合、標準のパブリックイベントのみ返されます。event_cursor_not_foundのエラーメッセージはEvent '<event_id>' was not found.です。このエラーを受け取った場合は、イベント履歴を再クエリして新しい接続を確立してください。Session が削除されたことを意味するものではありません。agent.thinkingの増分ストリーミングは現在 Beta 機能です。購読するリクエストにはX-Qoder-Beta: thinking-event-stream-delta-2026-07-20を指定する必要があり、Beta 期間中に動作が変更される場合があります。- モデル呼び出しが完了するたびに、ストリームは
span.model_request_endモデル使用量イベントを出力します。model_usage.creditsはその呼び出し単体の増分使用量です。Session の累積使用量は Get Session からusage.total_creditsを読み取ってください。フィールドの詳細はデータ構造ドキュメントのモデル使用量イベントを参照してください。 - 不明な Event タイプは利用可能な場合、エンベロープのみのイベントとして転送されます。
include_thinking=falseは thinking イベント、レガシー thinking デルタ、および新しいストリームagent.thinkingevent start シグナルとdelta.content.type=thinkingフラグメントをフィルタリングします。include_tool_calls=falseはツール使用イベントとレガシーツール input/output デルタをフィルタリングします。

