OpenAI Responses APIとは?使い方とChat Completions APIとの違いを公式準拠で解説

OpenAI Responses APIとは?使い方とChat Completions APIとの違いを公式準拠で解説

この記事のポイント OpenAI Responses APIとは、Web検索やファイル検索などの「組み込みツール」を最初から内蔵した、エージェント開発向けの新しいAPIだ。Chat Completions APIの後継で、新規開発はこちらが公式推奨。messages配列ではなくinputinstructionsで書く、レスポンスがデフォルト保存されprevious_response_idで会話をつなげる、の2点が最大の違い。古いAssistants APIは2026年8月26日に廃止予定なので、移行先もここになる。

OpenAI Responses APIは、もう「新しい選択肢の1つ」ではない。OpenAI公式が新規プロジェクトでの利用を推奨している、事実上の標準APIだ。

それでも現場では混乱が続いている。Chat Completions APIに慣れた開発者ほど「何が違うのか」「いま書き換える必要があるのか」が分からないまま手が止まる。さらにAssistants APIの廃止期限も迫っていて、移行先としてのResponses APIを正しく理解しておかないと、夏に慌てることになる。

この記事では、OpenAI Responses APIとは何か、基本リクエストの書き方、Chat Completions APIとの具体的な違い、Web検索などの組み込みツール、料金、そして移行手順までを公式Docs準拠で整理する。出てくる数値・仕様はすべてOpenAI公式(platform.openai.com / developers.openai.com)で確認できるものだけに絞った。

OpenAI Responses APIとは何か——一言でいうと「ツール内蔵のAPI」

OpenAI Responses APIとは、Web検索・ファイル検索・コード実行などのツールをAPI側に最初から組み込んだ、エージェント開発のための統合インターフェースです。

ここで言う「ツール」とは、モデル(AI本体)が自分で呼び出せる外部機能のこと。たとえば最新情報を調べるWeb検索や、アップロードした資料を読むファイル検索がこれにあたる。

従来のChat Completions APIには、こうしたツールは付いていなかった。Web検索を使いたければ自分で検索APIを呼び、結果を整形してAIに渡す——という配線を全部自前で組む必要があった。Responses APIはその配線を最初から内側に持っている。これが一番の存在意義だ。

OpenAI公式は、Responses APIを「エージェント的なアプリケーションを構築するための統合インターフェース」と位置づけている。Chat Completionsの単なる名前替えではなく、AIに「考えて、調べて、動く」を任せる前提で作り直されたAPIだと理解するのが正確だ。

結局のところ、Responses APIは「AIに道具を持たせて自走させたい人」のためのAPIだ。1問1答で済むならChat Completionsで十分。だが調べ物や複数ステップの処理をAIに任せたいなら、自前で配線するより最初から持っている方が早い。

ここまでが概念。次は実際にどう書くのかを見ていく。

ステップ1: 基本リクエストを送る——最小コードで動かす

まずは何も飾らない最小のリクエストから。Responses APIの基本形はこれだけだ。

エンドポイント(APIの宛先URL)は /v1/responses。Chat Completionsの /v1/chat/completions とは別物なので、ここを差し替えるのが第一歩になる。

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5.4",
    instructions="あなたは丁寧な日本語アシスタントです。",
    input="Responses APIとChat Completions APIの違いを一言で説明して。"
)

print(response.output_text)

ポイントは2つ。役割や前提を伝える指示文は instructions、ユーザーの質問は input。Chat Completionsのように messages 配列へ system / user を詰め込む必要はない。

response.output_text で本文を取り出せる。出力の正体は output という配列で、メッセージ・推論(reasoning)・関数呼び出し(function_call)など複数の型が混ざって返る設計だ。1問1答なら output_text だけ見れば足りる。

補足: model に渡すモデル名は契約・時期で変わる。本記事のコードは2026年6月時点でデフォルト系のGPT-5.4を例にしているが、実際に使うときは公式のモデル一覧で現行名を確認してほしい。

