メインコンテンツへスキップ
GET /v1/sessions/{session_id}/events Session 内のイベント一覧を時系列順(昇順)で取得します。カーソルページネーションをサポートします。 リクエストの Accept ヘッダーに text/event-stream が含まれる場合、このルートは SSE ストリーミングに切り替わり、ページネーション付き JSON 形式を返しません。リスト形式のレスポンスが必要な場合は Accept: application/json を使用するか、SSE メディアタイプを省略してください。

パスパラメータ

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

ヘッダー

名称必須
AuthorizationはいBearer $QODER_PAT

クエリパラメータ

パラメータ必須説明
limitintegerいいえ返却件数の上限、デフォルト 20
after_idstringいいえカーソルページネーション:このイベント ID 以降のレコードを返す
before_idstringいいえカーソルページネーション:このイベント ID 以前のレコードを返す
orderstringいいえソート方向:asc(デフォルト、時系列順)または desc(逆時系列順)
typestringいいえイベントタイプでフィルタリング。値は返却イベントの type フィールドに対応(例: user.messageagent.messageagent.artifact_delivered)。カンマ区切りで複数指定可能(例: type=user.message,agent.message)。キーの繰り返しも可能(例: type=a&type=b)。省略時は全タイプを返却
types[]stringいいえtype の配列形式の代替。複数の types[]=… パラメータで複数のイベントタイプをフィルタリング(例: types[]=user.message&types[]=agent.message
created_at[gte]stringいいえこの時刻以降(含む)に作成されたイベントを返却。RFC 3339 形式
created_at[lte]stringいいえこの時刻以前(含む)に作成されたイベントを返却。RFC 3339 形式

リクエスト例

curl -X GET "https://api.qoder.com/api/v1/cloud/sessions/sess_019e392c0d1e74e095d21ea4c6b41def/events?limit=5" \
  -H "Authorization: Bearer $QODER_PAT"

イベントタイプによるフィルタリング

# 単一タイプ — Agent ファイル配信イベントのみ
curl -X GET "https://api.qoder.com/api/v1/cloud/sessions/sess_019e392c0d1e74e095d21ea4c6b41def/events?type=agent.artifact_delivered&limit=100" \
  -H "Authorization: Bearer $QODER_PAT"

# 複数タイプ(カンマ区切り)
curl -X GET "https://api.qoder.com/api/v1/cloud/sessions/sess_019e392c0d1e74e095d21ea4c6b41def/events?type=user.message,agent.message&limit=100" \
  -H "Authorization: Bearer $QODER_PAT"

# 複数タイプ(配列構文)
curl -X GET "https://api.qoder.com/api/v1/cloud/sessions/sess_019e392c0d1e74e095d21ea4c6b41def/events?types[]=user.message&types[]=agent.message&limit=100" \
  -H "Authorization: Bearer $QODER_PAT"

レスポンス例

HTTP 200 OK
{
  "data": [
    {
      "id": "evt_019e392c0d787cfaa21bda98e06cd913",
      "type": "user.message",
      "content": "こんにちは、テストメッセージです",
      "session_id": "sess_019e392c0d1e74e095d21ea4c6b41def",
      "turn_id": "turn_019e392c0d787ceea6bb62943f9ac3ec",
      "schema_version": "1.0",
      "created_at": "2026-05-18T03:40:48.888851795Z",
      "processed_at": "2026-05-18T03:40:48.888851795Z"
    },
    {
      "id": "evt_771c1195bcbd4a07834d4ed4dd6450ca",
      "type": "session.status_running",
      "session_id": "sess_019e392c0d1e74e095d21ea4c6b41def",
      "turn_id": "turn_019e392c0d787ceea6bb62943f9ac3ec",
      "schema_version": "1.0",
      "created_at": "2026-05-18T03:40:50.321Z",
      "processed_at": "2026-05-18T03:40:50.321Z"
    }
  ],
  "first_id": "evt_019e392c0d787cfaa21bda98e06cd913",
  "last_id": "evt_771c1195bcbd4a07834d4ed4dd6450ca",
  "has_more": true
}

イベントタイプリファレンス

type説明固有フィールド
user.messageユーザーメッセージcontent (string)
agent.tool_useAgent の組み込みツール呼び出しname, input, evaluated_permission
agent.tool_resultツール実行結果tool_use_id, content (ContentBlock[]), is_error
agent.custom_tool_useAgent がクライアント側カスタムツールをリクエストname, input
agent.mcp_tool_useAgent が MCP ツールを呼び出しname, input, mcp_server_name, evaluated_permission
agent.mcp_tool_resultMCP ツール実行結果tool_use_id, content (ContentBlock[]), is_error
agent.messageAgent の応答content (ContentBlock[])
agent.thinkingAgent の思考-
user.interruptユーザーが Agent 実行を中断-
user.tool_confirmationユーザーが保留中のツール呼び出しを承認または拒否tool_use_id, result, 任意の deny_message
user.custom_tool_resultユーザー/クライアントがカスタムツール結果を返却custom_tool_use_id, content (ContentBlock[])
user.define_outcomeユーザー定義のアウトカムイベントイベント固有のペイロード
session.status_runningSession が実行を開始-
session.status_idleSession がアイドルに戻ったusage, status, stop_reason
session.errorSession 実行エラーerror, details, retry_status
agent.artifact_deliveredAgent が DeliverArtifacts ツールでファイルを配信file_id, original_filename, size, content_type
session.thread_created新しい子スレッドが作成された(Managed Agents)parent_thread_id, agent_id, agent_version, agent_name, role, created_by_tool_use_id
session.thread_status_running子スレッドが実行を開始した(Managed Agents)agent_name, status
session.thread_status_idle子スレッドがアイドルに戻った(Managed Agents)status, stop_reason
session.thread_status_terminated子スレッドがアーカイブまたは終了された(Managed Agents)status, stop_reason
agent.thread_message_sentスレッド間メッセージが送信された(Managed Agents)direction, content, from_session_thread_id, to_session_thread_id
agent.thread_message_receivedスレッド間メッセージが受信された(Managed Agents)direction, content, is_error, from_session_thread_id, to_session_thread_id
履歴エンドポイントは agent.rawagent.systemturn_completedturn_cancelledturn_failedterminatedspan.model_request_startspan.model_request_endpending_action.* などの内部イベントタイプをフィルタリングして除外します。

agent.messagecontent 形式

{
  "content": [
    {
      "type": "text",
      "text": "Agent の応答テキスト内容"
    }
  ]
}

session.status_idle の追加フィールド

ターン完了時:
{
  "type": "session.status_idle",
  "status": "idle",
  "usage": {
    "input_tokens": 150,
    "output_tokens": 42,
    "cache_read_input_tokens": 0,
    "cache_creation_input_tokens": 0
  },
  "stop_reason": {
    "type": "end_turn"
  }
}
Human-in-the-loop レスポンス待ちでターンが一時停止した場合:
{
  "type": "session.status_idle",
  "status": "idle",
  "stop_reason": {
    "type": "requires_action",
    "event_ids": ["evt_01JZ6Q3FB6SG8F7J1M2N"]
  }
}
stop_reason.typerequires_action の場合、event_ids にはクライアントからのレスポンスが必要な agent.tool_use または agent.custom_tool_use イベントの ID がリストされます。これらの ID を user.tool_confirmation.tool_use_id または user.custom_tool_result.custom_tool_use_id に使用してください。

session.error 形式

{
  "type": "session.error",
  "error": {
    "message": "The operation was aborted due to timeout",
    "type": "unknown_error"
  },
  "details": {
    "message": "The operation was aborted due to timeout",
    "name": "TimeoutError"
  },
  "retry_status": {
    "type": "exhausted"
  }
}

ページネーションフィールド

フィールド説明
dataarray表示可能なイベントオブジェクトのリスト。各項目には idtypesession_idschema_versioncreated_at、通常は processed_at が含まれます。ターンスコープのイベントには turn_id が含まれます。その他のフィールドは type に依存します。
first_idstring現在ページ先頭レコードの ID
last_idstring現在ページ末尾レコードの ID
has_morebooleanさらにレコードがあるかどうか

エラーレスポンス

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

Agent 出力ファイルの取得

Agent が DeliverArtifacts ツールを呼び出すと、プラットフォームは各ファイルを永続ストレージにアップロードし、agent.artifact_delivered イベントを発行します。type フィルタでこれらのイベントのみを取得し、Files API でファイルをダウンロードします。

agent.artifact_delivered イベント形式

{
  "id": "evt_019eab58a1b27c3f9012d4e5f6a7b8c9",
  "type": "agent.artifact_delivered",
  "file_id": "file_019eab58a1b27c3f9012d4e5f6a7b8c9",
  "original_filename": "hello.txt",
  "size": 28,
  "content_type": "text/plain",
  "session_id": "sess_019e392c0d1e74e095d21ea4c6b41def",
  "turn_id": "turn_019eab56b4d77163bd7da587c553548c",
  "schema_version": "1.0",
  "created_at": "2026-06-09T07:44:26.987Z"
}

エンドツーエンドのダウンロード例

SESSION_ID=sess_abc123

# 1. ファイル配信イベントのみ取得
curl -s "https://api.qoder.com/api/v1/cloud/sessions/$SESSION_ID/events?type=agent.artifact_delivered&limit=100" \
  -H "Authorization: Bearer $QODER_PAT" | jq '.data[] | {file_id, original_filename, size}'

# 2. 署名付きダウンロード URL を取得(Authorization が必要)
URL=$(curl -s "https://api.qoder.com/api/v1/cloud/files/$FILE_ID/content" \
  -H "Authorization: Bearer $QODER_PAT" | jq -r '.url')

# 3. ダウンロード(Authorization 不要 — URL は署名済み)
curl -sL -o "$FILENAME" "$URL"

関連項目

Session イベントストリーム

SSE で Agent の思考、メッセージ、ツール呼び出し、ステータスをストリーミング。