Skip to content

OpenAI API errorOpenAI API 429: insufficient_quota

Your app’s OpenAI calls fail with HTTP 429 and insufficient_quota, or the older message about exceeding your current quota, which recent reports still quote. Unlike a rate limit, this 429 is about billing: the organization has no credit or has hit a spend limit, so waiting and retrying won’t clear it. Here’s how to tell which one you hit, or hand it over at a fixed price.

Short answer

Read error.code in the response, not only the 429 status. credit_balance_exhausted means add credits; organization_spend_limit_exceeded or project_spend_limit_exceeded means raise or remove that limit. organization_usage_limit_exceeded means OpenAI set the limit, so request a higher approved limit or contact support. If the code points to a rate limit instead, slow down and follow Retry-After. In your app, treat billing codes as non-retryable and alert yourself, so users don’t sit through retries that can’t succeed.

Which 429 it is, and the fix

  1. 01

    No prepaid credits left

    “Your organization has no prepaid credits remaining.” OpenAI, Error codes

    The organization’s prepaid balance has run out, so every request fails until credits are added. Add credits in your billing settings, then retry.

  2. 02

    An organization or project spend limit was reached

    “Your organization reached its enforced spend limit.” OpenAI, Error codes

    An enforced monthly spend limit stops traffic once it’s reached. An organization limit stops every project; a project limit stops only that project. Raise or remove the limit in the organization or project settings, or, for a project limit only, move the app to another project. Without a change, access resumes when the monthly limit resets.

  3. 03

    Your code only checks the status or the type

    “For billing-related errors, inspect error.code to identify the specific cause. The broader error.type can still be insufficient_quota.” OpenAI, Error codes

    Billing errors and rate limits both return 429, and billing errors can still carry the type insufficient_quota. Branch on error.code so a billing stop alerts you instead of retrying, and a real rate limit backs off.

  4. 04

    Retries keep hammering a billing stop

    “Retrying billing, spend, or quota errors won't restore API access.” OpenAI, Error codes

    Automatic retries make a billing stop slower and noisier without fixing it. Stop retrying on billing codes, show users a clear message, and send yourself an alert with the code and the project.

Checked against the vendor’s docs on : OpenAI: Error codes.

Rather hand it over?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

Related: Anthropic API 529 overloaded_error · AI integration services · Building apps with the Claude API

Questions

More on this error

I just added credits. Why does it still fail?

Check that the API key belongs to the organization and project you funded, and that no project spend limit applies. The error code tells you which stop is still in place.

Is the old “You exceeded your current quota” message the same error?

OpenAI’s current error-codes page doesn’t list that text. Recent reports still quote it, so treat it as a billing stop and read error.code to see which one you hit.

Can you fix it for me?

Yes, when the cause is in your app: the App Fix Ticket gives you a written diagnosis first, then the fix. If you want the whole integration hardened, with retries, logs, failure alerts and tests, that’s the API Integration offer. Neither can change a vendor’s limits, billing or uptime.

A different error?

Describe it and get a written quote

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; we reply by email, usually within one business day.