Skip to main content
403Not retryable
Anthropic 403 Permission Denied
The key is valid but is not allowed to do what it asked — wrong workspace, model not enabled, or an org policy blocks the feature.
Most likely causes
- 1.Workspace-scoped key used against a model the workspace can't access
- 2.Beta feature header sent without the org being in that beta
- 3.Organization policy restricts the endpoint
Fix checklist
- Verify model access for the key's workspace in the console
- Drop beta headers (anthropic-beta) you aren't enrolled for
- Ask your org admin to grant the workspace the capability
Retry guidance
Not retryable — permissions don't change between attempts.
// 403 is NOT retryable — surface it and fix the request/config.
const res = await fetch("https://api.anthropic.com/v1/messages", {
method: "POST",
headers: {
"content-type": "application/json",
"x-api-key": process.env.ANTHROPIC_API_KEY!,
"anthropic-version": "2023-06-01",
},
body: JSON.stringify(payload),
});
if (res.status === 403) {
const body = await res.json();
// Do not retry: log the provider's message — it names the exact problem.
throw new Error(`Anthropic 403: ${JSON.stringify(body.error ?? body)}`);
}Provider status page: status.anthropic.com