メインコンテンツへスキップ

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.

GET /v1/sessions/{session_id}/events/stream Server-Sent Events (SSE) で Session 内のすべてのイベントをリアルタイムに受信します。接続が確立されると、サーバーはその Session の完全なイベント履歴をプッシュし、新しいイベントが発生するたびに継続的にプッシュします。

パスパラメータ

パラメータ説明
session_idstringSession ID(sess_ プレフィックス)

ヘッダー

名称必須
AuthorizationはいBearer $QODER_PAT
Accept推奨text/event-stream

クエリパラメータ

パラメータ必須説明
after_idstringいいえこのイベント ID 以降のイベントのみ受信

リクエスト例

curl -N -X GET "https://openapi.qoder.sh/api/v1/cloud/sessions/sess_019e392c0d1e74e095d21ea4c6b41def/events/stream" \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Accept: text/event-stream"

レスポンス例

HTTP 200 OK Content-Type: text/event-stream 各イベントは SSE 標準形式に従います:
id: <event_id>
event: <event_type>
data: <json_payload>

SSE 形式の例

ユーザーメッセージ:
id: evt_019e392c0d787cfaa21bda98e06cd913
event: user.message
data: {"id": "evt_019e392c0d787cfaa21bda98e06cd913", "type": "user.message", "content": "こんにちは", "turn_id": "turn_019e392c0d787ceea6bb62943f9ac3ec", "created_at": "2026-05-18T03:40:48.888851795Z", "session_id": "sess_019e392c0d1e74e095d21ea4c6b41def", "processed_at": "2026-05-18T03:40:48.888851795Z", "schema_version": "1.0"}
Session スケジュール:
id: evt_771c1195bcbd4a07834d4ed4dd6450ca
event: session.status_rescheduled
data: {"id": "evt_771c1195bcbd4a07834d4ed4dd6450ca", "type": "session.status_rescheduled", "turn_id": "turn_019e392c0d787ceea6bb62943f9ac3ec", "created_at": "2026-05-18T03:40:50.321Z", "session_id": "sess_019e392c0d1e74e095d21ea4c6b41def", "processed_at": "2026-05-18T03:40:50.321Z", "schema_version": "1.0"}
Agent の応答:
id: evt_f8599c68e7784f2d8c490af1b3056716
event: agent.message
data: {"id": "evt_f8599c68e7784f2d8c490af1b3056716", "type": "agent.message", "content": [{"text": "メッセージを受け取りました。", "type": "text"}], "turn_id": "turn_019e392d6aad7158b377c039c6ba5db3", "created_at": "2026-05-18T03:42:41.194Z", "session_id": "sess_019e392c0d1e74e095d21ea4c6b41def", "processed_at": "2026-05-18T03:42:41.194Z", "schema_version": "1.0"}
Session アイドル(Turn 完了):
id: evt_a289470296c94e7ba8d7ea562efe5925
event: session.status_idle
data: {"id": "evt_a289470296c94e7ba8d7ea562efe5925", "type": "session.status_idle", "usage": {"input_tokens": 150, "output_tokens": 42, "cache_read_input_tokens": 0, "cache_creation_input_tokens": 0}, "status": "idle", "turn_id": "turn_019e392d6aad7158b377c039c6ba5db3", "created_at": "2026-05-18T03:42:41.195Z", "session_id": "sess_019e392c0d1e74e095d21ea4c6b41def", "stop_reason": {"type": "end_turn"}, "processed_at": "2026-05-18T03:42:41.195Z", "schema_version": "1.0"}

イベントタイプ

完全なイベントタイプ一覧:
event (SSE field)説明
user.messageユーザーが送信したメッセージ
session.status_rescheduledAgent が処理スケジュールされた
span.model_request_startモデル推論リクエスト開始
agent.thinkingAgent 思考中(内部推論)
agent.messageAgent が生成した応答メッセージ
session.status_idle処理完了、Session がアイドルに戻った
span.model_request_endモデル推論リクエスト終了
session.error処理中にエラー発生
terminatedTurn が終了した

典型的なイベントストリームのライフサイクル

1 回の完全な対話 Turn で、通常は以下の順でイベントを受信します:
  1. user.message - ユーザーメッセージがキューに入る
  2. session.status_rescheduled - Agent がスケジュールされる
  3. span.model_request_start - モデル呼び出し開始
  4. agent.thinking - Agent の内部推論
  5. agent.message - Agent が応答を生成
  6. session.status_idle - Turn 完了、アイドルに戻る(usage 統計を含む)
  7. span.model_request_end - モデル呼び出し終了

クライアント実装の推奨事項

  • EventSource API または SSE をサポートする HTTP クライアントを使用
  • session.status_idle イベントを監視して、対話 1 ラウンドの終了を判定
  • turn_id フィールドで同一ラウンドの全イベントを関連付け
  • 接続はクライアントが切断するまで保持され、サーバーは新しいイベントをプッシュし続けます

エラーレスポンス

HTTPtype説明
401authentication_errorPAT が無効または期限切れ
404not_found_errorSession が存在しない