Gemini 3.5 Flash APIは、2026年5月19日のモデルローンチと同時に公開されました。Flashは現在利用可能な3.5ファミリーの唯一のバリアントです。 Proは6月に登場します。このガイドでは、Flashの完全な開発者セットアップについて説明します。キーの取得、最初の呼び出し、マルチモーダル入力の処理、ストリーミング、ツール利用、そしてApidogを使った適切なテストまでを網羅しています。
以前にGemini APIを使用したことがある場合、パターンは変わっていません。唯一新しいのは、モデル名文字列であるgemini-3.5-flashです。初めて使用する場合でも、約10分で動作するFlashリクエストを作成できるようになります。

Gemini 3.5 Flash APIで得られるもの
初日に重要な3つのこと:
gemini-3.5-flash: 現在稼働中、高速、安価、マルチモーダル- 同じOpenAPIスタイルのエンドポイント: 既存のGemini 3または3.1を呼び出しているプロジェクトにそのまま適用可能
- AI Studioの無料枠: クレジットカードなしで1日あたり約1,500リクエスト
Flash APIを通じて公開される機能:
- 1Mトークンの入力コンテキスト、64Kの出力トークン
- テキスト+画像入力、テキスト+構造化出力
- ネイティブ関数呼び出しとツール利用 (MCP Atlas 83.6%)
- ストリーミング応答 (他の最先端モデルより約4倍速い出力トークン/秒)
- GoogleのMRCR v2テーブルでトップのロングコンテキスト検索スコア
- チャートおよびドキュメントの推論 (CharXiv 84.2%)
トークンあたりの料金やバッチモードの割引を含む料金詳細は、Gemini 3.5 Flash料金ガイドをご覧ください。
ステップ1: Gemini 3.5 Flash APIキーを取得する
無料のクォータか、有料のスケールかによって2つのパスがあります。
パスA, Google AI Studio (無料枠)
- aistudio.google.comにアクセス
- Googleアカウントでサインイン
- 左側のナビゲーションでAPIキーを取得をクリック
- 既存のプロジェクトを選択するか、新しく作成
- APIキーを作成をクリックし、コピー
これは、無料のGemini APIキーガイドで説明されているものと同じフローです。このキーは、無料の日次クォータですぐにgemini-3.5-flashに対して機能します。

