← ブログに戻る
コラム

insufficient_quota の原因と対処:OpenAI APIの429エラーを解説

FastMetal

六角形のくぼみが並ぶ金属のトレイに、最後のトークンだけが青く縁取られて残っているイラスト。insufficient_quotaを表しています

この記事の要点

  • insufficient_quota は、OpenAI APIで残高や利用上限に達したときの429エラーです。待っても解消しません。
  • 同じ429でもレート制限は時間で回復します。リトライしてよいのはレート制限だけです。
  • OpenAIの公式ガイドは、課金関連のエラーでは error.code で原因を確かめるよう案内しています。error.type は広い分類として insufficient_quota のままの場合があります。
  • 対処は、クレジットの追加か、組織やプロジェクトの上限の引き上げです。

You exceeded your current quota と表示されてAPIが止まったときに、確かめることをまとめます。

insufficient_quota のエラー本文

OpenAIの開発者フォーラムに2026年3月に投稿された実例では、HTTP 429で次の本文が返っています。

{
  "error": {
    "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.",
    "type": "insufficient_quota",
    "param": null,
    "code": "insufficient_quota"
  }
}

レート制限との違い

レート制限残高・利用上限
HTTPステータス429429
原因短時間に送りすぎたクレジットや上限に達した
時間が経つと回復する回復しない(月次の上限はリセットまで)
リトライするしない

バックオフの実装など、レート制限への対処はLLM APIの429エラーの対処法にまとめています。

error.code で原因を確かめる

OpenAIのエラーコードのガイドには、課金関連の429として次のコードが載っています。

error.code原因対処
credit_balance_exhausted前払いのクレジットが残っていないクレジットを追加する
organization_spend_limit_exceeded組織の支出上限に達した上限を変更する
project_spend_limit_exceededプロジェクトの支出上限に達したプロジェクトの設定を変更する
organization_usage_limit_exceededOpenAIが割り当てた利用上限に達した上限の引き上げを申請する

ダッシュボードでは残高が残っているのにエラーになる場合は、APIキーが属するプロジェクトと、プロジェクト側の上限を確かめます。

リトライから外すコード

レート制限と同じ処理に流すと、回復しないエラーを待ち続けることになります。RateLimitError を捕まえたら、まずコードで分けます。

import os

from openai import OpenAI, RateLimitError

client = OpenAI(
    api_key=os.environ["FASTMETAL_API_KEY"],
    base_url="https://api.fastmetal.ai/v1",
)

BILLING_CODES = {
    "insufficient_quota",
    "credit_balance_exhausted",
    "organization_spend_limit_exceeded",
    "project_spend_limit_exceeded",
    "organization_usage_limit_exceeded",
}


def is_billing_error(err: RateLimitError) -> bool:
    return err.code in BILLING_CODES or err.type == "insufficient_quota"


try:
    resp = client.chat.completions.create(
        model="deepseek-v4.1-flash",
        messages=[{"role": "user", "content": "こんにちは"}],
        max_tokens=64,
    )
    print(resp.choices[0].message.content)
except RateLimitError as err:
    if is_billing_error(err):
        raise SystemExit(f"課金の設定を確認してください: {err.code}")
    raise

OpenAI公式のSDKは429を自動でリトライします。課金エラーで余計に待たないよう、SDKの max_retries も必要に応じて下げます。

FastMetalの前払いの仕組み

FastMetalは、円建ての前払いで使う日本のAIゲートウェイです。チャージした残高が支払いの上限になり、残高を超える請求は発生しません。残高がなくなるとリクエストは拒否されます。

残高が少なくなったときと、なくなったときにはメールで通知します。APIだけで使っている場合も届きます。APIキーごとに残高の上限を分けられるので、1つのプロジェクトが全体の残高を使い切る事態も防げます。

チャージの最低額は¥500です。カード払いは即時に反映され、銀行振込(前払い)では適格請求書を発行します。無料モデルの gemini-flash-lite-free は¥0で、チャージせずに試せます。トークンあたりの単価は料金ページで確認できます。

よくある質問

insufficient_quota は待てば直りますか

クレジット切れは待っても直りません。月次の支出上限が原因の場合は、上限のリセットで回復します。error.code でどちらかを確かめます。

クレジットを追加したのにエラーが続きます

APIキーが属する組織とプロジェクトが、クレジットを追加した先と同じかを確かめます。プロジェクトの支出上限が別に設定されていることもあります。

レート制限との見分け方はありますか

error.code と error.type で分けます。HTTPステータスはどちらも429なので、ステータスだけでは判定できません。

FastMetalで残高がなくなるとどうなりますか

リクエストは拒否され、残高を超える課金は発生しません。チャージすれば同じAPIキーで続けられます。

まとめ

insufficient_quota はレート制限と同じ429でも、対処はまったく別です。リトライから外し、error.code を見て、クレジットか上限の設定を直します。

円建ての前払いで始めるなら、無料でアカウントを作成できます。

最新のAIモデルを今すぐ試す

最新のAIモデルはFastMetalのAPIキー1つで利用できます。ブラウザですぐに試す、またはOpenAI SDKからそのまま呼び出せます。