メインコンテンツへ移動

Gemini API の地域制限エラー(400):原因と対処

Gemini API の 400 FAILED_PRECONDITION は、対象外の地域からの呼び出しや課金・年齢確認の不足で返ります。日本ならまずサーバーの地域を確認します。

Yingtu AI Editorial
Yingtu AI Editorial
10 min
Gemini API の 400 FAILED_PRECONDITION エラー本文「User location is not supported for the API use.」と、日本は提供地域に含まれるのでまずサーバーの場所、次に課金と年齢確認を確認することを示すカード
yingtu.ai

「User location is not supported for the API use.」は、Gemini API が HTTP 400、ステータス FAILED_PRECONDITION で返すエラーで、リクエストが Gemini API の提供対象外の国・地域から来ていると判定されたことを示します。レスポンス本文はたいてい次の形です。

hljs json
{
  "error": {
    "code": 400,
    "message": "User location is not supported for the API use.",
    "status": "FAILED_PRECONDITION"
  }
}

2026年9月30日時点で、日本は Google の利用可能な国と地域の一覧に含まれています。日本から使っていてこのエラーが出るなら、まず疑うのはコードを実行しているサーバーの場所と、課金や年齢確認といったアカウント側の前提条件です。回数制限の 429 とは別のエラーなので、時間をおいて再試行するより、場所と前提条件を確かめるほうが先です。

「User location is not supported for the API use.」が出る原因と見分け方

このエラーの原因は、自分のいる国・地域、コードを実行している環境の地域、課金などの前提条件、年齢などのアカウント条件の4つに分けられ、Gemini CLI や他社アプリで表示される場合も中身は同じです。

Google の API エラー一覧(2026年9月20日更新)では、FAILED_PRECONDITION は「前提条件(課金が無効になっているなど)が満たされていないため、リクエストを処理できません」と説明され、対処は「プロジェクトの課金ステータスまたはアカウントの前提条件を確認します」とされています。メッセージが「User location」を名指ししているときは、前提条件のうち場所の条件で止まっている、と読むのが基本です。

原因(2026年9月30日時点の Google ドキュメントに基づく)見分け方対処
自分がいる国・地域が提供対象外利用可能な国と地域の一覧に自分の国がない。中国本土・香港・ロシアは一覧にない一覧外の地域では、AI Studio 経由の Gemini API は使えない。Google は一覧外の場合、Gemini Enterprise Agent Platform の Gemini API を案内している
コードを実行しているサーバーの場所手元の PC では通るのに、デプロイ先だけで失敗する。サーバーやクラウド関数のリージョンが一覧外(香港など)実行リージョンを確認し、API を呼び出す処理を、自分が正規に利用できる一覧内のリージョンで動かす
課金などプロジェクトの前提条件末尾に「without a billing account linked」が付いた形のメッセージが出る。プロジェクトの課金が無効になっているAI Studio の「課金を設定」から請求先アカウントをリンクする(前払いは最低 $5)
年齢・アカウントの条件AI Studio を開くと「利用可能なリージョン」のページに移る。18歳未満、または Google アカウントで年齢確認を済ませていないGoogle アカウントで年齢確認を済ませる
Gemini CLI・他社アプリ経由[API ERROR: USER LOCATION IS NOT SUPPORTED FOR THE API USE. (STATUS: FAILED_PRECONDITION)] のように大文字で表示されるツールが Google のエラーを中継表示しているだけなので、上の4行で原因を切り分ける

Gemini CLI の大文字の表示は、GitHub の gemini-cli issue #1993(2025年6月26日)で報告されている形です。Make のような自動化ツールでも、同じ JSON がそのまま表示された例が2024年に報告されています。表示の形が違っても、原因は API 側にあります。

VPN やプロキシで接続元を偽ったり、居住国や年齢を偽ってアカウントを登録したりする方法は、提供地域や年齢の条件そのものを満たしていないため、正規の解決策になりません。

エラー本文を省略せずに取り出す

原因を切り分ける前に、HTTP ステータス、status、message の3つを省略なしで取り出します。ライブラリやアプリによっては「400 Bad Request」だけが表示され、message が見えないことがあるためです。

