This organization has been disabled in the Claude API: What to Do
An Anthropic key suddenly answers "organization has been disabled". What the error is, what to check, and how to move the SDK and Claude Code to another provider.
5 min · · errors · API keys
You run a familiar script or Claude Code and get back Claude API error: 400 This organization has been disabled. A key that worked yesterday stops answering, and neither changing the model nor retrying helps. Below we explain what this error means, how it differs from ordinary 401 and 429, what to check, and how to keep working by moving code and Claude Code to another endpoint without rewriting.
What the error means
The message comes from Anthropic itself, not from your code. It says that the organization (workspace) the key belongs to is disabled on Anthropic's side. That is why all keys of that organization stop working, not just one. The response body is an Anthropic-format JSON error object: the type and message text sit in the nested error object.
The exact reason is not named in the error, and you cannot guess it from the text. Possible causes include payment or organization verification problems, a terms-of-use violation, another account decision by Anthropic, or a service-side mistake. Which one applies to you is known only to Anthropic support.
How it differs from other errors
| Error | Meaning | What to do |
|---|---|---|
| 401 | The key is wrong or deleted | Check the key, create a new one |
| 400 organization has been disabled | The whole organization is disabled | Clarify with Anthropic, or move the workload |
| 429 | Limits exceeded | Wait, reduce frequency |
| 529 overloaded | Server overloaded | Retry later |
If you get precisely the 400 with the organization text, creating a new key inside the same organization changes nothing. There is a separate article on the ordinary 401: Invalid API key.
What to check first
- Sign in to the Anthropic console and look at the organization status and at emails from the service on the account owner's address: a disable notice may arrive there.
- Make sure the key belongs to this particular organization: a project may hold several keys from different accounts, and only one causes the error.
- Check the payment details and balance in the console.
- If the cause is unclear or the disabling looks like a mistake, contact Anthropic support with the organization id and the time of the first error.
Do not try to "get around" the disabling by creating many new accounts: it may violate the terms of service and lead to new blocks.
How to continue on another provider
While the organization question is being resolved, you can keep working through an API gateway. Zukko is a separate service with its own balance and fetch_... keys: it does not lift the disabling at Anthropic and has no connection to your organization there. It simply offers the same Claude models at another address in the same /v1/messages format. Read the gateway's terms of use before paying.
Python: Anthropic SDK
Only two lines change in the code: the address and the key.
import os
import anthropic
client = anthropic.Anthropic(
base_url="https://api.zukko.pro", # no /v1: the SDK adds the path itself
api_key=os.environ["ZUKKO_API_KEY"], # fetch_... key
)
msg = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=500,
messages=[{"role": "user", "content": "Hi! Answer in one sentence."}],
)
print(msg.content[0].text)The address is given without /v1: the official Anthropic SDK adds that prefix itself, and an extra segment gives 404. The request format is described in the Messages API section.
TypeScript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://api.zukko.pro",
apiKey: process.env.ZUKKO_API_KEY,
});The rest of the code (messages.create calls, streaming, tools) stays the same.
Claude Code
Claude Code is configured through environment variables:
export ANTHROPIC_BASE_URL="https://api.zukko.pro"
export ANTHROPIC_AUTH_TOKEN="fetch_your_key"
export ANTHROPIC_MODEL="claude-sonnet-5-5"
claudeThe variable you need is ANTHROPIC_AUTH_TOKEN. If an old variable holding an Anthropic key remains in your environment or shell config, remove it so it does not override the new setup. If Claude Code still asks you to sign in, log out of the old authorization (the /logout command inside the program) and check that the variables are visible in the shell where you launch claude. Typical causes are described in the article Claude Code asks to sign in to Anthropic. The full guide is in the Claude Code section of the Zukko docs.
Checking and pricing
Make sure the model is in the list:
curl -s https://api.zukko.pro/v1/models \
-H "Authorization: Bearer $ZUKKO_API_KEY" | head -c 600Then run the test request from the example above. Prices as of October 18, 2026, $ per 1M tokens. For claude-sonnet-5-5, input 0.4 and output 2: a request of 10,000 input and 1000 output tokens costs 10,000 × 0.4 / 1M + 1000 × 2 / 1M = 0.004 + 0.002 = $0.006. For claude-opus-5-5 (0.8 / 4) the same request is 0.008 + 0.004 = $0.012. The cache discount for Claude comes from the Anthropic format, that is, the /v1/messages path that you use in the SDK and Claude Code. For current prices and the model list, use GET /v1/models and the "Models" page in the dashboard.
How not to be left without access next time
- Keep keys and the address in configuration, not in code: switching providers should come down to changing two variables.
- Do not tie a project to a single vendor: set up a fallback and test it monthly.
- A separate key per project with a daily limit makes investigating problems easier.
- Watch for emails from the provider at the account owner's address.
FAQ
Is this a bug in my code?
No. The response is produced by Anthropic's server, and the cause is the organization status, not the request. There is no need to change code because of this error.
Will a new key help?
If the key is created in the same disabled organization, no. The restriction applies to the whole organization.
Does the same code work through Zukko unchanged?
The request structure does not change: the same messages.create, streaming and tools. The address, key and, if needed, the model name from the GET /v1/models list change.
How do I pay?
The balance is shared and in dollars, top-ups from $1. Payment from Russia: SBP, MasterCard or cryptocurrency. The payment page adds an 8.5% fee on top for SBP.
To check the connection, create a key in the Zukko dashboard and run the example above.
zukko
Pay 25×
less
for Claude Code & ChatGPT
One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.
Related articles
- OpenAI API Keys in the Open: Why You Should Not Use ThemWhere free keys on GitHub come from, why using them is dangerous for you and for the owner, and how to protect your own key from the same leak.
- GLM API Errors: Why the Request Fails and How to Fix ItA wrong model id, an overflowing 128K context, the key, the balance, limits: the typical causes of GLM API errors and a quick way to find yours.
- Gemini API not working: region, key, limits and model nameStep-by-step Gemini API diagnostics: from checking status and region to a leaked key, 429 and 503 errors and a typo in the model name.
- The API key header: Authorization Bearer or x-api-key and where each goesOpenAI clients send the key in Authorization, Anthropic clients in x-api-key. What the gateway accepts and how to tell from the response where the key got lost.