Gemini Decisions APIは、テキストを生成する代わりにクローズドな質問(選択肢のある質問)に回答する、Googleの新しいエンドポイントです。共通の入力1つ(テキスト、画像、音声、動画、PDF)に最大1,000件の型付き質問を送ると、Gemini Decision 1(gemini-decision-1)が各質問に対してキャリブレーション済みの確率と信頼度スコアを返します。料金は入力トークン100万あたり0.10ドル、出力は常に0トークン、エンドツーエンドのレイテンシはGoogle公表値で150〜250ミリ秒です。
Googleは2026年11月11日に、v1betaエンドポイントとしてこれを公開しました。実際の構築手順については、Gemini Decisions APIの使い方をご覧ください。
GoogleがGemini Decision 1で提供したもの
Gemini Decision 1は、テキストをトークンごとにデコードするのではなく、1回のフォワードパスで固定された候補回答のセットをスコアリングするモデルです。Decisions APIはこのモデルを公開しており、コードは分岐処理に使える数値を受け取ります。

発表記事「Gemini Decisions API: Fast, calibrated multimodal decisions」には、主なポイントがまとめられています:
- モデルIDは
gemini-decision-1で、Gemini APIとGoogle AI Studioから利用可能 - リクエストごとにマルチモーダル入力は1つ、入力とすべての質問で共有される最大262,144トークンのコンテキストウィンドウ
- リクエストあたり1〜1,000件の独立した質問。タイプは
noul、choice、scoreの3種類 - 入力トークン100万あたり0.10ドル、出力は0ドル、プロトタイピング用の無料枠あり
google-genai3.2以降でSDK対応(client.decisions.create(...))。OpenRouter、LangChain、Vercel AI SDK、LiteLLMとの統合も順次提供予定
Gemini in Google Cloud(Vertex AI)の対応は「近日公開」とされており、現時点ではDeveloper APIのみで動作します。

チャット呼び出しではなく決定エンドポイントである理由
「これを分類して」というコードの多くは、生成モデルを呼び出してJSONを要求し、その応答をパースします。出力トークンと思考トークンのコストがかかり、モデルが自由に書きすぎるとパーサーが壊れてしまいます。