最小コードが動いたら、次は会話をつなげる方法だ。

ステップ2: 会話を続ける——previous_response_idで状態を持たせる

Chat Completionsでは、会話履歴を毎回全部送り直すのが基本だった。Responses APIはここが違う。

レスポンスはデフォルトで保存される(store パラメータの既定値が true)。だから前回の返答IDを次のリクエストに渡すだけで、文脈が引き継がれる。

first = client.responses.create(
    model="gpt-5.4",
    input="日本の首都はどこ?"
)

second = client.responses.create(
    model="gpt-5.4",
    previous_response_id=first.id,
    input="その都市の人口は?"
)

print(second.output_text)

2回目のリクエストで「その都市」が東京を指すのは、previous_response_id で前のやり取りを参照しているからだ。履歴を自前で抱えて毎回送り直す手間が消える。

保存したくない場合は store=false を指定すればいい。社外秘データを扱うときや、自前で履歴管理したいときはここをオフにする。

専門用語をひとつ補足しておく。「ステートレス」とは、サーバー側が会話状態を覚えない設計のこと。Responses APIは保存(ステートフル)も自前管理(ステートレス)も選べる、という柔軟さが効いてくる。

会話の土台ができたら、いよいよResponses APIの主役——組み込みツールに進む。

Chat Completions APIとの違いはどこにある?

「結局Chat Completionsと何が違うの?」が、この記事を読む人の最大の疑問だろう。違いは大きく4つに集約できる。

下の表が要点だ。表の前にひとつだけ。どちらが優れているという話ではなく、用途が分かれる、というのが正しい捉え方になる。

観点Chat Completions APIResponses API
入出力の形messages 配列input + instructions、出力は output 配列(Items)
組み込みツールなし(自前で配線)Web検索・ファイル検索・コード実行などを内蔵
状態管理毎回履歴を送り直すデフォルト保存、previous_response_id で連結
公式の推奨既存利用は継続サポート新規プロジェクトはこちらを推奨

つまり、単発のテキスト生成ならChat Completionsで何も困らない。一方、ツールを使わせたい・会話状態を持たせたい・新規で作るなら、Responses APIが素直な選択肢になる。

コスト面でも差がある。OpenAI公式は、内部テストでキャッシュ利用率がChat Completions比で40〜80%改善し、その分コストが下がると説明している。GPT-5系のような推論モデルと組み合わせたときに効きやすい設計だ。

ただし誤解しないでほしい。Chat Completionsは廃止されない。公式は既存実装のサポート継続を明言している。慌てて全部書き換える必要はなく、新規分からResponses APIに寄せていくのが現実的だ。

なぜここまでツールを推すのか。その中身を次で見ていく。

組み込みツールで何ができる?——Web検索・ファイル検索ほか

Responses APIの価値の半分は、この組み込みツールにある。OpenAI公式が挙げている主なツールは次の通りだ。

5つ以上並ぶので、先に一言。これらは「AIが必要に応じて自分で呼ぶ」前提の機能で、すべて自前実装なしで使える。

  • Web検索: 最新情報をその場で調べる。リアルタイム性が要る質問に強い
  • ファイル検索: アップロードした資料を読み、根拠付きで答えさせる。社内ドキュメントQ&A向き
  • コード実行(Code Interpreter): その場でコードを走らせて計算・データ処理をする
  • コンピュータ操作(Computer use): 画面操作を伴うタスクを担わせる
  • リモートMCPサーバー / 画像生成: 外部ツール連携や画像の生成も同じ枠組みで扱える

一番イメージしやすいWeb検索を例に、コードを見てみよう。tools にツール種別を1行足すだけだ。

response = client.responses.create(
    model="gpt-5.4",
    tools=[{"type": "web_search"}],
    input="2026年のOpenAI Responses APIの最新アップデートを調べて要約して。"
)

print(response.output_text)

Chat Completionsで同じことをやろうとすると、検索API契約・呼び出し・結果整形・プロンプト注入を全部自分で書くことになる。Responses APIはその一連を tools の1行に畳み込んでいる。この差は地味だが、実務では効く。

