SDK accountInfo() returns misleading subscriptionType 'Claude API' for subscription users
Resolved 💬 3 comments Opened Jan 31, 2026 by jeffknechtel Closed Feb 4, 2026
Description
When using the Claude Agent SDK's accountInfo() method, users who are authenticated via claude login (subscription users on Pro/Max) receive subscriptionType: "Claude API" instead of a value that reflects their actual subscription tier.
Steps to Reproduce
- Log in via
claude loginwith a Claude Pro or Max subscription - Use the Claude Agent SDK to call
query.accountInfo() - Observe the returned
subscriptionTypevalue
Actual Behavior
{
"email": "user@example.com",
"organization": "user@example.com's Organization",
"subscriptionType": "Claude API"
}
Expected Behavior
The subscriptionType should reflect the user's actual subscription tier, e.g.:
"Pro"for Claude Pro subscribers"Max"for Claude Max subscribers"Free"for free tier users
Or at minimum, something that distinguishes subscription users from API key users.
Additional Context
- The
apiKeySourcefield in the SDK's init message also returns"none"for subscription users, which is similarly unhelpful - The presence of
emailin the account info is currently the only reliable way to distinguish subscription users from API key users - This causes confusion for users who see "API" and worry they're being billed separately from their subscription
Workaround
Currently detecting subscription users by checking if email is present in the account info response, since API key users don't have email/organization fields returned.
Environment
- Claude Agent SDK version: 0.2.22
- Authentication:
claude login(OAuth) - Subscription: Claude Max/Pro
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