コンテンツにスキップ

Responses

POST /v1/responses

指定した入力に対してモデル応答を生成します。OpenAI Responses API と互換です。

パラメータ型必須説明
modelstringはいモデル ID
inputstring | arrayはいテキスト文字列 (ユーザーメッセージとして扱われる) または入力アイテムの配列
instructionsstringいいえコンテキストの先頭に追加されるシステム / デベロッパーメッセージ
streambooleanいいえSSE でストリーミング。デフォルト: false
temperaturenumberいいえサンプリング温度 (0〜2)
top_pnumberいいえNucleus サンプリング (0より大きく1以下)
max_output_tokensintegerいいえ生成トークン数の上限
toolsarrayいいえモデルが呼び出し可能な関数ツール
tool_choicestring | objectいいえ"none"、"auto"、"required"、または特定のツール
parallel_tool_callsbooleanいいえ並列ツール呼び出しを許可
reasoningobjectいいえ{ "effort": …, "summary": "auto"|"concise"|"detailed" }。effort はモデルごとにその reasoning_efforts と照合されます。一覧にないレベルは一つ上のレベル(なければ最も高いレベル)で実行され、送信したレベルより高コストになる場合があります。適用されたレベルは X-Reasoning-Effort で返されます。effort の語彙にない値は 400 になります。
truncationstringいいえ"auto" (コンテキストに収まるよう切り詰め) または "disabled"
metadataobjectいいえトラッキング用のキーバリューペア
textobjectいいえテキストレスポンスフォーマットの設定
seedintegerいいえ決定論的サンプリングのシード
stopstring | string[]いいえ最大 4 つの停止シーケンス
top_kintegerいいえTop-k サンプリング (プロバイダ依存)
repetition_penaltynumberいいえ繰り返しペナルティ (プロバイダ依存)

モデルが reasoning をオフにできるのは、その levels に none が含まれる場合だけです。none を公開していないモデルへ reasoning.effort に none を送ると 400 になります。エラー文は エラー にあります。

単純な文字列:

{
"model": "google/gemma-4-31b-it",
"input": "Explain quantum computing in one paragraph."
}

構造化された入力アイテム:

{
"model": "google/gemma-4-31b-it",
"input": [
{
"role": "user",
"content": [
{ "type": "input_text", "text": "Describe this image" },
{ "type": "input_image", "image_url": "https://..." }
]
}
]
}

入力アイテムのタイプ:

タイプ説明
メッセージ{ "role": "user"|"assistant"|"developer"|"system", "content": string | content[] }
関数呼び出し{ "type": "function_call", "call_id": "...", "name": "...", "arguments": "..." }
関数呼び出しの出力{ "type": "function_call_output", "call_id": "...", "output": "..." }

コンテンツタイプ: input_text、input_image、input_file

input_image の image_url、input_file の file_url、MCP ツールの server_url は URL の要件 を満たす必要があります。

PDF は、input_file にドキュメントの file_id を指定するか、file_data (data:application/pdf;base64,...) としてインラインで送信します。インラインの PDF は document ファイルとして保存され、制限は Chat Completions と同じです(ゼロデータリテンションの組織では保存されずメモリ上で描画され、専用の制限が適用されます)。サーバーが各ページを画像に変換し、1 ページにつき 1 つの input_image パートとしてモデルに渡します。

{
"id": "resp_abc123",
"object": "response",
"status": "completed",
"created_at": 1700000000,
"model": "google/gemma-4-31b-it",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Quantum computing uses quantum bits (qubits)..."
}
]
}
],
"usage": {
"input_tokens": 15,
"output_tokens": 80,
"total_tokens": 95
}
}
ステータス説明
completed生成完了
failed生成失敗 (error フィールドを参照)
in_progress生成中 (ストリーミング)
incomplete途中で停止 (incomplete_details.reason を参照)
cancelledリクエストがキャンセルされた
queued処理待ち
フィールド型説明
input_tokensinteger入力で消費したトークン数
output_tokensinteger生成された出力トークン数
total_tokensinteger入力と出力の合計
input_tokens_detailsobject{ cached_tokens }
output_tokens_detailsobject{ reasoning_tokens }

レスポンスオブジェクトは保存されないため、毎回のリクエストでそれまでのターンを input に含めて送信してください。モデルが行った function_call も、対応する function_call_output と合わせて含めます。空でない previous_response_id または item_reference 入力アイテム({ "id": "..." } だけで送ったものも含む)を含むリクエストは 400 unsupported_value で拒否されます。store 自体は受け付けますが、無視されます。ただし、Vercel AI SDK など store: true がデフォルトのクライアントはそれまでのターンを item_reference として送るため、store: false を指定してください。ただし、インライン PDF や記録されたリクエスト本文など、リクエストに含まれる内容が保存される場合はあります。何がどれだけの期間保存されるかはゼロデータリテンションに記載しています。

{
"model": "google/gemma-4-31b-it",
"input": [
{ "role": "user", "content": "Explain quantum computing in one paragraph." },
{ "role": "assistant", "content": "Quantum computing uses quantum bits (qubits)..." },
{ "role": "user", "content": "Now explain it to a 5-year-old." }
]
}