「Gemini API を使いたいけど、どのくらい課金するんだろう」
始めようとすると、まずそこが気になりますよね。結論から言うと、趣味・学習・プロトタイプレベルなら無料枠だけで十分なことが多い です。何ができて何ができないか、実際の制限値とともに整理します。
Gemini API 無料枠の実際のスペック
2026年4月時点の無料枠(Free Tier)の主な制限は以下の通りです。
Gemini 2.0 Flash(無料枠):
- RPM(1分あたりのリクエスト数): 15
- RPD(1日あたりのリクエスト数): 1,500
- TPM(1分あたりのトークン数): 1,000,000
- 入力: テキスト・画像・音声・動画対応
- コンテキストウィンドウ: 1,048,576トークン
Gemini 2.5 Pro(無料枠):
- RPM: 5
- RPD: 25
- TPM: 250,000
- コンテキストウィンドウ: 1,048,576トークン
最新の制限値は Google AI Studio のレート制限ページ で確認できます。
実用的な観点から言うと、Gemini 2.0 Flash を使う限り、個人プロジェクトや学習目的なら1日1,500リクエストはほとんどの場合十分 です。毎秒APIを叩き続けても15 RPM の上限に引っかかりますが、普通のアプリであれば制限に当たることは少ないでしょう。
Google AI Studio でAPIキーを取得する
まず、APIキーが必要です。
- Google AI Studio にアクセス
- 右上の「Get API key」→「Create API key」
- プロジェクトを選択(なければ「Create API key in new project」)
- 生成されたキーをコピーして安全な場所に保管
Googleアカウントがあればすぐに取得できます。クレジットカードの登録は無料枠では不要です。
入門プロジェクト1: シンプルなチャットアシスタント
最初に作るなら、このくらいシンプルなものから始めるのが良いと思います。
import google.generativeai as genai
# APIキーを設定(実際には環境変数から取得することを推奨)
genai.configure(api_key="YOUR_GEMINI_API_KEY")
# モデルを選択(無料枠に余裕のある Flash を使用)
model = genai.GenerativeModel("gemini-2.0-flash")
# チャットセッションを開始
chat = model.start_chat(history=[])
print("Gemini チャット(終了は 'quit')")
while True:
user_input = input("あなた: ")
if user_input.lower() == "quit":
break
response = chat.send_message(user_input)
print(f"Gemini: {response.text}\n")このコードは google-generativeai パッケージが必要です。
pip install google-generativeai
python chat.py動かせたら、次は system_instruction を追加してAIのキャラクターを作ってみてください。たとえば「あなたは料理の専門家です。すべての質問に料理の例え話を交えて答えてください」のように指定できます。
入門プロジェクト2: 画像を読み込んで説明する
Gemini 2.0 Flash はマルチモーダルなので、画像の内容を説明させることができます。
import google.generativeai as genai
import PIL.Image
genai.configure(api_key="YOUR_GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-2.0-flash")
# ローカルの画像ファイルを読み込む
image = PIL.Image.open("sample.jpg")
# 画像について質問する
response = model.generate_content([
image,
"この画像に写っているものを詳しく説明してください。"
"気になる点や特徴的な要素があれば指摘してください。"
])
print(response.text)pip install google-generativeai Pillow料理の写真、レシートの読み取り、手書きメモのテキスト化など、意外と幅広い用途に使えます。無料枠で試してみる価値があります。
私自身、個人開発で運用しているアプリに画像分類の機能を足したときも、最初の検証はこの無料枠だけで進めました。手元の画像を数百枚ほどローカルで回し、プロンプトと分類結果の傾向をつかんでから、本番のバッチ処理で有料枠へ切り替えました。いきなり課金して試すより、無料枠で「実用に耐えるか」を見極めてから移行したほうが、結果として遠回りが少なかったように思います。
入門プロジェクト3: テキストファイルの要約ツール
ドキュメントの要約は実務で役立つ典型的なユースケースです。
import google.generativeai as genai
genai.configure(api_key="YOUR_GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-2.0-flash")
def summarize_file(filepath: str) -> str:
"""テキストファイルを読み込んで要約を返す"""
with open(filepath, "r", encoding="utf-8") as f:
content = f.read()
prompt = f"""以下のテキストを要約してください。
要約の形式:
1. 全体の概要(3行以内)
2. 重要なポイント(箇条書き3〜5点)
3. 次のアクション(もしあれば)
---
{content}
"""
response = model.generate_content(prompt)
return response.text
# 使用例
summary = summarize_file("meeting_notes.txt")
print(summary)Gemini 2.0 Flash の1Mトークンコンテキストウィンドウのおかげで、かなり長いドキュメントもそのまま渡せます。
無料枠で詰まりやすいポイント
実際に使い始めると遭遇する可能性がある制限を事前に知っておきましょう。
429エラー(レート制限)への対処
無料枠でリクエストを立て続けに送ると 429 Resource Exhausted エラーが返ってきます。
import time
import google.generativeai as genai
from google.api_core.exceptions import ResourceExhausted
model = genai.GenerativeModel("gemini-2.0-flash")
def safe_generate(prompt: str, max_retries: int = 3) -> str:
"""レート制限エラー時に自動リトライする"""
for attempt in range(max_retries):
try:
response = model.generate_content(prompt)
return response.text
except ResourceExhausted:
wait_time = 60 * (attempt + 1) # 1分、2分、3分と増やす
print(f"レート制限。{wait_time}秒待機中...")
time.sleep(wait_time)
raise Exception("最大リトライ回数を超えました")このリトライ処理は、私が個人開発のバッチ処理で実際に使っている形に近いものです。無料枠は RPM の上限が低い分、待ち時間を入れて素直に再送させるだけでも、夜間に流しっぱなしで安定して回せます。複雑な並列制御を足すより、まずはこの素朴な待機リトライで十分なことが多いです。
有料プランへの移行判断
無料枠で不足を感じるタイミングは主に2つです。「本番サービスとして複数ユーザーに公開するとき」と「1日1,500リクエストでは足りないとき」です。それ以外であれば、個人利用・学習・プロトタイプ開発なら無料枠で問題なく続けられます。
まず手を動かすことが大事
料金や制限を確認して「じゃあ始めよう」と思ったら、まずAPIキーを取得して上記のサンプルコードを動かしてみてください。5分もあれば最初の応答が返ってきます。
使いながら「これはできるの?」と気になることが出てきたら、そのたびに試してみてください。無料枠の範囲内で試行錯誤できる環境が整っているのが、Gemini API のうれしいところです。