Gemini 3.5 Flash API の使い方

Ashley Innocent

Ashley Innocent

20 5月 2026

Gemini 3.5 Flash API の使い方

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

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つのこと:

Flash APIを通じて公開される機能:

トークンあたりの料金やバッチモードの割引を含む料金詳細は、Gemini 3.5 Flash料金ガイドをご覧ください。

ステップ1: Gemini 3.5 Flash APIキーを取得する

無料のクォータか、有料のスケールかによって2つのパスがあります。

パスA, Google AI Studio (無料枠)

  1. aistudio.google.comにアクセス
  2. Googleアカウントでサインイン
  3. 左側のナビゲーションでAPIキーを取得をクリック
  4. 既存のプロジェクトを選択するか、新しく作成
  5. APIキーを作成をクリックし、コピー

これは、無料のGemini APIキーガイドで説明されているものと同じフローです。このキーは、無料の日次クォータですぐにgemini-3.5-flashに対して機能します。

パスB, Vertex AI (本番環境)

請求と監査ログを備えた本番ワークロードの場合:

  1. Google Cloud ConsoleでVertex AI APIを有効にする
  2. aiplatform.user権限を持つサービスアカウントを作成
  3. JSON認証情報をダウンロード
  4. 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/pngimage/jpegimage/webpimage/heicimage/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つのワークスペースで処理します。

開始するには、Apidogをダウンロードし、Flashエンドポイントを指す新しいリクエストを作成し、この投稿の冒頭にあるcurlスニペットをインポートします。全体の設定には約2分かかります。

エラー処理とレート制限

Flashのエラーモデルは単純です。重要なコード:

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"

スワップ後に検証すべきこと:

  1. ツールスキーマがまだ一致しているか、ほとんどの呼び出しでは一致しますが、評価を再実行してください
  2. 出力速度、FlashはStreamsを約4倍高速で処理するため、ストリーミングUIでスロットリングが必要になる場合があります
  3. トークン予算、1M / 64Kの制限は同じですが、モデルがより高密度であるため、特定のプロンプトではより少ない出力トークンを使用する場合があります
  4. 拒否パターン、安全ガードレールがより厳しくなっています。エッジケースで異なる拒否が予想されます

より詳細な移行手順については、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週間に構築する価値のあるスタータープロジェクトの短いリスト:

それぞれのプロジェクトで、同じテストフローが適用されます。プロンプトを構築し、SDK呼び出しでラップし、Apidogで応答の形状を検証し、出荷します。

ダウンロードボタン

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる