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. 1.Workspace-scoped key used against a model the workspace can't access
  2. 2.Beta feature header sent without the org being in that beta
  3. 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