curl で直接呼び出すと、レスポンス全体を確認できます。MODEL には普段使っているモデル ID を入れてください。

hljs bash
export GEMINI_API_KEY="取得した API キー"
export MODEL="普段使っているモデル ID"

curl -sS -i \
  "https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent" \
  -H "x-goog-api-key: ${GEMINI_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"contents":[{"parts":[{"text":"ping"}]}]}'

1行目の HTTP/2 400 と、本文の "status": "FAILED_PRECONDITION"、"message" の文面を見ます。FAILED_PRECONDITION でも message が場所以外(課金など)を指していれば、次の「課金とアカウントの前提条件」から確認します。

Python の Google Gen AI SDK(google-genai)では、例外オブジェクトから同じ3つを取り出せます。

hljs python
from google import genai
from google.genai import errors

client = genai.Client()  # 環境変数 GEMINI_API_KEY を読む

try:
    client.models.generate_content(model="普段使っているモデル ID", contents="ping")
except errors.APIError as e:
    print(e.code, e.status, e.message)

同じ呼び出しを、手元の PC と本番のコードが動くサーバーの両方で実行すると、場所が原因かどうかを切り分けられます。日本など一覧内の国から試しているなら、判断は次のとおりです。

  • 手元では通り、サーバーでだけ 400 になる:サーバーの実行リージョンが原因の可能性が高い。
  • 手元でもサーバーでも 400 になる:課金、年齢確認、プロジェクトなどアカウント側の条件を先に確認する。
  • 400 ではなく 403 や 429 が返る:別のエラーなので、後述の「429・403・402 との違い」を参照する。

サーバーやクラウド関数の実行リージョンを確認する

サーバー側で Gemini API を呼ぶ構成では、リクエストを送るのはサーバーなので、手元が日本でもサーバーが一覧外の地域にあれば、このエラーの対象になりえます。2026年9月30日時点の一覧に香港は含まれていないため、アジア向けに香港リージョンへ置いたサーバーから呼び出す構成は、まず確認したいところです。

確認するのは、API を呼び出すコードが実際に動いている場所です。

  1. クラウド関数やコンテナ(Cloud Run、Cloud Functions、他社のサーバーレス関数など)のリージョン設定を開き、デプロイ先の地域を確認する。
  2. フロントエンドと API 呼び出し用の関数でリージョンが分かれている場合は、Gemini API を呼んでいる側のリージョンを見る。
  3. その地域が利用可能な国と地域の一覧に入っているかを照らし合わせる。

一覧外だった場合は、Gemini API を呼び出す処理を、自分が契約して正規に運用できる一覧内のリージョンで動かします。これは通常のホスティング設計の話で、自分や利用者が一覧外の地域にいることを隠すためのものではありません。自分と利用者がどこにいるかについては、Google の利用規約に従ってください。

Google がリクエストの場所をどう判定しているかの詳細は、公開ドキュメントに記載がありません。Google AI Developers Forum には、接続環境を変えていないのに突然このエラーが出るようになったという報告(2026年6月26日)もあり、場所以外の条件が関わっている例もあります。

課金とアカウントの前提条件を確認する

場所に問題がないのに FAILED_PRECONDITION が続く場合は、プロジェクトの課金状態と Google アカウントの年齢確認を確認します。Google のエラー一覧が対処として挙げているのも、この2つです。

課金については、Stack Overflow に2024年、「User location is not supported for the API use without a billing account linked」という形のメッセージが報告されています。請求先アカウントのリンクが条件になっていたことを示す文面です。2026年9月30日時点の Gemini API の課金ページ(2026年9月28日更新)では、欧州経済領域(EEA、EU を含む)、英国、スイスを含む多くの地域で無料枠と有料枠の両方が使えるとされています。有料枠に切り替えるには、Google AI Studio の「課金を設定」から Cloud の請求先アカウントをリンクし、支払い方法を設定します。新規の有料枠では、2026年9月30日時点で最低 $5 の前払いが必要です。