Decisions APIはこの生成ステップを排除します。Googleのドキュメントはこう明言しています。「テキストトークンを一切生成しないため、出力トークン使用量は常に0」。そこから導かれる設計上の選択は3つあります:
- 並列で分離されたスコアリング。すべての質問が、1回のパスで共通の入力に対して実行されます。質問同士は互いに見えないため、質問を追加・削除しても他の回答には影響しません。
- 値と信頼度のセット。値はコードが取るべきアクションを示し、信頼度はそれを自動実行するか人間にエスカレーションするかを判断させます。
- コードで組み合わせるアトミックなチェック。狭い範囲の質問を投げ、その答えを普通の
if文と重み付けで組み合わせます。
テキスト生成、スキーマに沿った抽出、ツール呼び出し、複数ステップの推論については、引き続きInteractions APIの利用がGoogleから案内されています。
3つの質問タイプ
各質問にはtypeとinstructionsがあり、2つのタイプではさらにcriteriaが必要です。モデルは質問キーを見ないため、完全な質問文をinstructionsに書く必要があります。
| タイプ | 用途 | criteria | 返却値 |
|---|---|---|---|
noul |
記述が成り立つかどうかの確認 | 省略可能なtrue_description / false_description |
noul(0.01〜0.99)、confidence |
choice |
固定リストから1つの選択肢を選ぶ | 必須:選択肢IDと説明のマップ、2〜255個の選択肢 | choice、probabilities(合計1)、confidence |
score |
順序付きルーブリックに沿って入力を評価 | 必須:レベルの配列(昇順)、2〜255個(推奨は2〜10個) | score、probabilities、legend、confidence |
しきい値を設定する前に知っておくべき挙動がいくつかあります:
noulは0にも1にもならない。確率は0.01〜0.99の間に収まるため、「0.99超え」のチェックは決して一致しません。choiceのキーはアルファベット順にソートされてからスコアリングされます。したがってnone_of_the_above(先頭にソートされる)ではなく、otherのような包括的なキーを使いましょう。choiceはどの選択肢も当てはまらない場合でも、確率を選択肢全体に振り分けます。noulでのスコープチェックや、confidenceへのしきい値と組み合わせましょう。scoreはレベルインデックスの加重平均です。たとえば1.12なら「ほぼレベル1、一部レベル2」を意味します。
confidenceの定義はどのタイプでも同じです。最上位の結果の確率、またはyes/no質問ではmax(noul, 1 - noul)です。
リクエスト例とレスポンス
RESTエンドポイントはPOST https://generativelanguage.googleapis.com/v1beta/decisionsで、x-goog-api-keyヘッダーで認証します。以下のリクエストは、1件のサポートメッセージに対してyes/no質問と選択質問を送ります:
curl -X POST "https://generativelanguage.googleapis.com/v1beta/decisions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-decision-1",
"input": "Audio cuts out on the left earcup. Fix it today or I cancel my membership.",
"questions": {
"is_defect": {
"type": "noul",
"instructions": "Does the message describe a hardware defect?"
},
"department": {
"type": "choice",
"instructions": "Which department should handle this request?",
"criteria": {
"billing": "Payments, invoices, and refunds.",
"technical": "Problems using the product.",
"shipping": "Delivery and tracking.",
"other": "Anything outside these categories."
}
}
}
}'
レスポンスには、answers(質問IDがキー)とusageという2つのトップレベルフィールドがあります:
{
"answers": {
"is_defect": { "type": "noul", "noul": 0.94, "confidence": 0.94 },
"department": {
"type": "choice",
"choice": "technical",
"probabilities": { "technical": 0.9, "other": 0.05, "billing": 0.03, "shipping": 0.02 },
"confidence": 0.9
}
},
"usage": { "total_input_tokens": 120, "total_output_tokens": 0, "total_tokens": 120 }
}
数値は例示用であり、GoogleのDecisions APIドキュメントの例と同じ構造です。
テキスト以外の入力では、inputがコンテンツブロックの配列になり、Interactions APIと同じスキーマのtext、image、audio、video、document(PDF)が使えます。メディアはインラインbase64(リクエストあたり最大100 MB)、Files APIのURI、またはHTTPS URL(各最大15 MB)で渡せます。画像と動画のブロックにはresolution設定があり、詳細さとトークン消費をトレードオフできます。
入力がセーフティフィルターにブロックされた場合、answersの代わりにsafetyやprohibited_contentなどのerror.codeを含むHTTP 400が返されます。
Gemini Decisions APIの料金、レイテンシ、レート制限
料金は入力のみが対象です。有料ティアでは入力トークン100万あたり0.10ドル、無料ティアでは無料、出力は常に0トークンのため出力の課金項目はありません。これはGoogleのGemini Developer API料金ページ(2026年11月12日確認)によるものです。同ページには、無料ティアのコンテンツはGoogle製品の改善に使用され、有料ティアのコンテンツは使用されない旨も記載されています。
課金に関する重要な2つの詳細:
- 共通の入力はリクエストごとに1回だけ課金されます。質問数に依存しません。各質問が追加するのは、その指示文とcriteriaのトークンのみです。
- このエンドポイントにはコンテキストキャッシュ、Batch API、Flex/Priority推論はありません。同じ入力を2回のリクエストで送ると2回課金されます。
概算すると、2,000トークンのサポートチケットに40トークン程度の質問を20件投げると、合計約2,800入力トークンで、有料ティアでの1回の決定呼び出しは約0.00028ドルです。
レイテンシの数値はGoogle自身の公表値です。モデル計算の中央値は50〜100ミリ秒、エンドツーエンドでは150〜250ミリ秒で、16Kトークンまでの入力では1〜100件の質問でもほぼ変動しません。Googleはさらに、ベンチマークスイートで最低のキャリブレーション誤差を達成したこと、Interactions API経由のGemini 3.5 Flash-Liteより約5倍低コストであることを主張しています。いずれも自社トラフィックで計測するまではベンダー公表値として扱いましょう。
レート制限はGoogleのレート制限ページ(2026年11月12日確認)によるもの:
| 利用ティア | リクエスト/分 | トークン/分 | リクエスト/日 |
|---|---|---|---|
| Free | 200 | 50,000 | 10,000 |
| Tier 1 | 1,500 | 1,000,000 | 50,000 |
| Tier 2 | 5,000 | 4,000,000 | 無制限 |
| Tier 3 | 15,000 | 10,000,000 | 無制限 |
無料ティアについては、Gemini Decisions APIを無料で使うで詳しく解説しています。
Decisions APIが活躍する場所
Googleのドキュメントには5つのパターンが挙げられており、Googleの内部チームも実際にそれらに沿って利用しています:
- モデルルーティング。Gemini Notebookでは、クエリをモデルティアと思考レベルにルーティングし、日常的なクエリのレイテンシを最大40%削減(Google公表値)。
- ポリシーチェック。1つの入力に対する複数ルールを1回の呼び出しでチェック。Google SearchではMCPツールの安全レイヤーとして利用。
- エージェント制御。読み込むツールの選択、圧縮・エスカレーション・停止の判断など。
- 評価とランキング。ルーブリックに沿った候補や検索チャンクのスコアリング。
- リアルタイムメディア。Google LabsのCCは、200以上の選択肢から絵文字を選びます。

Googleのガイダンスでは、このしきい値は自社トラフィックのラベル付きデータから設定し、偽陽性と偽陰性のコストを比較検討するよう推奨されています。
OpenAIも10月にGPT-6 Luna上で同様のエンドポイントを公開しており、predicate、choice、scoreの質問タイプを備えています。詳細はOpenAI Decisions API解説を、制限・モダリティ・料金の比較はGemini Decisions API vs OpenAI Decisions APIをご覧ください。
制限と未解決の課題
現時点でドキュメントに明記されていること:
- Gemini Developer APIの
v1betaで、Gemini Decision 1のみ利用可能 - 質問のinstructionsはテキストのみ対応。質問内のメディアは非対応
- 会話履歴、思考、ツール呼び出しブロックは有効な入力ではない。マルチターンのコンテキストはテキストとしてシリアライズする
GAの日付、対応リージョン、データレジデンシの条件はまだ公表されていません。また、ユーザーのテキストが自分自身の分類結果を有利に導くような主張をできることも警告されており、支払い処理など高リスクなアクションには人間によるチェックを残すべきとしています。
Apidog CLIでコーディングエージェントにテストさせる
決定エンドポイントが有用であるためには、コントラクトが守られていることが不可欠です。すべてのconfidenceが0〜1の範囲内、すべてのchoiceが自分の定義したセット内にあること。Apidog CLIを使えば、コーディングエージェントがその回帰テストを書いて実行してくれる間に、あなたは他の作業を進められます。
まず一度だけセットアップします:
npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_APIDOG_TOKEN>
apidog skill install
あとはエージェントに1つのプロンプトを渡すだけです:
In Apidog project <projectId>, create an environment "gemini" with base URL
https://generativelanguage.googleapis.com and a secret variable GEMINI_API_KEY.
Define POST /v1beta/decisions with header x-goog-api-key: {{GEMINI_API_KEY}}
and the support-ticket body from this article. Add a test case asserting:
status 200, usage.total_output_tokens == 0, every answers.*.confidence is
between 0 and 1, answers.department.choice is one of billing|technical|shipping|other,
and answers.is_defect.noul is between 0.01 and 0.99. Run it and summarize failures.
エージェントは各ペイロードをスキーマに対して検証し、テストケースを作成・実行します:
apidog environment create gemini --project <projectId> --base-url https://generativelanguage.googleapis.com
apidog cli-schema get environment-update
apidog environment update <envId> --project <projectId> --file env.json
apidog cli-schema get endpoint-create
apidog cli-schema validate endpoint-create --file decisions-endpoint.json
apidog endpoint create --project <projectId> --file decisions-endpoint.json
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file decisions-case.json
apidog test-case create --project <projectId> --file decisions-case.json
apidog run --test-case <caseId> --project <projectId> -e <envId> -r cli,json
キーを保存された環境に残したくない場合は、実行時に--env-var "GEMINI_API_KEY=..."で渡す方法もあります。同じapidog runに-r junitを付けるとCIにそのまま組み込めます。全フラグの一覧はapidog runコマンドリファレンスに、エージェントの完全なセットアップはClaude CodeでのApidog CLIに記載されています。ApidogのFreeプランは最大4ユーザーまで利用できます。
FAQ
Gemini Decisions APIは無料で使えますか? はい、無料ティアの範囲内で利用できます:1分あたり200リクエスト、1分あたり50,000トークン、1日あたり10,000リクエスト。有料利用は入力トークン100万あたり0.10ドルです。
1回のリクエストで送れる質問の数は? 1〜1,000件です。ただし、入力とすべての質問で共有される262,144トークンのコンテキストウィンドウが上限になります。
noulとは何ですか? yes/no質問のタイプです。答えがyesである確率(0.01〜0.99の範囲)と、信頼度スコアを返します。
Vertex AIで使えますか? まだ使えません。GoogleはGemini in Google Cloud対応を「近日公開」としています。現時点ではGemini Developer API(v1beta)でのみ利用可能です。
バッチやコンテキストキャッシュには対応していますか? いいえ。コンテキストキャッシュ、Batch API、Flex/Priority推論はいずれも非対応のため、繰り返し送る入力も全額課金されます。