パスB, Vertex AI (本番環境)
請求と監査ログを備えた本番ワークロードの場合:
- Google Cloud ConsoleでVertex AI APIを有効にする
aiplatform.user権限を持つサービスアカウントを作成- JSON認証情報をダウンロード
gcloud auth application-default loginまたはJSONファイルを介して認証
VertexはFlashをわずかに異なるSDKパターンでルーティングします。ほとんどのチームはAI Studioから始め、組織の制御が必要になったときに移行します。
ステップ2: SDKをインストールする
公式のGoogle GenAI SDKはPython、Node.js、Go、Javaで提供されています。言語を選択してください:
# Python
pip install -U google-genai
# Node.js
npm install @google/genai
# Go
go get google.golang.org/genai
RESTエンドポイントを直接呼び出す場合はSDKは必要ありません。以下のcurlの例を参照してください。
ステップ3: 最初のFlash呼び出しを行う
Python
import os
from google import genai
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="Explain how OAuth 2.0 PKCE flow works in 3 short paragraphs."
)
print(response.text)
Node.js
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const response = await ai.models.generateContent({
model: "gemini-3.5-flash",
contents: "Explain how OAuth 2.0 PKCE flow works in 3 short paragraphs.",
});
console.log(response.text);
curl
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [{"text": "Explain how OAuth 2.0 PKCE flow works in 3 short paragraphs."}]
}]
}'
これがFlashのハッピーパスです。ここから、実際に必要な機能を積み重ねていきます。
ストリーミング応答
Flashの出力は高速です。ストリーミングにより、その速度をユーザーに視覚的に示せます。
Python
stream = client.models.generate_content_stream(
model="gemini-3.5-flash",
contents="Write a 5-step tutorial on writing a REST API client in Go."
)
for chunk in stream:
print(chunk.text, end="", flush=True)
Node.js
const stream = await ai.models.generateContentStream({
model: "gemini-3.5-flash",
contents: "Write a 5-step tutorial on writing a REST API client in Go.",
});
for await (const chunk of stream) {
process.stdout.write(chunk.text);
}
生のREST呼び出しの場合、エンドポイントは:generateContentから:streamGenerateContentに変わります。
Flashによるマルチモーダル入力
Gemini 3.5 Flashはテキストと共に画像を受け入れます。CharXiv Reasoningスコア84.2%は本物で、このモデルではチャートの理解が実際に機能します。
Python (ディスクからの画像)
import os
from google import genai
from google.genai import types
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
with open("dashboard.png", "rb") as f:
image_bytes = f.read()
response = client.models.generate_content(
model="gemini-3.5-flash",
contents=[
types.Part.from_bytes(data=image_bytes, mime_type="image/png"),
"Extract every metric in this dashboard as a JSON object."
]
)
print(response.text)
サポートされるMIMEタイプ:image/png、image/jpeg、image/webp、image/heic、image/heif。PDFと動画もtypes.Part.from_uri()を通じて機能します。
Flashでの関数呼び出しとツール利用
ツール呼び出しは、Flashがその前身と区別される点です。MCP Atlasスコア83.6%は、Flashが3.1世代よりもツールをより確実に選択することを意味します。
Python
from google.genai import types
weather_tool = types.Tool(
function_declarations=[{
"name": "get_current_weather",
"description": "Get the current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "City name"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["city"]
}
}]
)
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="What's the weather in Singapore right now?",
config=types.GenerateContentConfig(tools=[weather_tool])
)
for part in response.candidates[0].content.parts:
if part.function_call:
print(f"Call: {part.function_call.name}")
print(f"Args: {dict(part.function_call.args)}")
Flashは、名前と引数を含むfunction_callオブジェクトを返します。関数をローカルで実行し、結果を返送して会話を続けます。このパターンは、チームがすでにGemini 3 Flash APIで使用しているものと一致します。
構造化出力 (JSONモード)
レスポンスのMIMEタイプとスキーマを設定することで、FlashからJSON出力を強制できます。
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="List 3 popular API testing tools with their pricing.",
config=types.GenerateContentConfig(
response_mime_type="application/json",
response_schema={
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {"type": "string"},
"price_per_month": {"type": "number"},
"free_tier": {"type": "boolean"}
},
"required": ["name", "free_tier"]
}
}
)
)
import json
data = json.loads(response.text)
すべての呼び出しで検証されたJSON。正規表現の解析も、リトライループも不要です。
料金 (2026年5月現在)
gemini-3.5-flashの従量課金制料金:
| ティア | 入力 | 出力 |
|---|---|---|
| Standard | 約$1.50 / 1Mトークン | 約$9.00 / 1Mトークン |
| Cached input | 割引料金 | 該当なし |
| Batch mode | 約50%オフ | 約50%オフ |
バッチワークロードの場合、Gemini APIバッチモードは、リアルタイムのレイテンシを必要としないジョブに対して50%の割引を提供します。規模を決定する前に確認する価値があります。
毎日のSaaSワークロードとエージェントループの実際のコストシナリオを含む完全な料金計算については、Flash料金の内訳をご覧ください。公式のGoogleリファレンスについては、Gemini Developer API料金を参照してください。
ApidogでGemini 3.5 Flash統合をテストする
SDK呼び出しが機能するのは最初のステップにすぎません。本番環境での統合では、ストリーミングチャンク、ツール呼び出しの検証、マルチモーダルペイロード、エラーのリトライ、レート制限といった厄介な部分を処理する必要があります。ここで適切なテスト設定が役立ちます。

