Response API とは
Response API(/v1/responses)は、OpenAI が 2025 年に公開した統一モデル呼び出し API です。従来 Chat Completions、Assistants、Tools など複数の API に分散していた機能を統合し、開発者は 1 回の呼び出しで以下を実現できます。
- マルチターン会話とコンテキスト管理
- ビルトインツール呼び出し(Web 検索、ファイル検索、コードインタープリタ、コンピュータ操作など)
- カスタム関数呼び出し
- 推論モデル(o シリーズなど)の思考連鎖の出力
- テキスト、画像、音声などのマルチモーダル入出力
Chat Completions との主な違い
ステートフル vs ステートレス
Chat Completions は毎回、完全な履歴メッセージを送信する必要があります。Response API は
previous_response_id で直前のレスポンスを直接継続でき、コンテキストはサーバー側で自動管理されます。統一された入力構造
Chat Completions は
messages 配列を使います。Response API は input フィールドを使い、文字列、メッセージ配列、または画像やファイルを含むマルチモーダル構造を受け付けます。ビルトインツール
Response API は
web_search、file_search、code_interpreter、computer_use などのマネージドツールをネイティブにサポートし、自前で実装する必要がありません。推論の透明化
o1、o3 などの推論モデルでは、Response API が
reasoning 項目を出力に明示的に含めるため、追跡やデバッグが容易です。最もシンプルな呼び出し
cURL
id: 今回のレスポンスの一意な ID。後続の継続に利用できますoutput: モデルが生成したコンテンツ項目の配列(テキスト、ツール呼び出し、推論など)output_text: すべてのテキスト内容を連結した便利フィールドusage: トークン消費量の統計
マルチターン会話:手動で履歴を組み立てる必要はありません
従来の書き方では毎ターンごとに完全なmessages を渡す必要があります。Response API では直前の id を渡すだけで十分です。
Python
ビルトインツール:1 行で Web 検索を有効化
Python
file_search(アップロードファイルに対する RAG)、code_interpreter(サンドボックスでのコード実行)、computer_use(ブラウザ/デスクトップ操作)もあります。
ストリーミング出力
Response API はサーバー送信イベント(Server-Sent Events)で構造化イベントを返します。Chat Completions の delta より解析しやすい形式です。Python
response.created、response.output_text.delta、response.tool_call.created、response.completed などがあります。
Response API を使うべき場面
当面 Chat Completions に留まってよい場面
- 既存コードが
messages構造に大きく依存しており、短期的な移行メリットが小さい - ツールを使わない、一度きり・ステートレスな補完のみが必要
- Response API に未対応のサードパーティ製ラッパーに依存している
移行のヒント
1
エンドポイントを置き換える
/v1/chat/completions を /v1/responses に、messages を input に置き換えます。2
previous_response_id でセッションを管理する
クライアント側で保持していた完全な履歴を削除し、直近の
response.id のみを保存します。3
ビルトインツールで自前実装を置き換える
自作していた検索、RAG、コード実行を
web_search、file_search、code_interpreter に置き換えられるか評価します。4
新しいイベントストリームに合わせる
ストリーミング出力を使っている場合、delta 解析を
event.type ベースのディスパッチに書き換えます。