ツールが分かったら、気になるのはお金の話だろう。

料金はどうなっている?——ツール課金とトークン課金の二段構え

ここは正確さが命なので、OpenAI公式の料金ページの数値だけで話す。

まず大前提。Responses API自体に「API利用料」という固定の上乗せはない。テキスト処理ぶんは、選んだモデルの標準トークン単価で課金される。Chat CompletionsもRealtimeもBatchも同じ扱いだ。

「トークン」とは、AIが文章を処理する単位(文字のかたまり)のこと。入力文と出力文の量に応じて課金される、と理解しておけばいい。

その上で、組み込みツールには別途の従量課金がかかる。主要ツールの公式価格は下表の通り。

ツール料金補足
Web検索$10.00 / 1,000回取得した検索内容のトークンは別途モデル単価で課金
ファイル検索(呼び出し)$2.50 / 1,000回Responses APIでのみ適用
ファイル検索(保存)$0.10 / GB・日最初の1GBは無料

つまり料金は「モデルのトークン課金」+「使ったツールの従量課金」の二段構え。Web検索を1日に何百回も呼ぶ設計だと、$10/1,000回のツール課金が地味に積み上がる点だけ注意したい。

ファイル検索は呼び出しが$2.50/1,000回と安く、保存も1GBまで無料。社内ドキュメントQ&Aの試作なら、コストはほぼトークン代だけで収まる計算になる。

料金の見通しが立ったら、最後に避けて通れないのが移行の話だ。

Assistants APIからの移行はいつまで?——2026年8月26日が期限

開発者にとって見落とせないのが、旧Assistants APIの廃止スケジュールだ。

OpenAIはResponses APIを推奨し、Assistants APIは2026年8月26日に廃止予定としている。Assistants APIで組んだスレッド管理・ファイル管理・関数呼び出しは、すべてResponses APIへ移していく必要がある。

移行の勘所は、状態管理の考え方が変わる点だ。Assistants APIはスレッドという入れ物で会話を抱えていたが、Responses APIは previous_response_id で前の返答を参照する方式。ファイル検索のような機能は組み込みツールとしてそのまま置き換えられる。

期限まで残りわずか。Assistants APIで動いている本番システムがあるなら、まず移行計画を固め、夏前には切り替えを終えておきたい。実際の対応表や手順は、別記事のAssistants API移行ガイドと、API全体の使い方をまとめたChatGPT API入門も合わせて参照してほしい。

移行を見据えると、Responses APIはAIコーディング系のツールとも相性がいい。次でその関係を整理する。

Responses APIとAIコーディングツールの関係

Responses APIは、自律的にコードを書くエージェント型ツールの土台としても使われている。

たとえばGitHub CopilotCursorのようなAIコーディングツール、あるいはClaude Codeのようなエージェントは、いずれも「AIにツールを持たせて自走させる」発想で動く。Responses APIの組み込みツール+状態管理は、まさにこの種のアプリを自前で作るときの基盤になる。

自分でエージェントを組むほどではないが恩恵は受けたい、という人は、既製のAIコーディングツールを使うのが早い。AIコーディング全般の選び方はAIコーディングのカテゴリ、自律エージェントの比較はAIエージェントのカテゴリにまとめてある。各ツールの詳細はCursorの解説Claude Codeの解説が参考になる。

OpenAIのモデルやサービス全体像を押さえたいなら、提供元のOpenAIと、入口になるChatGPTのページから辿るのが分かりやすい。

ここまで来れば、Responses APIを「いま採用すべきか」の判断材料は揃う。最後に編集部の見立てをまとめる。

編集部の評価——Responses APIは「新規なら一択」