Apidogは、Gemini Flash APIの全機能を1つのワークスペースで処理します。
- Flashエンドポイントをリクエストとして保存: 完全なURLを貼り付け、
x-goog-api-keyを添付し、送信 - モデルバージョンをまたいでリプレイ: 同じリクエストで
gemini-3.5-flashを古いgemini-3-flashに交換し、出力を比較 - ストリーム応答をインラインで表示: Apidogは到着したストリームチャンクをタイミングと共にレンダリング
- JSONスキーマ出力を検証: プロンプトを変更したときにずれをアサーションで検出
- Flashエンドポイントをモック: APIクォータを消費せずにダウンストリームコードをテストするためのモックレスポンスを生成
- エージェントループのテストシナリオを構築: 複数のFlash呼び出しを段階的なツール呼び出し検証と連携させる
開始するには、Apidogをダウンロードし、Flashエンドポイントを指す新しいリクエストを作成し、この投稿の冒頭にあるcurlスニペットをインポートします。全体の設定には約2分かかります。
エラー処理とレート制限
Flashのエラーモデルは単純です。重要なコード:
- 400: 不正なリクエスト (ほとんどの場合、
contents配列の形式が不正であるか、サポートされていないMIMEタイプ) - 401: 不正なAPIキー
- 403: クォータを使い果たした、またはモデルが有効になっていない
- 429: レート制限 (待機して再試行)
- 500/503: サーバー側、指数関数的バックオフで再試行
Flash呼び出しをリトライループでラップします:
import time
from google import genai
def call_with_retry(client, model, prompt, max_retries=3):
for attempt in range(max_retries):
try:
return client.models.generate_content(model=model, contents=prompt)
except Exception as e:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt)
無料枠のクォータは毎日リセットされます (1分あたり15リクエスト、Flashでは1日あたり約1,500リクエスト)。本番ティアのクォータは1分ごとおよび1日ごとにリセットされます。高スループットのジョブの場合、バッチモードのパスを確認するか、制限に達したときにGemini 3 Flashへの階層型フォールバックを使用してください。
Gemini 3.1から3.5 Flashへの移行
ほとんどのプロジェクトでは、変更する文字列はモデル名だけです。
# Before
model="gemini-3.1-pro" # or gemini-3.1-flash
# After
model="gemini-3.5-flash"
スワップ後に検証すべきこと:
- ツールスキーマがまだ一致しているか、ほとんどの呼び出しでは一致しますが、評価を再実行してください
- 出力速度、FlashはStreamsを約4倍高速で処理するため、ストリーミングUIでスロットリングが必要になる場合があります
- トークン予算、1M / 64Kの制限は同じですが、モデルがより高密度であるため、特定のプロンプトではより少ない出力トークンを使用する場合があります
- 拒否パターン、安全ガードレールがより厳しくなっています。エッジケースで異なる拒否が予想されます
より詳細な移行手順については、Gemini 3.1 Pro APIガイドでSDKパターンについて説明しています。すべてそのまま引き継がれます。
一般的なFlashパターン
ロングコンテキストドキュメント分析
with open("large_report.pdf", "rb") as f:
pdf_bytes = f.read()
response = client.models.generate_content(
model="gemini-3.5-flash",
contents=[
types.Part.from_bytes(data=pdf_bytes, mime_type="application/pdf"),
"Summarize the financial outlook from this report in 5 bullet points."
]
)
Flashの1Mトークンコンテキストは、チャンキングなしで完全なPDFを処理します。
ツール呼び出しを伴うエージェントループ
conversation = [{"role": "user", "parts": [{"text": "Book me a flight to Tokyo"}]}]
while True:
response = client.models.generate_content(
model="gemini-3.5-flash",
contents=conversation,
config=types.GenerateContentConfig(tools=[flight_search_tool, booking_tool])
)
part = response.candidates[0].content.parts[0]
if not part.function_call:
print(part.text)
break
result = execute_tool(part.function_call)
conversation.append({"role": "model", "parts": [part]})
conversation.append({"role": "user", "parts": [{"function_response": result}]})
これは、FlashのTerminal-Bench 2.1スコア(76.2%)が測定するループパターンです。実際のエージェント実行は機能します。
よくある質問
Gemini 3.5 Flash APIに無料枠はありますか? はい、Google AI Studioを通じて日次クォータ(1日あたり約1,500リクエスト)があります。クレジットカードは不要です。
FlashはOpenAI互換エンドポイントをサポートしていますか? はい。Googleは/v1beta/openai/でOpenAI互換のシムを公開しています。base_urlを設定し、Geminiキーを使用することで、任意のOpenAI SDKをそれに向けられます。モデル名はgemini-3.5-flashのままです。
FlashをLangChainまたはLlamaIndexで使用できますか? はい、どちらもネイティブのGemini統合があります。それぞれのラッパーでmodel="gemini-3.5-flash"を渡してください。
Gemini 3.5 Proはいつ出荷されますか? Googleの発表によると2026年6月です。それまでは、Flashが利用可能な唯一の3.5バリアントです。
Flashの最大画像サイズは? 推奨は3072×3072です。これより大きい画像はリサンプルされます。OCRが多用される作業については、Gemini 2.0 Flash OCRワークフローを参照してください。同じパターンが適用されます。
Apidogでストリーミングエンドポイントをテストするにはどうすればよいですか? リクエストを開き、エンドポイントサフィックスとして:streamGenerateContentを設定すると、Apidogは到着したSSEチャンクをレンダリングします。不完全な応答のデバッグに役立ちます。
APIログはどこで見られますか? AI Studioの「アクティビティ」下、または本番デプロイの場合はVertex AIの「ログエクスプローラ」下です。
最初に何を構築すべきか
Flashを使い始めて最初の1週間に構築する価値のあるスタータープロジェクトの短いリスト:
- PDF Q&Aボット: PDFを1Mコンテキストウィンドウにドロップし、質問し、引用された回答を返す
- チャートからJSONへのパイプライン: ダッシュボードのスクリーンショットを供給し、構造化データを抽出する
- 顧客サポートエージェント: CRMに対する関数呼び出し、無人で動作
- コードレビューアシスタント: マルチファイル差分コンテキスト、重要度評価を含む構造化出力
- 内部検索エージェント: 1Mコンテキストと内部APIへのツール呼び出しを組み合わせる
それぞれのプロジェクトで、同じテストフローが適用されます。プロンプトを構築し、SDK呼び出しでラップし、Apidogで応答の形状を検証し、出荷します。
