hljs json{"error":{"code":429,"message":"Resource has been exhausted (e.g. check quota).","status":"RESOURCE_EXHAUSTED"}}
2026年9月30日時点の Google のドキュメントによると、Gemini API がこの 429 RESOURCE_EXHAUSTED を返すのは、プロジェクトにかかっている上限のどれか一つ、つまり RPM(1分あたりのリクエスト数)、TPM(1分あたりの入力トークン数)、RPD(1日あたりのリクエスト数)、画像モデルの IPM、有料ティアの10分間の支出上限のいずれかを超えたときです。対処は当たった上限で変わります。1分単位の上限なら指数バックオフで待って再試行すれば通りますが、RPD は日本時間16時(2026年11月2日以降は17時)のリセットまで戻らず、エラー本文に limit: 0 があれば、そのモデルはこのプロジェクトで使える枠がないので待っても解消しません。
Gemini API のレート制限とは、一定時間内に送れるリクエスト数やトークン数の上限で、API キーごとではなくプロジェクトごとに数えられます(Google のレート制限ページ、2026年9月2日更新)。
429 RESOURCE_EXHAUSTED の原因になる6つの上限
429 RESOURCE_EXHAUSTED は、下の6つの上限のうち一つでも超えた時点で返ります。1日の回数に余裕があっても、長いプロンプトを短時間に送れば TPM で止まります。
| 上限(2026年9月30日時点) | 数えるもの | 戻るタイミング | 当たったときの対処 |
|---|---|---|---|
| RPM | 1分あたりのリクエスト数 | 1分以内 | 指数バックオフで再試行し、同時に送る数を減らす |
| TPM | 1分あたりの入力トークン数(出力は含まない) | 1分以内 | 間隔を空ける。長い入力や大きなファイルは分けて送る |
| RPD | 1日あたりのリクエスト数 | 太平洋時間0時(日本時間16時、冬は17時) | リセットを待つか、別のモデルに切り替える |
| IPM | 画像生成モデルの1分あたりの画像数 | 1分以内 | 生成リクエストを時間的に分散させる |
| TPD | 一部のモデルの1日あたりのトークン数 | 1日単位 | 翌日まで待つか、別のモデルに切り替える |
| 支出ベースの上限(有料ティアのみ) | 直近10分間の利用額(Tier 1 は $10、Tier 2 は $50、Tier 3 は $200) | 最長10分 | 少し待つ。恒常的に足りなければティアを上げるか引き上げを申請する |
出典はいずれも Google のレート制限ページです。上限の数値はプロジェクトの使用量ティアとモデルで決まり、プレビュー版や試験運用版のモデルは通常のモデルより厳しく設定されています。モデルごとの具体的な数値は、2026年9月30日時点でこのページに一覧がありません。自分のプロジェクトの値は AI Studio のレート制限ページに表示されます。
RPD がリセットされる太平洋時間の午前0時は、日本時間に直すと季節で変わります。太平洋夏時間(UTC−7)の間は16時間差なので毎日16時、太平洋標準時(UTC−8)の間は17時間差なので毎日17時です。2026年は11月1日(日)の未明に夏時間が終わるため、11月1日のリセットまでは16時、11月2日のリセットから17時になります。日本時間の0時ではないので、夜中に待っても回復しません。
当たった上限を見分ける手順
エラーの文字列はどの上限でも同じなので、文字列だけでは原因を判断できません。次の順に確かめます。
- どこから呼んでいるかを確認します。AI Studio で作った API キーで Gemini API を呼んでいるのか、Google Cloud の Vertex AI なのか、Gemini CLI なのかで上限の仕組みと確認先が違います(後述の「AI Studio、Vertex AI、Gemini CLI で確認先が違う」を参照)。
- AI Studio のレート制限ページを、その API キーを発行した Google アカウントで開き、キーが属するプロジェクトを選びます。別のプロジェクトを見ていると数値が一致しません。
- コードで指定しているモデルの行で、RPM・TPM・RPD(画像モデルなら IPM)の現在の使用量と上限を比べ、どれが上限に張り付いているかを見ます。
- エラー本文の詳細を読みます。
limit: 0という記載があれば、使用量ではなく「そのモデルにこのプロジェクトの枠がない」ことが原因です。 - 失敗の出方を見ます。数十秒から1分ほど待つと通るなら RPM か TPM、待っても一日中続くなら RPD、有料ティアで高額なリクエストを短時間に続けた直後だけ出るなら10分間の支出上限です。
見分けがついたら、次のルールで対処を決めます。
- RPM か TPM が上限に達しているなら、待って再試行します。次の節のコードのように間隔を倍々に広げ、アプリ側でも同時に送るリクエスト数を上限より少なく抑えます。
- RPD が上限に達しているなら、再試行しても通りません。日本時間16時(冬は17時)のリセットを待つか、枠が残っている別のモデルに切り替えます。毎日のように当たるなら、ティアを上げる段階です。
limit: 0が出ているなら、待っても変わりません。無料枠のプロジェクトで、画像生成モデルなど無料枠のないモデルを呼んだときの典型です。どのモデルに無料枠があるかは「Gemini API 無料枠の制限:確認方法と超えたときの対処」で確認し、モデルを変えるか課金を設定します。- 有料ティアで RPM・TPM・RPD に余裕があるのに 429 が出るなら、10分間の支出上限を疑います。最長10分待てば戻ります。
同じプロジェクトで API キーを何本作っても、すべてのキーが同じ上限を分け合うので、キーを増やしても 429 は減りません。キーを差し替えた直後に通ったように見えるのは、その間に1分あたりの上限が回復しただけです。
429 以外のコードで止まっている場合は、原因がまったく別です。Google の API エラーのページ(2026年9月20日更新)と課金のページによると、400 の FAILED_PRECONDITION は課金が無効になっているなどの前提条件の不足、403 は API キーにそのリソースへの権限がないこと、503 はサービス側の一時的な過負荷、402 は前払いの残高が $0 になったことを示します。このうち 503 だけは 429 と同じく、待ってから指数バックオフで再試行するのが Google の推奨です。
429 と 503 だけを再試行する Python のコード例
Google の API エラーのページは、429 に対して「待ってから指数バックオフで再試行する」ことを解決策に挙げています。Google Gen AI SDK(Python の google-genai)で書くと、たとえば次のようになります。API キーはコードに書かず、環境変数 GEMINI_API_KEY に設定しておきます。
hljs python# 例:429 と 503 だけを指数バックオフで再試行する
from random import uniform
from time import sleep
from google import genai
from google.genai import errors
client = genai.Client() # 環境変数 GEMINI_API_KEY を読み込む
RETRYABLE = {429, 503}
def generate_with_backoff(contents, model="gemini-3.5-flash", max_attempts=7):
for attempt in range(max_attempts):
try:
return client.models.generate_content(model=model, contents=contents)
except errors.APIError as e:
if e.code not in RETRYABLE:
raise # 400 や 403 は待っても変わらない
if "limit: 0" in str(e):
raise # このプロジェクトではこのモデルの枠がない
if attempt == max_attempts - 1:
raise # 約1分待っても通らない:RPD か支出上限を確認する
sleep(2 ** attempt + uniform(0, 1))
この例では、待ち時間は1秒、2秒、4秒、8秒、16秒、32秒と倍になり、合計で約63秒(それぞれに最大1秒のランダムな上乗せ)です。1分あたりの上限であれば、この間に回復します。7回目も失敗して例外が上がった場合は、RPM ではなく RPD か10分間の支出上限に当たっていると考え、前の節の手順2に戻って AI Studio で使用量を確かめます。
ランダムな上乗せ(ジッター)を入れているのは、複数のワーカーが同時に 429 を受けたときに、全員が同じ瞬間に再送して再び上限に当たるのを避けるためです。gemini-3.5-flash は2026年9月30日時点の Google のモデル一覧にある安定版のモデル ID で、実際には自分が使うモデルに置き換えてください。
再試行は起きた 429 への対処で、予防にはなりません。並列で大量に送る処理では、アプリ側で同時実行数を RPM の範囲に収まるよう制限し、急がない大量処理は後述の Batch API に回すと、そもそも 429 が出にくくなります。
AI Studio、Vertex AI、Gemini CLI で確認先が違う
同じ Gemini のモデルでも、呼び出す経路によって上限の仕組みが分かれています。エラーの表記も少しずつ違います。
| 使っているもの(2026年9月30日時点) | 上限の仕組み | 確認先 | よく見るエラー表記 |
|---|---|---|---|
| Gemini API(AI Studio で作った API キー) | プロジェクトの使用量ティアごとの RPM・TPM・RPD など | AI Studio のレート制限ページ | 冒頭の JSON、RetriableError: [RESOURCE_EXHAUSTED] など |
| Vertex AI(Gemini Enterprise Agent Platform) | Google Cloud プロジェクトの割り当て。Gemini API の上限とは別 | Google Cloud の「Error code 429」ページ | HTTP 429 と RESOURCE_EXHAUSTED |
| Gemini CLI(API キーを設定して使う場合) | そのキーが属するプロジェクトの Gemini API の上限 | AI Studio のレート制限ページ | [API Error: Resource has been exhausted (e.g. check quota).] |
Vertex AI は Google Cloud の割り当ての仕組みで管理されていて、AI Studio のティアや表示とは別物です。Vertex AI で 429 が出た場合は、AI Studio ではなく Google Cloud の Error code 429 のページに沿って確認します。逆に、AI Studio の API キーで出た 429 を Google Cloud の割り当て画面で探しても、原因は見つかりません。
Gemini CLI では、エラーが [API Error: Resource has been exhausted (e.g. check quota).] という形で表示されます。GitHub の google-gemini/gemini-cli には、2025年6月26日の #1848(「3回指示しただけで」出たという報告)や2026年2月22日の #19976 など、この表示についての報告が寄せられています。CLI に API キーを設定している場合、ここまで説明した RPM・RPD の考え方はそのまま当てはまり、無料枠のプロジェクトなら同じ RPD に当たります。Google アカウントのログインで使っている場合は、Gemini CLI のドキュメントで認証方式ごとの上限を確認してください。
上限を引き上げる:使用量ティア、Batch API、支出の管理
待つ・分散させるで足りない場合は、上限そのものを上げます。上限はプロジェクトの使用量ティアで決まり、ティアは支払い実績で上がります。
| ティア(2026年9月30日時点) | 条件 | ティアの支出上限 | 10分間の支出上限 |
|---|---|---|---|
| 無料 | 有効なプロジェクト、または無料トライアル | なし | なし |
| Tier 1 | 有効な請求先アカウントをリンク | $250 | $10 |
| Tier 2 | 累計 $100 以上の支払いと3日以上の経過 | $2,000 | $50 |
| Tier 3 | 累計 $1,000 以上の支払いと30日以上の経過 | $20,000〜$100,000以上 | $200 |
出典は Google のレート制限ページです。Tier 3 でも足りない場合は、同じページからリンクされている申請フォームで、有料ティアの上限引き上げを依頼できます。
課金を設定すると、Tier 1 から始まります。AI Studio では前払いと後払いを選べ、前払いは最低 $5 からで、残高が減ると自動でチャージする設定もあります。同じ請求先アカウントに複数のプロジェクトをまとめている場合は、AI Studio でプロジェクトごとの支出上限を決めておくと、一つのプロジェクトの暴走で全体の予算を使い切るのを防げます。前払いの残高が $0 になると、リンクされたすべてのプロジェクトのキーが HTTP 402 で止まるので、本番環境では残高と自動チャージの設定を確認しておきます(課金のページ、2026年9月30日時点)。
すぐに結果が要らない大量処理には Batch API が向いています。Batch API には通常の呼び出しとは別の上限があり、同時に処理できるバッチリクエストは100件、入力ファイルは最大2GB、ファイルの保存容量は最大20GBです(レート制限ページ、2026年9月30日時点)。一晩で数千件を処理するような作業を通常の呼び出しで回すと RPM や RPD に当たりやすく、Batch API に移すとその分の枠を対話的な呼び出しに残せます。
Google の請求先アカウントとは別の経路もあります。LaoZhang API は Gemini のモデルを Gemini ネイティブ形式と OpenAI 互換形式で提供するゲートウェイで、トークン単位または呼び出し単位の従量課金です。Google のプロジェクトとは別の上限で動くため、自分のティアでは余裕が足りない場合の選択肢になりますが、Google 公式のサービスではなく、LaoZhang API 側の上限と料金が適用されます。
よくある質問
有料ティアに上げたのに 429 が出るのはなぜですか?
有料ティアにも上限があるからです。Tier 1 にも RPM・TPM・RPD の上限があり、さらに直近10分間の利用額が $10 を超えると、支出ベースの上限で 429 が返ります(2026年9月30日時点)。プレビュー版のモデルは通常のモデルより上限が厳しく設定されているため、同じティアでも先に当たりやすくなります。AI Studio のレート制限ページで、使っているモデルの行を確認してください。
503 UNAVAILABLE と 429 RESOURCE_EXHAUSTED はどう違いますか?
429 は自分のプロジェクトの上限を超えたこと、503 は Google 側のサービスが一時的に過負荷か停止していることを示します。503 は自分の使用量とは関係がないので、AI Studio の使用量を見ても原因は分かりません。どちらも Google の推奨は、待ってから指数バックオフで再試行することです。
無料枠で急に 429 が増えたのはなぜですか?
時期によって無料枠の上限が変わるためです。2025年12月には、Google が無料枠の上限を引き下げたあとに 429 が続くようになったという報告が Reddit や Google AI Developers Forum(2025年12月11日)に相次ぎました。これは利用者の報告で、現在の上限値は AI Studio のレート制限ページに表示される自分のプロジェクトの値が基準になります。無料枠の対象モデルや上限の確認方法は「Gemini API 無料枠の制限:確認方法と超えたときの対処」で確認できます。