前払いクレジットの残高が0ドルになった場合は、このエラーではなく 402 が返り、その請求先アカウントにリンクされたすべてのプロジェクトの API キーが止まります。400 と 402 のどちらが返っているかで、確認先が変わります。

アカウントの条件は、AI Studio の「利用可能なリージョン」ページに書かれています。地域の条件のほかに、最低年齢要件(18歳以上)を満たしていない場合と、Google アカウントで年齢確認がまだ行われていない場合が挙げられています。AI Studio を開いてこのページに移るなら、アカウントの年齢確認を先に済ませます。

新しく作った API キーだけが 400 になり、以前から使っているキーでは通る、という報告もあります(Google のヘルプコミュニティ、2026年2月16日)。原因は公式には説明されていません。API キーはプロジェクトに属し、レート制限もキー単位ではなくプロジェクト単位で数えられるので、通るキーと通らないキーがそれぞれどのプロジェクトに属し、課金状態がどう違うかを比べると手がかりになります。

429・403・402 との違い

FAILED_PRECONDITION は回数制限のエラーではなく、待っても条件が変わらなければ同じ結果になります。近いエラーとの違いは、Google の API エラー一覧で次のように整理されています。

HTTP ステータスGoogle の説明(API エラー一覧、2026年9月20日更新)公式の対処
400 FAILED_PRECONDITION前提条件(課金が無効になっているなど)が満たされていないため、リクエストを処理できないプロジェクトの課金ステータスまたはアカウントの前提条件を確認する
402前払いクレジットの残高がなくなった請求先アカウントにクレジットを追加するか、オートチャージをオンにする
403 PERMISSION_DENIEDAPI キーにこのリソースに対する権限がないAPI キーの権限とプロジェクトへのアクセス権を確認する
429 RESOURCE_EXHAUSTED1分あたりまたは1秒あたりのリクエスト数、またはトークンの上限を超えている指数バックオフで待機と再試行を繰り返す

403 が返る場合のキーの作り方と権限の確認はAI Studio「permission denied」の直し方を、429 が返る場合の無料枠の上限と確認方法はGemini API 無料枠の制限:確認方法と超えたときの対処を参照してください。

サポートやフォーラムに相談する前のチェックリスト

Google AI Developers Forum やツールの issue に相談するときは、次の項目を確認してから、結果を添えて書くと原因が絞り込みやすくなります。

  1. エラー本文の code、status、message を省略せずに控えた(API キーは伏せる)。
  2. 手元の PC と本番サーバーのどちらで出るか、両方で試した。
  3. 自分がいる国・地域が、利用可能な国と地域の一覧に入っていることを確認した。
  4. API を呼び出すサーバーやクラウド関数の実行リージョンが、一覧内の地域であることを確認した。
  5. プロジェクトの課金状態を確認し、402 ではなく 400 が返っていることを確かめた。
  6. Google アカウントで年齢確認を済ませている。
  7. 別のプロジェクトで作ったキーでも同じ結果になるかを試した。
  8. Gemini CLI や他社アプリの場合は、ツールのバージョンと、どの API キーやアカウントで認証しているかを控えた。

よくある質問

無料枠のまま使っていると、このエラーになりますか?

無料枠で使っていること自体は、このエラーの原因にはなりません。2026年9月30日時点の課金ページでは、多くの地域で無料枠と有料枠の両方が使えるとされていて、日本も利用可能な国と地域の一覧に入っています。ただし、プロジェクトの課金が無効になっていることが前提条件の不足として扱われる場合があるので、message に billing を含む文面が出ていれば課金設定を確認してください。

時間をおけば直りますか?

直る見込みは高くありません。Google のエラー一覧では、429 の対処は「待って再試行」、400 FAILED_PRECONDITION の対処は「課金ステータスやアカウントの前提条件の確認」と分けられています。場所か前提条件のどちらかが変わらない限り、同じリクエストは同じ結果になると考えて、上のチェックリストから確認を進めてください。

タグ

#Gemini API#FAILED_PRECONDITION#エラー対処#Google AI Studio#利用可能な地域#Gemini CLI

この記事を共有

XTelegram