Claude Code switched from subscription to API-credit billing without user action — no indicator until spend limits hit
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Claude Code began billing my interactive sessions to API credits instead of my
Pro/Max subscription, without any action from me. I never configured an API key
(verified: no ANTHROPIC_API_KEY in env, shell history, or config).
Evidence it was an unintended switch, not a pre-existing config:
- I used Claude Code actively in both May and June.
- May API usage was flat — May sessions billed to my subscription.
- In June, interactive sessions billed to an API key (visible in the API Usage
dashboard, which shouldn't be possible under a subscription).
- Re-authenticating ("Log in with Claude") restored subscription billing.
The switch coincided with an update / forced re-auth. I can't pin the exact
trigger, so I'm reporting the observed behavior, not a cause.
Impact: one overnight session consumed ~24M input tokens on Opus before I
noticed. It was caught only because I happened to have a monthly spend limit set.
The product only surfaces "connect your subscription" guidance after usage limits
are hit — i.e. after charges accrue. Users without a spend limit could be billed
with no warning.
What Should Happen?
- The chosen auth method (subscription vs API key) should persist across updates
and re-auth. If it ever changes, Claude Code should require explicit
confirmation before billing a session to API credits.
- The active billing source should be visible (e.g. in /status:
"Billing: Pro/Max subscription" vs "Billing: API credits — $X"), and the CLI
should warn before the first API-billed request — not only once usage limits
are reached.
Error Messages/Logs
No error was produced — that's the core problem. No prompt, warning, or error at
any point; the billing source changed silently. The only signals were
interactive-session usage appearing in the API Usage dashboard and the
spend-limit alert. Happy to share org/workspace IDs, affected dates, and Usage
screenshots privately.
Steps to Reproduce
Note: this is auth-state dependent, so I can't guarantee a deterministic repro.
Best-effort:
- Authenticate Claude Code via Pro/Max subscription ("Log in with Claude").
- Confirm sessions bill to the subscription (nothing in the API Usage dashboard).
- Take a Claude Code update and/or a forced re-authentication.
- Re-authenticate.
- Observe whether interactive sessions now bill to an API key — check the API
Usage dashboard for interactive-session token usage that shouldn't appear
under a subscription.
In my case the switch happened around an update/re-auth without my selecting an
API key, and there was no on-screen indication of the active billing source at
any point.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Unsure of the exact version. Billing was correct (subscription) through May 2026; the switch to API-credit billing first showed up around June 1, 2026.
Claude Code Version
2.1.150 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
VS Code integrated terminal
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