3行でいうと
- 入口は、Google AI Studioで作るAPIキーです。新しい利用者は、規約に同意するとプロジェクトとキーが自動で作られます。キーは環境変数
GEMINI_API_KEYに入れ、SDKに任せるのが公式の基本です。GEMINI_API_KEYとGOOGLE_API_KEYの両方があると、GOOGLE_API_KEYが勝ちます。 - 公式の最新のクイックスタートは、新しい「Interactions API」で書かれています。従来の
generateContentは、公式が「legacy(従来型)」としつつ「引き続き十分にサポート」と書いています。新しい機能はInteractions側から出る、とあります。Interactionsを使うには、Python・JavaScriptともSDKが2.3.0以上です。 - 無料枠と有料枠は、料金だけでなく「入れた内容の扱い」が違います。無料(Unpaid)では、送った内容が製品の改善に使われ、人が読むことがあります。有料(Paid)では、改善には使われません。APIキーを使うAI Studioの利用も、課金が有効なプロジェクトが1つでもあると、有料側の規約の下に入る、と書かれています。
- クラウド側のGemini(公式の文書では「Gemini Enterprise Agent Platform」の名前が出てきます)は、サービスアカウントなどの企業向けの認証と統制を持つ別の入口です。同じSDKで切り替えられますが、読み込みが足りず比べきれない点があります。
この記事は、実際に使って確かめた記録ではありません。運営者はGeminiを入れていますが、使い心地はこの記事には書いていません。この記事は、2026年10月24日に公式ドキュメントを読んでまとめたものです。コードは公式ページの例を読んで写したもので、実行していません。公式ページは取得時に要約されて返るため、読み切れていない部分があります。金額、上限、モデル名は日付で変わります。法律や契約の助言ではなく、規約の解釈は専門家に確認してください。
先に結論
- 「キーを守る」と「無料か有料か」を最初に決めます。 どちらも、あとから直すより最初に決めるほうが安全です。公式は、キーを環境変数に置く、Gitに入れない、制限をかける、の3点を書いています。
- 新しく書くなら、公式の例に合わせてInteractions APIで始められます。 ただし、既存のコードや多くの解説は
generateContentで書かれています。公式は、両方が当面使えることを書いています。バッチ(Batch API)や明示的なキャッシュは、読んだ時点のInteractionsではまだ使えない、とも書かれています。 - 無料枠は、試す用途に限るのが安全です。 公式の規約は、無料のサービスに機密・個人情報を送らないよう明記しています。
- 課金は、AI Studioの画面から数分で始められますが、止まり方に癖があります。 前払いの残高が0になると、同じ請求先の全プロジェクトのキーが止まり、HTTP 402が返ります。上限や残高の反映には約10分の遅れがあり、超える可能性があります。
- クラウド側のGeminiは、「もっと強い版」ではなく「統制が必要な人向けの別の入口」です。 ゼロデータ保持の設定のような項目は、クラウド側のほうが細かく書かれています。ただし、価格や機能の差は、読めていません。
前提:用語をそろえる
- Gemini Developer API:個人や小さなチームが、APIキーで呼ぶ入口です。公式の「Gemini API products」の文書は、ほとんどの開発者はまずこちらから始めればよい、企業向けの統制が要るときは別の入口がある、と案内しています。
- Google AI Studio:ブラウザで、モデルや指示文を試し、APIキーを作る画面です。試作の場所で、うまくいったら「Get code」でコードを出せます。
- Interactions API:公式が、新しい推奨のインターフェースとして出しているAPIです。1回のやりとり全体(考える段階、道具の呼び出しと結果、最終の出力)を「Interaction」という記録として扱います。
- generateContent:従来のAPIです。Interactionsのページが「legacy」と呼び、「引き続き十分にサポートされる」と書いています。廃止予定とは書かれていませんでした。
- SDK:公式が出している呼び出し用のライブラリです。PythonやJavaScriptなどがあります。
- 標準キーと認証キー(auth key):APIキーの2種類です。標準キーは請求とクォータ(上限)にプロジェクトを結びつけますが、呼び出した主体は特定しません。認証キーはGoogle Cloudのサービスアカウントに結びつきます。
- Tier(段階):APIの利用の段階です。Free、Tier 1から3があり、レート制限の大きさが変わります。Geminiアプリのプランとは別のものです。
- ADC(Application Default Credentials):クラウド側で、キーの代わりに使う認証の仕組みです。公式の文書は、本番ではこちらを勧めています。
入口は2つ:Developer APIと、クラウド側のGemini
公式の「Gemini API products」(ai.google.devの移行の文書)の整理です。
| 観点 | Gemini Developer API | クラウド側(Gemini platform API) | 確かさ |
|---|---|---|---|
| 公式の位置づけ | 作って、本番に出して、広げる最短の道。ほとんどの開発者はここから | 企業向けの機能とサービスを持つ、Google Cloud上の入口 | 文書に書かれている |
| 認証 | Gemini APIキー | サービスアカウント(本番はADCを勧める)。テスト用にGoogle CloudのAPIキーも使える | 文書に書かれている |
| 使えるSDK | 統一されたGoogle GenAI SDK | 同じSDK。クライアントの作り方が違う | 文書に書かれている |
| 使える国 | 提供国・地域の一覧があり(available-regions、2026-10-22更新と表示)、日本は載っている | 同じ一覧のページが「一覧にない国ならこちら(Cloud側)を試す」と案内している | 文書に書かれている |
| 価格・上限 | このガイドの下の節 | 読めていない | 確認できず |
「クラウド側」の呼び方について。ai.google.devの移行の文書は「Gemini platform」と書き、文書のURLには「Gemini Enterprise Agent Platform」が使われています。この文書の本文には「Vertex AI」の名前は出てきませんでした。一方で、データの保存を説明するai.google.devのページは、Vertex AIを名指しで勧めている、という要約が返ってきました。名前の関係を説明した公式の文書は、読んだ範囲では見つかりませんでした。このガイドでは、公式の文書の表記に合わせて「クラウド側」と書き、検索で「Vertex AI」の名前で探すときのために、ここに残します。
Google AI Studio:試す場所
公式の「Google AI Studio quickstart」を読んだ範囲では、画面は次のように説明されています。
- Playground:開くと、新しいチャットのプロンプトが開いています。ほかの画面(リアルタイム音声や動画生成など)については、読んだ範囲では詳しい説明は見つかりませんでした。
- Run settings(右上の調整のアイコン):System Instructions(役割や振る舞いの指示)、モデルのパラメータ、安全設定、構造化出力・関数呼び出し・コード実行・グラウンディング(検索などで裏づけ)のスイッチがあります。
- 入力欄とRun:メッセージを入れて「Run」で送ります。
- Get code:選んだ言語の呼び出しコードを出します。うまくいったプロンプトを保存して、あとで続けたり共有したりもできる、とあります。保存先がどこかは、このページには書かれていませんでした。
- 会話は全部が毎回送られる。 公式は、会話が長くなるとモデルのトークンの上限に届きうる、と注意しています。
APIキーに関わる画面は、別のページで説明されています。API keysのページ、Projectsのページ、Dashboardの下のUsageなどです。次の節からは、そこを使います。
APIキー:作る、置く、守る
作る
公式の「Using Gemini API keys」によると、AI Studioの「Get API key」のボタンか、API keysのページ(aistudio.google.com/apikey)から作ります。
- 新しい利用者:規約に同意すると、既定のGoogle Cloudのプロジェクトとキーが自動で作られます。プロジェクトの名前は、Projectsの画面で変えられます。
- すでにGoogle Cloudを使っている人:既定のプロジェクトは作られません。左のDashboardから「Projects」を開き、「Import projects」でプロジェクトを選び「Import」を押してから、API keysのページでキーを作ります。
- 「このプロジェクトでキーを作る権限がありません」と出たとき:管理者に、Project Editorのような役割をもらいます。公式は、必要な権限として
resourcemanager.projects.get、apikeys.keys.create、serviceusage.services.enable、iam.serviceAccounts.create、iam.serviceAccountApiKeyBindings.createを挙げています。もらえないときは、組織に属さない新しいプロジェクトを作る、と書かれています。 - 数の上限:Projectsのページから一度に作れるプロジェクトは10まで。API keysとProjectsのページに出るのは、キー100個、プロジェクト50個までです。AI Studioは、制限のないキーか、Gemini APIだけに制限したキーしか表示しません。それ以外のキーはCloudのコンソールで見ます。
置く:環境変数
公式は、SDKが GEMINI_API_KEY か GOOGLE_API_KEY を自動で読む、と書いています。両方あると、GOOGLE_API_KEY が優先されます。公式の手順は次のとおりです。
# macOS(zsh)の例。~/.zshrc に書く
export GEMINI_API_KEY=<YOUR_API_KEY_HERE>
source ~/.zshrc
Linuxのbashなら ~/.bashrc です。Windowsは、検索で「Environment Variables」を開き、ユーザーの環境変数として、名前を GEMINI_API_KEY、値をキーにして追加し、新しい端末を開き直します(ボタンの名前までは確認できていません)。
コードにキーを直接書く方法も公式にありますが、「環境変数が使えないときだけ」とされています(PythonのClientに api_key= を渡す形)。
「ほかのどこかで `GOOGLE_API_KEY` が設定されていないか」を先に見る
- 公式が書いているのは、両方あると
GOOGLE_API_KEYが優先される、という事実だけです。クラウド側のキーの文書もGOOGLE_API_KEYを例に挙げています。 - ここは僕らの見立てです。別のプロジェクトのためにすでに
GOOGLE_API_KEYを端末に置いている人は、AI Studioで作ったキーをGEMINI_API_KEYに入れても、意図しないキーで呼ばれるかもしれません。最初の呼び出しがエラーになるときは、2つの変数を両方確かめるのがよさそうです。
守る:公式の注意
公式は、キーをパスワードのように扱うよう書いています。漏れると、クォータを使われる、思いがけない請求が出る、非公開のリソースが見られる、が起こりえます。
- Gitなどのバージョン管理に入れない。
- 本番のWebやモバイルのアプリのコードにキーを置かない。取り出されるので、自前のバックエンド(中継)を通す。
- 設定ファイルより環境変数。本番ではGoogle Cloud Secret Managerなどの保管庫。
- Google Cloudのコンソールで、請求のアラートを設定して、利用や費用の急な増加に気づけるようにする。
- キーに制限をかける。 API keysのページで「Unrestricted」と出ているキーにカーソルを合わせ、「Add restrictions」を押し、「Restrict to Gemini API only」を選んで「Restrict key」を押します(公式が勧める方法A)。Cloudのコンソールで他のAPIに制限をかける方法Bは、Generative Language APIを選ばないので、Geminiへの要求が失敗する、と警告されています。
漏れたときの手順(公式のチェックリスト):
- AI StudioかCloudのコンソールで、新しいキーを作る。
- アプリを新しいキーで配り直す。
- 新しいキーが動くと確かめてから、漏れたキーを無効にする。新しいキーが動く前に消すと、止まる。
- Cloudの請求ログとAPIの利用を見て、身に覚えのない使われ方がないか調べる。
漏れたキーで呼ぶと、「キーが漏れたと報告された」という内容のエラーが返る、とトラブルシューティングのページにあります。
キーの種類と、日付のある変更
公式の同じページに、次の整理があります。
| 項目 | 内容 | 確かさ |
|---|---|---|
| 標準キー | 請求とクォータをプロジェクトに結びつける。呼び出した主体は特定しない | 文書に書かれている |
| 認証キー(auth key) | サービスアカウントに結びつき、その主体として動く。既定でGenerative Language APIに制限される。漏れに対する早い無効化の仕組みがある | 文書に書かれている |
| 2026年5月7日 | 長く使われていない、制限のないキーはブロックされ、AI Studioに「Blocked」と出る | 文書に書かれている |
| 2026年5月28日 | AI Studioで新しく作るキーは、既定で認証キーになる | 文書に書かれている |
| いま | 制限のない標準キーでの要求は、Gemini APIが拒否する。制限がある標準キーは使える | 文書に書かれている |
古い標準キーを認証キーに変える手順も、公式にあります。API keysのページの「Key Type」の列で「Standard」を探し、「Create API key」で新しく作って、コードや環境変数を差し替え、動作を確かめてから、古いキーを消すか無効にします。なお、認証キーでの呼び出しは、Google Cloudのサービスアカウントの利用メトリクスには出ない、とあります。
SDKを選ぶ
公式の「Libraries」のページの整理です。
| 言語 | パッケージ | インストール | 確かさ |
|---|---|---|---|
| Python | google-genai |
pip install google-genai |
文書に書かれている |
| JavaScript・TypeScript | @google/genai |
npm install @google/genai |
文書に書かれている |
| Go | google.golang.org/genai |
go get google.golang.org/genai |
文書に書かれている |
| Java | com.google.genai:google-genai |
Mavenの依存。例では版 1.0.0 |
文書に書かれている |
| C# | Google.GenAI |
dotnet add package Google.GenAI |
文書に書かれている |
公式は、これらを「安定していて、本番で使える」ものとして勧めています(Google GenAI SDKは2025年5月にGA)。
古いライブラリに注意。 2025年11月30日付で非推奨になったものとして、Pythonの google-generativeai、JavaScriptの @google/generativeai、Goの google.golang.org/generative-ai などが挙がっています。「保守されていない」とされ、Live APIやVeoのような新しい機能がありません。古い解説に従って旧パッケージを入れると、この問題に当たります。
Interactions APIの版の条件。 Interactionsのページには、PythonのSDKは google-genai の2.3.0以上、JavaScriptは @google/genai の2.3.0以上を使うように、と書かれています。クイックスタートの公式のコマンドは pip install -U google-genai で、-U が付いています。すでに古い版が入っている環境では、この -U が効きます。
最小の呼び出し
Pythonの最小の例
公式のクイックスタート(Interactions API)の例です。実行はしていません。
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.8-flash",
input="Explain how AI works in a few words"
)
print(interaction.output_text)
genai.Client() に引数がないのは、環境変数の GEMINI_API_KEY を読むからです。interaction.output_text は、SDKが付けている便利な項目で、最終の文章をそのまま取り出せます。
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: "gemini-3.8-flash",
input: "Explain how AI works in a few words",
});
console.log(interaction.output_text);
REST(SDKなし)
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3.8-flash",
"input": "Explain how AI works in a few words"
}'
REST(HTTPで直接呼ぶ形)の応答は、メタデータ、使用量、そのターンの段階(step)の履歴を含む、Interactionの全体です。キーは、x-goog-api-key というヘッダーで渡します。
ストリーミング(逐次表示)
SDKでは stream=True(JavaScriptは stream: true)を付けます。RESTでは、URLに ?alt=sse を付け、本文にも "stream": true を入れます。公式は、サーバーがSSE(server-sent events)で送り、文章は step.delta というイベントで届く、と説明しています。
会話を続ける、指示を足す、設定を変える
- 続きの会話(stateful):前のInteractionの
idをprevious_interaction_idに渡すと、サーバーが履歴を取り出します。公式は、こちらを勧めています。 - 履歴を自分で持つ(stateless):毎回、全部の履歴を送ります。ただし、クイックスタートの要約では、この場合は
store=falseにして、思考や関数呼び出しの段階も、受け取ったままの形で送り返す必要がある、と書かれていました。 - 毎ターン、書き直すもの:
tools、system_instruction、generation_configは、次のターンに引き継がれません。毎回指定します。 - システム指示:公式の例は、
system_instruction="You are a cat. Your name is Neko."のように、createの引数として渡します。 - 出力の長さと思考の深さ:
generation_configの中にmax_output_tokens、thinking_levelを入れます(例:generation_config={"max_output_tokens": 500}、generation_config={"thinking_level": "low"})。 - 温度などの注意:テキスト生成のページには、Gemini 4と3.6以降のモデルは、自分で指定した
temperature、top_p、top_kの値を無視し、非推奨の警告のヘッダーを返す、とあります。その場合は、リクエストから外すよう案内されています。
generateContentは、どう扱うか
公式の移行の文書は、従来の形(generateContent)も当面は使えるとしつつ、新しい機能は新しい側から出る、と書いています。従来の形の呼び出し例(client.models.generate_content(...)、結果は response.text)は、今回の読み込みでは例のコードを直接確認できていません。使う前に公式の例を見てください。
Interactionsには、まだ使えないものがあります(Interactionsのページの記載、2026年10月24日に読んだ内容)。
| 機能 | 読んだ内容 | 確かさ |
|---|---|---|
| Batch API | まだ使えない | 文書に書かれている |
| Pythonの自動の関数呼び出し | まだ使えない | 文書に書かれている |
| 明示的なキャッシュ | まだ使えない(暗黙のキャッシュは previous_interaction_id を通して効く) |
文書に書かれている |
| リモートMCP | Gemini 3ではまだ対応していない | 文書に書かれている |
ここは僕らの見立てです。Batchで安く大量に回したい人や、キャッシュを自分で管理したい人は、いまのところ generateContent のほうが合うかもしれません。まず、使いたい機能がこの表にないかを見てください。
スキーマの変更とAPIの版
- 更新履歴の2026年5月6日の項目には、Interactionsのデータの形が変わる予告があります(
outputsがstepsに、response_formatの変更)。新しい形が既定になるのは5月26日、古い形が消えるのは6月8日、と書かれていました。完了したかどうかは、読んだ範囲では書かれていませんでした。 - InteractionsのGA(一般提供)について、Interactionsのページは「2026年6月からGA、すべての新規プロジェクトに推奨」と書いています。更新履歴には、GAの記載は見つかりませんでした。
- クイックスタートの要約には、
Api-Revision: 2026-05-20というヘッダーが2つのRESTの例(マルチモーダル入力、バックグラウンド実行の確認)に出る、とありました。このヘッダーがなぜ必要かは、Interactionsのページにも更新履歴にもなく、確認できていません。この記事のRESTの例(クイックスタートとキーのページのもの)には付いていません。 - 昔の解説で
outputsという欄を使っている例は、古い形かもしれません。ここはこの記事の見立てで、確認はしていません。
OpenAIのライブラリで呼ぶ(ベータ)
すでにOpenAIのPythonライブラリで書いたコードがある人向けに、公式の「OpenAI compatibility」の文書があります。基本のURLは https://generativelanguage.googleapis.com/v1beta/openai/ で、api_key にGeminiのキーを渡します。
from openai import OpenAI
client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
response = client.chat.completions.create(
model="gemini-3.8-flash",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain to me how AI works"}
]
)
print(response.choices[0].message)
公式は、この互換の対応を「ベータ」と書き、機能を広げている途中だとしています。チャット、ストリーミング、関数呼び出し、画像・音声の理解、構造化出力、埋め込み、バッチ(作成、状態、結果)が挙がっています。バッチのファイルのアップロードとダウンロードは、OpenAIのライブラリではできず、genai のクライアントが必要です。reasoning_effort と thinking_level は同時に使えません。コードの GEMINI_API_KEY は、例の文字列です。実際のキーを直接書かない(環境変数から読む)のが、前の節の注意です。
埋め込み(embedding):検索や分類の素材を作る
埋め込みは、文章などを数の並び(ベクトル)に変えて、意味の近さで検索や分類に使うものです。公式の「Embeddings」のガイドによると、次の2つが挙がっています。
| モデルID | 入力 | 入力の上限 | 公式の記載 |
|---|---|---|---|
gemini-embedding-2 |
文章、画像、動画、音声、PDF | 8,192トークン | 安定版。最新の更新は2026年4月 |
gemini-embedding-001 |
文章のみ | 2,048トークン | 安定版。文章だけなら引き続き使える |
呼び出しは、Interactionsとは別の形で、client.models.embed_content を使います。公式の例です。
from google import genai
client = genai.Client()
result = client.models.embed_content(
model="gemini-embedding-2",
contents="What is the meaning of life?"
)
print(result.embeddings)
print(result.embeddings) で何が表示されるかは、公式のページに出力の例がなく、読めていません。値そのものを取り出し、長さを確かめる書き方は、次の例が公式に載っています。
from google import genai
from google.genai import types
client = genai.Client()
result = client.models.embed_content(
model="gemini-embedding-2",
contents="What is the meaning of life?",
config=types.EmbedContentConfig(output_dimensionality=768)
)
[embedding_obj] = result.embeddings
embedding_length = len(embedding_obj.values)
print(f"Length of embedding: {embedding_length}")
公式の出力の例は Length of embedding: 768 です。config=types.EmbedContentConfig(output_dimensionality=768) が次元を指定する書き方、[embedding_obj] = result.embeddings と embedding_obj.values が、1件分の数の並びの取り出し方です。
- 次元数:どちらも既定は3072。
output_dimensionalityで128〜3072の間で指定でき、公式は768、1536、3072を勧めています。gemini-embedding-2は、小さくした次元も自動で正規化します。gemini-embedding-001は、3072以外では自分で正規化が必要、とあります。 - 用途の指定:
gemini-embedding-2にはtask_typeの引数がなく、文字列の中にtask: search result | query: ...のように書く形です。次の節の表のとおり、質問側と文書側で書き方が違います。gemini-embedding-001はtask_typeを使い、RETRIEVAL_QUERY、RETRIEVAL_DOCUMENT、CLASSIFICATIONなどの8種類があります。 - 複数の入力:
gemini-embedding-2に複数の入力を1回のリクエストで直接渡すと、まとめた1つの埋め込みが返る、とマルチモーダルの例の節にあります。別々の埋め込みが欲しいときは、入力ごとにtypes.Contentで包みます。文章だけの配列を渡したときの挙動は、読んだ範囲では確認できていません。gemini-embedding-001の公式の例は、文章の配列を渡し、result.embeddingsの1件ずつからe.valuesを取り出しています。 - モデルを替えるとき:2つのモデルのベクトルの空間は互換ではないので、既存のデータは全部、作り直す必要があります。
- ずれの点:モデル一覧のページには
gemini-embedding-2-previewとgemini-embedding-001が載り、埋め込みのガイドはgemini-embedding-2(安定版)と書いていました。更新履歴では、プレビューが2026年3月10日、GAが4月22日です。一覧のページが古いのか別の表記なのかは、確認できていません。呼ぶときのモデルIDは、ガイドの例(gemini-embedding-2)を使い、通らなければ一覧を見るのがよさそうです(僕らの見立て)。 - 埋め込みの料金:料金ページの読めた範囲に、埋め込みの項は見つかりませんでした。数字は載せません。
検索で使う:質問側と文書側の書き方(gemini-embedding-2)
公式のEmbeddingsのガイドは、gemini-embedding-2 では用途を文字列の接頭辞で伝え、検索のように質問と文書を別の形にするものと、同じ形にするものを分けています。
質問側と文書側の書き方は、公式のガイドでは次のとおりです(縦棒 | は接頭辞の一部です)。
- 検索(非対称):質問側は
task: search result | query: {content}、文書側はtitle: {title} | text: {content}(題名がなければtitle: none)。 - 質問応答(非対称):質問側は
task: question answering | query: {content}、文書側は検索と同じ。 - 事実確認(非対称):質問側は
task: fact checking | query: {content}、文書側は検索と同じ。 - コード検索(非対称):質問側は
task: code retrieval | query: {content}、文書側は検索と同じ。 - 分類(対称):
task: classification | query: {content}を、質問側も文書側も同じ形で使います。 - クラスタリング(対称):
task: clustering | query: {content}を、同じ形で使います。 - 文の類似度(対称):
task: sentence similarity | query: {content}を、同じ形で使います。検索や取り出しには使わない、と書かれています。
公式のページは、同じ用途の中では書き方をそろえること(文書を分類の形で作ったら、質問側も同じ形で作る)を求めています。公式の例の補助関数は、次のとおりです。
# 質問側(用途に合う行を選ぶ)
def prepare_query(query):
# return f"task: question answering | query: {query}"
# return f"task: fact checking | query: {query}"
# return f"task: code retrieval | query: {query}"
return f"task: search result | query: {query}"
# 文書側(非対称の検索)
def prepare_document(content, title=None):
if title is None:
title = "none"
return f"title: {title} | text: {content}"
gemini-embedding-001 の場合は、これらの接頭辞ではなく config=types.EmbedContentConfig(task_type="SEMANTIC_SIMILARITY") のように task_type を渡します(公式の例は、文章の配列と類似度の行列)。3072以外の次元にしたときの正規化は、公式の例では numpy で値を自分のノルムで割っています。
埋め込みの最初の10分(公式の例だけで組める手順)
- 前の節のとおり、環境変数
GEMINI_API_KEYを置き、pip install -U google-genaiを実行する。 - 公式の最初の例(
contents="What is the meaning of life?")を1回動かす。 output_dimensionality=768を付けた例に変え、Length of embedding: 768と出るかを確かめる。- 文書側を
title: none | text: ...、質問側をtask: search result | query: ...の形にそろえて、2本の文字列を作る(動かして近さを測るところは、公式の例の範囲を超えるので、ここでは扱いません)。 - あとで別のモデルへ替える可能性があるなら、ベクトルの空間は互換ではない点を思い出し、元の文章を残しておく(ここは僕らの整理です)。
無料枠と有料枠:料金だけでなく、データの扱いが違う
3つの枠
公式の料金ページ(2026年10月24日に確認)は、Free、Paid、Enterpriseに分けています。
| 枠 | 公式の説明(言い換え) | 入力・出力の扱い | 確かさ |
|---|---|---|---|
| Free | 一部のモデルの限定的な利用。入力・出力のトークンが無料 | 製品の改善に使われる | 文書に書かれている |
| Paid | 本番向けの高いレート制限、Batch API(費用50%減) | 製品の改善に使われない | 文書に書かれている |
| Enterprise | Paidのすべてに、専任のサポート、高度なセキュリティとコンプライアンス、確保された処理能力、量に応じた割引が選べる | このページには書かれていない | 確認できず |
単価(標準、有料枠、100万トークンあたり、米ドル)
| モデル | 無料枠 | 入力 | 出力(思考を含む) | 確かさ |
|---|---|---|---|---|
gemini-4-argon |
なし(Not available) | 2.00ドル(11月30日まで)、4.00ドル(12月1日から) | 10.00ドル(11月30日まで)、20.00ドル(12月1日から) | 文書に書かれている |
gemini-3.8-flash |
あり(Free of charge) | 0.75ドル(12月31日まで)、1.50ドル(2027年1月1日から) | 3.75ドル(12月31日まで)、7.50ドル(2027年1月1日から) | 文書に書かれている |
gemini-3.5-flash-lite |
あり(Free of charge) | 0.30ドル | 2.50ドル | 文書に書かれている |
- Batchは標準の半分。 上の3モデルはいずれも、標準の50%で書かれています。前の節のとおり、Interactionsではまだ使えません。
- コンテキストキャッシュ。
gemini-3.8-flashは、キャッシュの読み出しが100万トークンあたり0.075ドル(2027年1月1日から0.15ドル)、保管が100万トークンあたり1時間0.50ドル(同1.00ドル)と書かれています(いずれも標準・有料枠)。gemini-4-argonは暗黙のキャッシュのみです。 - 検索によるグラウンディング。 Gemini 3以降で共有の月5,000件が無料で、超えると1,000件あたり14ドル、と書かれています。ただし、上の3モデルの無料枠の欄は「Not available」とされていて、無料のキーで使えるかどうかは、読んだ範囲では読み取れませんでした。
- 円の表示は、読んだ範囲では見つかりませんでした。
レート制限とTier
公式の「Rate limits」の整理です。
- 測り方:1分あたりのリクエスト数(RPM)、入力トークン数(TPM)、1日あたりのリクエスト数(RPD)。どれか1つでも超えるとエラーになります。画像モデルには1分あたりの画像数、一部のモデルには1日あたりのトークン数の上限もあります。
- 単位はプロジェクトです。キーごとではありません。
- 日次の戻り:RPDは太平洋時間の午前0時に戻ります。
- 見る場所:AI Studioのレート制限のページ(aistudio.google.com/rate-limit)。Projectsのページに、Tierが出ます。モデルごとの具体的な数字は、このページの要約には出ていませんでした。
- プレビューや実験のモデルは、制限が厳しめです。
| Tier | 条件 | 課金の上限(Billing tier cap) |
|---|---|---|
| Free | 有効なプロジェクト、または無料トライアル | なし |
| Tier 1 | 有効な課金アカウントを紐づける | 250ドル |
| Tier 2 | 100ドルの支払いと、最初の支払いから3日 | 2,000ドル |
| Tier 3 | 1,000ドルの支払いと、最初の支払いから30日 | 2万ドル〜10万ドル超 |
上の上限は、課金の文書で「月ごと」と説明されています(前のガイド03では月ごとか読み取れませんでした)。そこに達すると、紐づいた全プロジェクトのサービスがいったん止まり、次の請求サイクルまで待ちます。Tierの引き上げは自動で、Freeから Tier 1 は通常すぐ、そのあとは10分以内です。増やしたいときは、「Request paid tier rate limit increase」のフォームがありますが、増える保証はない、と書かれています。上の表のほかに、10分間のうちに使える金額の上限(Tier 1は10ドル、Tier 2は50ドル、Tier 3は200ドル)も書かれ、超えると 429 RESOURCE_EXHAUSTED が返ります。
課金を始める手順(公式の文書)
- AI Studioで、API keysかProjectsのページを開く。
- Projectsのページで、無料のプロジェクトの「Billing Tier」の列にある「Set up billing」を押す。
- Google Cloudの請求先をまだ持っていなければ、国を選んで規約に同意し、連絡先と支払い方法を入れる。持っていれば選ぶか「Add new billing account」を押す。
- 最低5ドルを前払いする(Prepay)。選べる場合は後払い(Postpay)もあり、移行期間のあいだ後払いが割り当てられることもある。
前払いの細部:最小5ドル、最大5,000ドル。未使用のクレジットは購入から12か月で期限が切れ、返金されません(後払いへの切り替えのときは自動で返金される、という記述が別にあります)。「Setup auto-reload」で残高が減ったときの自動の追加ができ、「Monthly Limit」で月の追加額に上限を付けられます。後払いから前払いへは「Switch to Prepay」で変えられます。前払いから後払いへの切り替えは、FAQでは「対応していない」とされる一方、返金の節には切り替えを前提にした記述があり、同じページの中で食い違っています。どちらかに頼る前に、公式の画面で確かめてください。
使った量の見方:AI Studioの「Dashboard」の「Usage」。Cloud Billingのコンソールでも見られます。プロジェクトごとの月の上限は「Spend」のページの「Monthly spend cap」(公式は実験的と書いています)です。請求のアラートの記載は、課金の文書には見つかりませんでした(キーの文書には、Cloudのコンソールで設定する、とあります)。
止まり方と落とし穴(公式の「Warnings」):
- 前払いの残高が0になると、紐づいたすべてのプロジェクトのすべてのキーが止まり、HTTP 402(Payment Required)が返ります。自動で無料枠に戻るわけではありません。
- 前払いも上限も、約10分の遅れがあります。バッチやエージェントは、超過しやすい、とあります。超えた場合の精算の細部は、読んだ範囲では確認できていません。
- 後払いの未払いや、同じ請求先の他のGoogle Cloudサービスの支払いの失敗が、前払いが残っていてもGemini APIの停止につながることがあります。
- 2026年3月2日より後に開いたアカウントでは、Google CloudのWelcomeクレジットは、Gemini APIとAI Studioの利用に使えません。
- 400や500のエラーで失敗したリクエストは課金されませんが、クォータには数えられます。
- 無料に戻すには、各プロジェクトで課金を無効にします。前払いの請求先を閉じると、後払いにする場合を除き、残りのクレジットは失われると書かれています(同じ節に、閉じると自動で返金されるという記述もあり、食い違っています)。
入れた内容はどうなるか
規約が書いていること
公式の「Gemini API Additional Terms of Service」を読んだ範囲です。
| 項目 | 無料(Unpaid Services) | 有料(Paid Services) | 確かさ |
|---|---|---|---|
| 内容の製品への利用 | 送った内容と応答を、製品や機械学習の提供・改善・開発に使う | 製品の改善には使わない。データ処理の追加条項に従う | 文書に書かれている |
| 人が読むか | レビュアーが読んだり注釈を付けたりすることがある。Googleアカウント、APIキー、Cloudプロジェクトとのひもづけは先に外す | 人のレビューの記載は、読んだ範囲では見つからなかった | 文書に書かれている |
| ログ | 読んだ範囲では、別の記載は見つからなかった | 禁止された使い方の検知、安全、法令の開示のために、限られた期間、ログを取る。保管の長さは書かれていない。国をまたいで一時的に保管やキャッシュされうる | 文書に書かれている |
| 機密・個人情報 | 「送らないこと」と明記 | この警告は、無料の節に書かれている | 文書に書かれている |
そのほかの条件:
- 年齢:APIを使えるのは18歳以上です。18歳未満が使うおそれのあるアプリに組み込むことも認められていません。
- EEA、スイス、英国:これらの地域の利用者にアプリを提供するなら、有料のサービスだけを使う、と書かれています。さらに、無料のAI Studioや無料のAPIのクォータでも、これらの地域の利用者には有料側のデータの扱いの条件が適用される、とあります。
- AI Studioは「有料」になりうる:AI Studioは、有効なCloud Billingの請求先があるCloudプロジェクトにアクセスできるアカウント(またはWorkspaceの企業向けアカウント)なら、無料の利用でも有料側のサービスとして数えられます。課金の文書も、少なくとも1つのAPIのプロジェクトで課金が有効なら、AI Studioのプロンプトも同じ扱い、と書いています。AI Studioの画面そのものの利用料については、読んだ範囲では明確な記載を確認できていません。
- 検索・地図によるグラウンディング:規約は、プロンプトと文脈と出力を30日間保管する、と書いています。ゼロデータ保持のページは、検索によるグラウンディングについて、この保管を無効にする方法はない、と書いています(地図について無効にできないという記載は、読んだ範囲では見つかりませんでした)。
公式の「ゼロデータ保持」のページ
ai.google.devには、ゼロデータ保持(ZDR)の文書があります。公式は、1つの設定ではなく、「条件の集まり」として説明しています。要約として読んだ内容です。
| 領域 | 読んだ内容 |
|---|---|
| 学習への利用 | 有料のサービスに限り、プロンプト(システム指示、キャッシュ、ファイルを含む)と応答を製品の改善に使わない |
| 不正利用の検知のログ | 有料でも、限られた期間ログを取る。Gemini APIには、これを止める方法は書かれていない |
| Interactions API | 状態の保存が既定でオン。store を false にすると保存しない |
| 暗黙のキャッシュ | メモリ上のみで、プロジェクトごとに分けられ、有効期限は24時間。ZDRに反しない、と書かれている |
| 明示的なキャッシュ | 利用者が決めた期限まで残る。cached_content の欄を避ければよい |
| File API | アップロードしたファイルは、消すか期限切れまで残る。自分で消す必要がある |
| Live API | SessionResumptionConfig を使わない。使うと、最大24時間、会話の状態が保たれうる |
ここに、Interactionsの保存期間の記載が加わります(Interactionsのページ)。既定は store=true で、有料枠は55日、無料枠は1日保存されます。有料のプロジェクトは、AI Studioで保存期間を7、14、28、55日から選べます。store=false にすると、previous_interaction_id も、バックグラウンド実行も使えません。保存された記録は、delete のメソッドで消せます。
AI Studioの「Data logging and sharing」(公式のログの文書)は、課金が有効なプロジェクトで、対応するAPIの呼び出しを、あなたのプロジェクトの中のログとして残す機能です。既定の保持は最大55日(7、14、28、55日から選べる)で、既定では製品の改善には使われません。ログをデータセットとして共有すると、Googleが製品の改善や学習に使うことがあり、人のレビュアーが読むこともあります。オンにする手順や画面の項目は、このページにはありませんでした。ページに画面名として出てくるのは、データセットとして共有するログを選ぶ「Logs and Datasets」だけで、保存期間はAI Studioで変えられる、と書かれています(メニューの名前は書かれていません)。自分の画面で確かめるときは、まずこの名前を探してください。
クラウド側のGeminiとの違い
切り替えは、クライアントの作り方で行う
公式の移行の文書は、同じSDKで2つの入口を切り替えられるとし、クライアントの作り方の違いを示しています。読んだ要約から、形を写します(実行していません)。
# Interactions API:Developer API
client = genai.Client()
# Interactions API:クラウド側
client = genai.Client(enterprise=True, project="your-project-id", location="global")
# generateContent:クラウド側
client = genai.Client(vertexai=True, project='your-project-id', location='us-central1')
JavaScriptにも同じ切り替えがあるとされていますが、書き方の細部は今回確認できていません。Goの従来型は、genai.BackendVertexAI を指定します。
並べて見る
| 観点 | Developer API | クラウド側 | 確かさ |
|---|---|---|---|
| 認証 | APIキー(x-goog-api-key) |
サービスアカウント。APIキーはテスト向き、本番はADCを勧める | 文書に書かれている |
| キーの入手 | AI Studio | Google Cloudのコンソールの「express mode」で作る。新規は無料の90日トライアル、と書かれている。@gmail.com のGoogleアカウントに限る、という記載もある(どこにかかるかは読み切れていない)。Workspaceのアカウントや既存のCloudの利用者は、標準のキーかADCを使う |
文書に書かれている |
| 環境変数 | GEMINI_API_KEY か GOOGLE_API_KEY |
キーの文書は GOOGLE_API_KEY を例示。移行の文書は環境変数の名前を出していない |
文書に書かれている |
| 場所の指定 | なし | project と location。Interactionsは、プレビューのあいだ global のみ、と書かれている |
文書に書かれている |
| AI Studioで作ったモデル | そのまま | 引き継がれず、作り直す | 文書に書かれている |
| データの保存の設定 | 前の節 | 学習に、事前の許可なく使わない。リクエストとレスポンスのログは既定でオフで、BigQueryに書く形。暗黙のキャッシュは最大24時間。耐久性のあるキャッシュも24時間以内。store=false は同じ |
文書に書かれている |
| 価格・上限 | 前の節 | 読めていない | 確認できず |
読んだ範囲での注意が3つあります。
- 公式のクラウド側のゼロデータ保持のページは、「一部の高度なAI機能では、ゼロデータ保持ができないことがある」と書いています。Developer APIの側の文書は、保証つきのZDRや企業向けのデータ処理の契約が要るなら、クラウド側を勧めています。
- クラウド側のクイックスタート、SDKの概要、移行の文書の本文は、取得で本文が取れず、読めていません。クライアントの作り方は、ai.google.devの移行の文書の要約から写しています。
- クラウド側のExpress modeの文書は、本文が取れず、90日の無料トライアルの数字は、キーの文書の記載だけが根拠です。無料の範囲、上限、課金への切り替えは、読めていません。
移行の手順(公式の文書)
Developer APIからクラウド側へ移るときの手順です。
- Google Cloudのサービスアカウントの認証を用意する。
- いまのAPIキーがあるプロジェクトを使うか、新しく作る。
- 地域の対応を確かめる(Interactionsはプレビューのあいだglobalのみ)。
- AI Studioで作ったモデルは作り直す。
- Developer APIのキーが要らなければ、Cloudの「API Credentials」のページで、キーの「Actions」から「Delete API key」を選び、確認する。反映には数分かかり、そのあと、そのキーの要求は拒否される。
間違って消したときの戻し方として、公式は gcloud beta services api-keys undelete の名前を挙げています。
最初の10分でやること
ここは公式に書かれている手順だけを並べた短い流れです。
- AI Studioを開く。規約に同意して、既定のプロジェクトとキーが作られたかをAPI keysのページで見る。
- Playgroundで1回、プロンプトを試す。Run settingsのSystem Instructionsも触ってみる。
- 環境変数に
GEMINI_API_KEYを置く(zshなら~/.zshrc)。新しい端末を開く。 pip install -U google-genaiを実行し、前の節のPythonの5行を動かす。- 同じ呼び出しをcurlでも動かして、REST(
x-goog-api-key)の形を見る。 - API keysのページで、キーに「Unrestricted」と出ていないかを見て、出ていれば「Restrict to Gemini API only」を付ける。
- キーのファイルをGitに入れない設定にする(公式の注意は「バージョン管理に入れない」まで。具体的な書き方は下の「僕らの整理」を参照)。
- AI Studioの「Dashboard」の「Usage」を見て、使った量が出るかを確かめる。
ここからは僕らの整理です。7番の具体例として、キーを .env というファイルに書いて使うなら、リポジトリの .gitignore に次の1行を足し、git check-ignore -v .env で無視されているかを確かめる、という手があります。公式のページにこの書き方が載っているわけではなく、Gitの一般的な使い方です。すでにコミットしてしまったキーは、公式の「漏れたときの手順」のとおり、新しいキーに替えるのが先です。
# .gitignore(僕らの整理の例。公式の例ではありません)
.env
課金を有効にするのは、この8つが終わり、無料枠では足りない理由がはっきりしてからで十分、と思います。課金を有効にすると、AI Studioの扱いも変わるからです。
僕らの見立て
- 最初の1か月は「無料枠+制限つきキー+検証用のデータ」。 本物の個人情報や機密を入れないことが、いちばん効くと思います。規約が明確に警告しているのは、ここです。
- 業務で使うなら、課金を有効にしたうえで、保存の設定を点検する。 有料にしても、Interactionsの
store、キャッシュ、File API、グラウンディングなど、残るものがあります。何が残るかは、ZDRのページの表で自分の使い方に当てはめて見るのがよさそうです。 - クラウド側へ行くかは、「統制が必要か」で決める。 公式の文書も、特別な統制が要らなければDeveloper APIから、と書いています。保証つきのZDR、サービスアカウントでの管理、データの置き場所が要件に入っているなら、クラウド側の文書を先に読む価値があります。ただし、価格や機能の差は読めていないので、比べるのはそれからです。
気をつけること
エラーと再試行の早見表
公式のTroubleshootingのページは、エラーの全表を別の「API errors」ページに任せていて、そのページは読めていません。このページの本文から読み取れた範囲と、課金の文書で書かれたものを並べます。
| HTTPコード | 公式が書く原因 | 再試行 | 出典 |
|---|---|---|---|
| 400 | 無効なAPIキー、前払いクレジットの枯渇、書き方の誤りなど、利用者側の問題としてまとめて挙げられている。課金の文書は、失敗しても課金されないが、クォータには数えられるとする | しない | Troubleshooting、課金の文書 |
| 402 | 前払いクレジットの枯渇。課金の文書は、残高0で全キーが止まりこのコードが返る、とする | しない | Troubleshooting、課金の文書 |
403(PERMISSION_DENIED) |
プロジェクトのアクセス拒否、未払いの残高、漏れた・ブロックされたキー | しない。無料枠の制限ならCloud Billingを結びつける、漏れたキーなら新しいキーを作る、と書かれている | Troubleshooting |
| 408 | 一時的なエラーとして挙げられている | 間隔を空けて再試行 | Troubleshooting |
429(RESOURCE_EXHAUSTED) |
レート制限。課金の文書は、10分間の金額の上限を超えたときにも返る、とする | 指数的に間隔を延ばし、ゆらぎを入れて、回数の上限まで | Troubleshooting、レート制限・課金の文書 |
503(UNAVAILABLE) |
一時的に使えない | 同上 | Troubleshooting |
| 5xx | 一時的なサーバーのエラー | 間隔を空けて再試行 | Troubleshooting |
公式は、一時的なエラー(429、408、5xx)だけを再試行し、400、402、403は再試行しないよう書いています。また、PythonのSDKは429と5xxを既定で最大4回まで再試行する、とあります。404、500、504は、このページの本文には出てきませんでした。失敗した要求の課金は、このページには書かれていません(400と500は課金されないとする記述は課金の文書にあります)。
全体の注意
- この記事は、実際に使って確かめた記録ではありません。運営者はGeminiを入れていますが、使い心地はこの記事には書いていません。コードの例は、公式の例を写したもので、動作確認はしていません。モデルIDと価格は、2026年10月24日に読んだ表示です。公式は、料金に日付つきの切り替わりを書いています(Gemini 4 Argonは12月1日、Gemini 3.8 Flashは2027年1月1日)。使う日の表を見直してください。
- クラウド側の文書は、本文が取れなかったものがあり、このガイドの「クラウド側」の記述は、一部が要約からの写しです。Vertex AIの名前との関係も、公式の説明は見つかりませんでした。
- 料金ページは長く、読めたのは一部です。埋め込み、画像、音声の単価は読めていません。無料枠の対象モデルの一覧も、公式の表を直接見てください。
- Interactions APIは、データの形が変わった履歴があります(2026年5月)。古い解説のコードは、そのままでは動かないかもしれません。
- 「APIキー」「無料か有料か」「保存の設定」は、法律や契約に関わりうる項目です。個人情報を扱う場合や、EEA、スイス、英国の利用者向けのアプリでは、規約の解釈を専門家に確認してください。
出典
- Gemini API quickstart(Gemini API Docs、Google、確認日2026-10-24)
- Getting started(Gemini API Docs、Google、確認日2026-10-24)
- Using Gemini API keys(Gemini API Docs、Google、確認日2026-10-24)
- Interactions API(Gemini API Docs、Google、確認日2026-10-24)
- Text generation(Gemini API Docs、Google、確認日2026-10-24)
- Google AI Studio quickstart(Gemini API Docs、Google、確認日2026-10-24)
- Gemini API libraries(Gemini API Docs、Google、確認日2026-10-24)
- OpenAI compatibility(Gemini API Docs、Google、確認日2026-10-24)
- Embeddings(Gemini API Docs、Google、確認日2026-10-24)
- Gemini models(Gemini API Docs、Google、2026-10-22更新と表示、確認日2026-10-24)
- Gemini Developer API pricing(Gemini API Docs、Google、確認日2026-10-24)
- Rate limits(Gemini API Docs、Google、確認日2026-10-24)
- Billing(Gemini API Docs、Google、確認日2026-10-24)
- Troubleshooting guide(Gemini API Docs、Google、確認日2026-10-24)
- Available regions(Gemini API Docs、Google、2026-10-22更新と表示、確認日2026-10-24)
- Changelog(Gemini API Docs、Google、確認日2026-10-24)
- Data logging and sharing(Gemini API Docs、Google、確認日2026-10-24)
- Zero data retention(Gemini API Docs、Google、確認日2026-10-24)
- Gemini API Additional Terms of Service(Google、確認日2026-10-24)
- Gemini API products:Developer APIとクラウド側の移行(Gemini API Docs、Google、確認日2026-10-24)
- Get a Google Cloud API key(Gemini Enterprise Agent Platform Docs、Google Cloud、確認日2026-10-24)
- Gemini Enterprise Agent Platform and zero data retention(Google Cloud、確認日2026-10-24)