Googleは2026年9月2日、Gemini 3.8 Flashをリリースしました。APIモデルIDはプレビューサフィックスなしのgemini-3.8-flashです。2026年12月31日までは、3.7 Flashの導入価格と同じく、入力トークン100万あたり$0.75、出力トークン100万あたり$3.75で利用できます。Googleは3.8 Flashを「より熱心に働く」モデルと表現しており、複雑なタスクでは推論ステップとツール呼び出しが増えるため、トークン使用量にも注意が必要です。
この記事では、AI StudioでのAPIキー取得、Interactions APIによる初回リクエスト、レガシーなgenerateContentとの違い、thinking_levelの設定場所、ストリーミング、thoughtsTokenCountによる思考コストの確認方法まで、実際に動く統合を構築する手順を説明します。すべてJSON形式のHTTPリクエストなので、アプリケーションに組み込む前にApidogで確認できます。
モデルの概要、ベンチマーク、変更点は、Gemini 3.8 Flashとは何かを参照してください。公式情報はGoogleの発表ブログ記事で確認できます。
Gemini 3.8 Flash APIの概要
| 項目 | 値 |
|---|---|
| モデルID | gemini-3.8-flash |
| 主要エンドポイント | POST /v1beta/interactions |
| レガシーエンドポイント | POST /v1beta/models/gemini-3.8-flash:generateContent |
| 認証ヘッダー | x-goog-api-key |
| コンテキスト / 出力 | 1,048,576入力トークン / 65,536出力トークン |
| 入力 | テキスト、画像、動画、音声、PDF(テキスト出力のみ) |
| 思考レベル |
low、medium(デフォルト)、high。minimalはエラー |
| 価格(2026年12月31日まで) | 入力$0.75 / 出力$3.75(100万トークンあたり) |
| 2027年1月1日以降 | 入力$1.50 / 出力$7.50(100万トークンあたり) |
実装前に、次の2点を押さえておきましょう。
- デフォルトの思考レベルは、Gemini 3 Proのような
highではなくmediumです。 - 思考トークンは出力トークンとして課金されます。思考レベルは品質だけでなくコストにも影響します。
詳しいタスク別の料金はGemini 3.8 Flashの料金内訳で確認できます。
ステップ1:AI StudioでAPIキーを取得する
Google AI Studioにアクセスし、Googleアカウントでサインインして、キーページからAPIキーを作成します。
無料ティアですぐに利用できますが、レート制限があります。また、Googleは無料ティアのデータを「製品の改善に使用する」と説明しています。生産環境向けにTier 1へ移行する場合は、課金アカウントをリンクしてください。
キーをコードへ直接貼り付けず、環境変数として設定します。
export GEMINI_API_KEY="AIza..."
公式Python SDKはGEMINI_API_KEYを環境から読み取るため、genai.Client()にキーを渡す必要はありません。SDKは次のコマンドでインストールできます。
pip install google-genai
ステップ2:Interactions APIで初回リクエストを送る
Googleは現在、Gemini 3.xモデルの主要APIとしてInteractions APIを案内しています。
リクエストは、model、input、任意のgeneration_configで構成されます。
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-[REDACTED CREDENTIAL]GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.8-flash",
"input": "Explain HTTP caching in 3 sentences.",
"generation_config": {"thinking_level": "medium"}
}'
レスポンスは単一のメッセージではなく、実行ステップのリストです。思考やツール呼び出しは個別のステップとして返され、最終テキストはmodel_outputステップに含まれます。
Python SDKを使うと、最終テキストをoutput_textで取得できます。
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.8-flash",
input="Explain HTTP caching in 3 sentences.",
generation_config={"thinking_level": "medium"},
)
print(interaction.output_text)
temperatureは変更しない
temperature、top_p、top_kは指定しないでください。GoogleはすべてのGemini 3モデルについて、temperatureをデフォルトの1.0に保つよう推奨しています。値を下げると「ループやパフォーマンスの低下を引き起こす可能性」があるためです。
古いモデル用の設定をコピーした場合は、まずこれらの行を削除してください。
ステップ3:previous_interaction_idで複数ターンを実装する
Interactions APIは、デフォルトで会話状態をサーバーに保持します。会話を続けるときは、前回のレスポンスのidをprevious_interaction_idとして送信します。履歴全体を再送信する必要はありません。
follow_up = client.interactions.create(
model="gemini-3.8-flash",
input="Now give one example of a Cache-Control header.",
previous_interaction_id=interaction.id,
)
print(follow_up.output_text)
コンプライアンス上、サーバーサイドストレージを使えない場合はstore: falseを設定します。その場合は、自分で状態を管理し、モデルから返された思考ブロックと思考シグネチャを、各ターンで正確に送り返す必要があります。
ツール使用時にも同じルールが適用されます。詳細はGemini 3.8 Flashの関数呼び出しガイドを参照してください。
ステップ4:レガシーなgenerateContentを使う
本番環境では、まだ多くのGeminiコードがgenerateContentを利用しています。GoogleはこれをレガシーAPIと呼んでいますが、廃止日はなく、「完全にサポートされ続けている」と説明しています。既存コードをすぐに書き換える必要はありません。
Gemini 3.7 Flash APIガイドで扱っている形式は、3.8 Flashでも利用できます。ただし、思考設定の場所がInteractions APIとは異なります。
REST API
generateContentでは、思考レベルをgenerationConfig.thinkingConfig.thinkingLevelにcamelCaseで指定します。
curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent" \
-H "x-goog-[REDACTED CREDENTIAL] \
-H "Content-Type: application/json" \
-d '{
"contents": [{"parts": [{"text": "Explain HTTP caching in 3 sentences."}]}],
"generationConfig": {"thinkingConfig": {"thinkingLevel": "low"}}
}'
Python SDK
Pythonでは型付き設定オブジェクトを使用します。
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3.8-flash",
contents="Explain HTTP caching in 3 sentences.",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_level="low")
),
)
print(response.text)
thinking_budgetを整数で指定していた設定から移行する場合は、文字列の列挙型に置き換えてください。candidate_countもGemini 3以降では削除されています。
変更前後のJSONを含むチェックリストは、3.7から3.8 Flashへの移行ガイドにまとめています。
API間の対応関係
| 懸念事項 | Interactions API | レガシーなgenerateContent |
|---|---|---|
| 思考レベル | generation_config.thinking_level |
generationConfig.thinkingConfig.thinkingLevel |
| 会話状態 |
previous_interaction_id(サーバーサイド) |
contents配列全体を再送信 |
| ツール結果 |
call_id + nameを含むfunction_result
|
id + nameを含むfunctionResponse
|
| 最終テキスト |
model_outputステップ(SDKではoutput_text) |
candidates[0].content.parts[].text |
| 思考シグネチャ |
store: falseでない限り自動処理 |
受け取った各パーツをそのまま返送 |
ステップ5:ストリーミングと思考コストを確認する
チャットUIでは、エンドポイントをstreamGenerateContentに変更し、?alt=sseを付けます。サーバー送信イベントとして、部分的なcandidatesチャンクを受け取れます。
curl -N "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:streamGenerateContent?alt=sse" \
-H "x-goog-[REDACTED CREDENTIAL] \
-H "Content-Type: application/json" \
-d '{"contents":[{"parts":[{"text":"List three HTTP caching headers."}]}]}'
ストリーミングの有無にかかわらず、generateContentのレスポンスはusageMetadataで終了します。
"usageMetadata": {
"promptTokenCount": 12,
"candidatesTokenCount": 84,
"thoughtsTokenCount": 310,
"totalTokenCount": 406
}
特に確認すべき値はthoughtsTokenCountです。思考トークンは導入期間中、出力トークンとして100万トークンあたり$3.75で課金されます。Googleは、モデルがパフォーマンスを最大化するため、特に高い努力レベルでより多くのトークンを使う可能性があると説明しています。
Artificial Analysisの測定では、highでのインデックス実行に約48kの出力トークンが必要でした。これは3.7 Flashより30%多く、トークン単価が同じでもタスクあたりのコストは$0.40から$0.58に上昇します。
同じ測定におけるタスクあたりのコストは次のとおりです。
-
high: $0.58 -
medium: $0.41 -
low: $0.24
Gemini 3.8 Flashの思考レベルガイドでは、この差をルートごとの実装戦略に落とし込んでいます。
思考内容を確認する
モデルの推論過程を確認するには、thinkingConfigに"includeThoughts": trueを追加します。思考の要約は"thought": trueとフラグ付けされたパーツとして返されます。
ユーザー向けの回答を組み立てるときは、これらのパーツを表示対象から除外してください。
最初の1時間で遭遇しやすいエラー
thinking_level: "minimal"は使えない
Gemini 3.8 Flashがサポートする思考レベルはlow、medium、highです。minimalを送信すると、次の400 INVALID_ARGUMENTが返ります。
Thinking level MINIMAL is not supported for this model. Please retry with other thinking level.
このモデルでは思考レベルMINIMALはサポートされていません。別の思考レベルで再試行してください。
これは2026年9月3日のライブコールで確認されています。解決策はminimalをlowに変更することです。古い3.x設定やコピーしたスニペットが主な原因です。
429はティア制限
429エラーは、必ずしもバグではありません。ティアのレート制限に達した可能性があります。
レート制限ページによると、条件は次のとおりです。
- 無料ティア:レート制限あり
- Tier 1:課金アカウントをリンク
- Tier 2:$100の利用実績と3日間の期間
- Tier 3:$1,000の利用実績と30日間の期間
モデルごとの1分あたりのリクエスト数とトークン数は、AI Studioのアカウント別レート制限ページで確認してください。ブログ記事に記載された数値ではなく、自分のアカウントの値を使うことが重要です。
429が発生したら、まず待ってから再試行します。低ボリュームでも繰り返し発生する場合は、ティアをアップグレードしてください。
オフライン処理にはBatch APIが適しています。導入期間中は50%オフ、つまり入力$0.375 / 出力$1.875(100万トークンあたり)で利用できます。キューに入れられるトークン上限は、Tier 1が3M、Tier 2が400M、Tier 3が1Bです。
リクエスト形式はGemini APIのバッチモードガイドで確認できます。
関数結果にcall_idを含める
ツールを使う場合、3.8 Flashでは次のフィールドが必須です。
- Interactions APIの
function_result:call_idとname - レガシーAPIの
functionResponse:対応するidとname
どちらかを省略すると、ターン全体が失敗します。
Apidogで両方のエンドポイントをテストする
ターミナルで両方のリクエストが動作したら、チームで再利用できるテストに変換します。Apidogをダウンロードし、プロジェクトを作成して、2つのエンドポイントを保存済みリクエストとして追加してください。
1. APIキーをリクエストから分離する
GEMINI_API_KEYを環境変数として登録し、x-goog-api-keyヘッダーから{{GEMINI_API_KEY}}として参照します。
保存済みリクエストにシークレットを含めなければ、無料ティアのキーと課金キーを環境変数の変更だけで切り替えられます。
2. ステータスとトークン使用量をアサートする
次の2つをJSONパスでアサートします。
- HTTPステータスが200であること
-
usageMetadata.thoughtsTokenCountがプロンプトごとの上限を下回ること
後者をコスト回帰アラームとして使えば、プロンプト変更やモデルのサイレントアップデートによる思考トークンの増加を、請求書が届く前に検知できます。
ストリーミング版はSSE APIテストガイドで扱っています。Apidogでは、生のチャンクではなくマージされたイベントストリームとして表示できます。
3. 3つの思考レベルを比較する
同じプロンプトをlow、medium、highで実行し、次の値を比較します。
thoughtsTokenCount- 応答時間
- タスクの品質
インデックスの平均値ではなく、自分のプロンプトに対する実測値を取得できます。
4. テストをスケジュールする
リクエストをテストシナリオに変換し、定期実行します。レート制限の変更、minimal削除のようなバリデーション変更、トークン使用量の急増を、本番環境ではなくテストレポートで検知できます。
セットアップ手順はApidogでAPIテストをスケジュールする方法を参照してください。
ApidogはモデルやSDKの代替ではありません。HTTP呼び出しを保存、共有、アサートできる形にし、壊れるまで放置されがちな統合テストをチームで運用できるようにします。
よくある質問
新しいプロジェクトではどのエンドポイントを使うべきですか?
新規開発ではInteractions APIを推奨します。GoogleはgenerateContentをレガシーと呼んでいますが、引き続き完全にサポートされています。
新機能はまずInteractions APIに実装され、サーバーサイドの状態管理によって複数ターンのコードも短くなります。一方、既存サービスは、移行する理由ができるまでgenerateContentを使い続けて問題ありません。
Gemini 3.8 Flashには有料アカウントが必要ですか?
いいえ。無料のAI Studioキーで利用できます。ただし、レート制限とGoogleのデータ使用規約が適用されます。
無料ティアでできることとできないことは、Gemini 3.8 Flashを無料で使う方法で確認できます。Geminiアプリで3.8 Flashを使う場合は、AI ProまたはUltraプランが必要です。
3.8 Flashは3.7 Flashより遅いですか?
トークン単位では、ほぼ同じ速度です。GoogleのLogan Kilpatrick氏によると速度はほぼ同じで、Artificial Analysisは毎秒約300出力トークンを測定しました。
ただし、タスク単位ではhighの方が時間がかかります。Artificial Analysisの実行では、3.7 Flashの2.2分に対して3.8 Flashは2.5分でした。より多くのトークンを生成するためです。
Gemini 3.7 Flashは引き続き使えますか?
はい。Googleは3.7 Flashが「完全にサポートされ続けている」と説明しており、廃止日は発表されていません。
3.8 Flashの追加トークン費用がワークロード上のメリットにつながらない場合は、3.7 Flashを使い続けるのも有効な選択肢です。
3.8 FlashはLive APIや画像生成に対応していますか?
いいえ。3.8 Flashはテキスト出力のみです。音声生成、画像生成、Live APIはサポートしていません。
次に進む
ここまでで、次の実装要素がそろいました。
- Interactions APIによる初回呼び出し
-
generateContentによる既存コードとの互換パス -
previous_interaction_idを使った複数ターン - ストリーミングレスポンス
-
thoughtsTokenCountによるコスト監視
次は、Gemini 3.8 Flashの関数呼び出しガイドでツールを連携し、思考レベルガイドでルートごとの設定を決めてください。
移行すべきか迷っている場合は、Gemini 3.8 Flashと3.7 Flashの比較でトレードオフを確認できます。
最後に、Apidogのテストシナリオを継続実行し、コストやレート制限の変化をテスト失敗として検知できる状態にしておきましょう。
Top comments (0)