メインコンテンツへスキップ
Response API は、OpenAI が提供する次世代のモデル API です。ステートフルなマルチターン会話、複数ツールの協調、推論プロセス、マルチモーダル入力を一つに統合した、より簡潔で強力なプログラミングモデルとして設計されています。

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 を使うべき場面

Response API の利用が推奨されるシナリオ
  • Agent やマルチステップタスクのアプリケーションを構築する
  • Web 検索、ファイル検索、コード実行などのマネージドツールが必要
  • o1、o3 などの推論モデルを使い、思考連鎖を確認したい
  • マルチターン会話の状態管理を簡素化したい
当面 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 ベースのディスパッチに書き換えます。

まとめ

Response API は「モデル + ツール + 状態 + マルチモーダル」を 1 つの API に集約した、Agent 時代に向けた OpenAI の主要な入口です。新規プロジェクトでは Response API から始めることを推奨し、既存プロジェクトではモジュール単位で段階的に移行することで、ビルトインツールと状態管理による複雑度の削減を早期に享受できます。