{"version":"2.1.234","anchor":"sdk-reports-where-an-api-key-actually-came-from","canonical_anchor":"sdk-reports-where-an-api-key-actually-came-from","heading":"SDK reports where an API key actually came from","tier":"internal","area":"SDK","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234\/e\/sdk-reports-where-an-api-key-actually-came-from","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234","markdown":"### SDK reports where an API key actually came from\n\nThe SDK now reports where an API key really came from, like the env var or an apiKeyHelper.\n\n**What**\n\nThe credential-source values in the SDK schema now lead with what current CLIs really emit: `ANTHROPIC_API_KEY`, `apiKeyHelper`, `\/login managed key` and `none`. The previous set (`user`, `project`, `org`, `temporary`, `oauth`) remains only as documented legacy so existing types keep compiling.\n\n**Evidence**\n\n`'user' | 'project' | 'org' | 'temporary' | 'oauth' are legacy members that current CLIs never emit`\n\n- Area: SDK\n- Names: `ANTHROPIC_API_KEY`, `apiKeyHelper`\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}