公開情報をもとにした、率直な評価を残しておく。捏造のない範囲での判断だ。

  • 新規開発での採用: 一択。公式が推奨しており、組み込みツールと状態管理を自前配線せずに済むメリットが大きい
  • 組み込みツール: 地味に効く。特にWeb検索とファイル検索は、自前で配線する手間を考えると破格の省力化
  • Chat Completionsからの全面移行: 急ぐ必要なし。既存はサポート継続。単発テキスト生成だけなら無理に乗り換える理由は薄い
  • Assistants APIからの移行: 待ったなし。2026年8月26日の廃止期限があるので、これは計画必須
  • 料金の分かりにくさ: 正直やや面倒。トークン課金とツール従量課金が二段構えで、Web検索を多用する設計だとコスト試算を先にやらないと読みづらい

総じて、Responses APIは「AIに道具を持たせて動かす」これからのアプリの標準形だ。1問1答で完結する用途ならChat Completionsで十分だが、調べ物・複数ステップ・状態保持が絡むなら、最初からResponses APIで組むのが結局いちばん早い。

一次情報・出典(最終確認: 2026-06-28)

数値・仕様は以下のOpenAI公式ページで確認した。鮮度のため、導入前に必ず最新の公式表記を当たってほしい。

あわせて読みたい関連記事

Responses APIまわりをさらに深掘りするなら、次の記事が役立つ。

よくある質問(FAQ)

Q. Responses APIはChat Completions APIと併用できますか?

できる。両方とも有効なAPIで、Chat Completionsは廃止されない。単発のテキスト生成はChat Completions、ツールや状態管理が要る処理はResponses API、と用途で使い分ける運用も普通にアリだ。OpenAI公式も既存実装のサポート継続を明言している(最終確認: 2026-06-28)。

Q. instructionsとinputは何が違うのですか?

instructions はAIへの役割・前提の指示(システム的な指示)、input はユーザーの実際の質問や依頼を入れる場所だ。Chat Completionsで system / user メッセージに分けていた役割が、トップレベルの2つのパラメータに整理されたイメージで捉えると分かりやすい。

Q. レスポンスを保存したくない場合はどうすればいいですか?

store=false を指定すればいい。Responses APIはデフォルトで保存(store=true)されるが、機密データを扱う場合や履歴を自前管理したい場合はオフにできる。store=false のときは previous_response_id による自動連結が使えないので、文脈は自分で渡す必要がある。

Q. 組み込みツールは追加契約が必要ですか?

不要だ。Web検索やファイル検索は tools パラメータに種別を指定するだけで使える。ただし利用は従量課金で、公式価格はWeb検索が$10.00/1,000回、ファイル検索が$2.50/1,000回(保存は$0.10/GB・日、最初の1GB無料)。トークン課金とは別にかかる。

Q. どのプログラミング言語から使えますか?

OpenAI公式が提供するPython・Node.js(TypeScript)のSDKから利用でき、HTTPで直接 /v1/responses を叩くことも可能だ。本記事のコード例はPython SDKだが、考え方(input / instructions / tools / previous_response_id)はどの言語でも共通になる。

Q. Responses APIに移行するとコストは下がりますか?

下がる可能性がある。OpenAI公式は内部テストでキャッシュ利用率がChat Completions比40〜80%改善したと説明しており、その分コストが下がると述べている(最終確認: 2026-06-28)。ただし組み込みツールを多用すると従量課金が乗るため、最終的なコストは使い方次第だ。

まとめ——OpenAI Responses APIの最短理解ルート

OpenAI Responses APIとは、Web検索やファイル検索などのツールを内蔵し、状態管理まで面倒を見てくれる、エージェント開発向けの新しい標準APIだ。

書き方の勘所は3つ。指示は instructions、質問は input、会話の連結は previous_response_id。これだけ押さえれば最小構成は動く。Chat Completionsとの違いは「ツール内蔵」と「デフォルト保存」の2点に集約される。

判断はシンプルだ。新規開発ならResponses APIが一択。単発テキスト生成だけならChat Completionsのままで困らない。そしてAssistants APIで動いている本番システムがあるなら、2026年8月26日の廃止期限に向けて、今月中に移行計画を固めておきたい。詳しい手順はAssistants API移行ガイドChatGPT API入門も参照してほしい。