ガイド一覧へ戻る
トラブルシューティング·2026年8月30日·読了6分

「API key not valid. Please pass a valid API key.」— Geminiがこのメッセージで意味する5つのこと

このメッセージはGoogleの包括的なエラーです。送信したキーをこの呼び出しに使用できなかったという意味です。キーそのものが間違っている場合とは異なり、5つの原因のうち4つではキー自体は完全に有効です。そのため、キーを再コピーしても通常は解決しません。

最終確認日:。

このメッセージはGoogleの包括的なエラーです。送信したキーをこの呼び出しに使用できなかったという意味です。キーそのものが間違っている場合とは異なり、5つの原因のうち4つではキー自体は完全に有効です。そのため、キーを再コピーしても通常は解決しません。

エラー

response (HTTP 400)
{
  "error": {
    "code": 400,
    "message": "API key not valid. Please pass a valid API key.",
    "status": "INVALID_ARGUMENT",
    "details": [{ "reason": "API_KEY_INVALID" }]
  }
}

原因と対処法の概要

原因対処法
キーのプロジェクトでGenerative Language APIが有効になっていないそのプロジェクトで有効化してから1分待ってください。有効化直後のAPIは短時間、リクエストを拒否します。
Vertex AIの認証情報をAI Studioエンドポイントに送信しているVertexはリージョナルホストに対してOAuthを使用します。generativelanguage.googleapis.comが要求するのはAI Studio APIキーです。両者は互換性がありません。
キーにHTTPリファラーまたはIP制限が設定されているサーバー側の呼び出しにはリファラーがありません。IPで制限するか、バックエンド用に制限のないキーを発行してください。
キーを間違った場所に送っているGeminiは`x-goog-api-key`または`?key=`を読み取ります。`Authorization: Bearer`ヘッダーは無視されるため、リクエストはキーなしで到着します。
キーが削除された、または想定とは異なるGoogleアカウントのキーである再発行で解決する唯一の原因です。AI Studioにログインしているアカウントを確認してください。

まずキー単体で検証する

アプリケーションを変更する前に、単純なリクエストでキーを試してください。これが成功してアプリが失敗するなら、キーは正常で、問題はアプリがキーを送信する方法にあります。これにより、最も一般的な3つの原因を一度に排除できます。

check-key.sh
curl -s -H "x-goog-api-key: $GEMINI_API_KEY" \
  "https://generativelanguage.googleapis.com/v1beta/models" \
  | head -20

# 200 + a model list  -> the key is valid; look at your client
# 400 API_KEY_INVALID -> the key really cannot call this API

クライアントが実際に送信するヘッダーを確認する

多くのOpenAI形式SDKは認証情報を`Authorization: Bearer`に入れます。GeminiのネイティブAPIはこのヘッダーを読み取らないため、OpenAIクライアントをgenerativelanguage.googleapis.comに直接向けると、完全に有効なキーでもこのエラーが発生します。GoogleのSDKを使うか、ベアラー形式を要求するOpenAI互換エンドポイントを呼び出してください。

openai_shape.py
from openai import OpenAI

# Bearer auth, OpenAI request shape, Gemini model names.
client = OpenAI(
    api_key=KUNAVO_API_KEY,
    base_url="https://api.kunavo.com/v1",
)

print(client.chat.completions.create(
    model="gemini-2-5-flash",
    messages=[{"role": "user", "content": "ping"}],
).choices[0].message.content)

400と403を切り分ける

キーが正しく送信されるようになった後に理由がPERMISSION_DENIEDへ変わった場合、キーは読み取られており、スコープ上の理由で拒否されています。これは別の問題で、解決方法も異なります(キー形式ではなくプロジェクト権限)。400から403になったのは後退ではなく進展です。

Kunavo経由で呼び出している場合

KunavoのGeminiカタログは、他のすべてと同じOpenAI形式のエンドポイントと同じ`sk-kn-`キーの背後にあり、通常のベアラートークンとして送信されます。そのため、上記のヘッダー不一致やVertexとAI Studioの違いは、そもそも発生しません。有効化すべきGoogleプロジェクトも、抵触するキー単位のリファラーポリシーもありません。利用者側で確認すべきなのは、キーが有効で、ウォレットに残高があることです。拒否されたリクエストには課金されません。 Geminiのトークン単位の料金は、 Gemini 料金ガイド.

よくある質問

キーを作成したばかりなのに、まだ無効と表示されます。

有効化したばかりのAPIや新しく作成したキーを使うと、最大で1~2分ほどリクエストが拒否されることがあります。それを過ぎても続く場合は、キーが不正なのではなく、プロジェクトにGenerative Language APIがないことがほぼ確実です。

これはクォータを使い切ったという意味ですか?

いいえ。クォータ超過は429 RESOURCE_EXHAUSTED、請求の問題は403として表れます。400 API_KEY_INVALIDがクレジット切れを意味することはありません。

同じキーがAI Studioでは機能するのに、コードでは機能しないのはなぜですか?

AI Studioの呼び出しはGoogle独自のオリジンから行われます。リファラー制限付きキーはそれを許可しますが、リファラーをまったく送信しないサーバーは拒否します。

関連ガイド

エラーの詳しい意味はエラーリファレンスをご覧ください。キーは新規登録と認証ガイドから1分で取得できます。