Does Claude Extended Thinking Use More Tokens? Cost Explained
I was confused when my Claude message limit got exhausted after just one complex query. The chat was working fine yesterday, and suddenly I’m hitting rate limits way faster than expected. What happened?
The Problem
The issue was extended thinking (reasoning mode). When extended thinking is enabled, Claude generates internal “thinking” content before producing its final response. These thinking blocks count toward your usage limits just like output tokens.
I discovered this by examining the response structure in my project’s code. In app/services/claude_log_service.py, there’s explicit handling for thinking blocks:
elif block_type == "thinking": parsed_blocks.append( { "event_type": "thinking", "title": "Thinking", "content": block.get("thinking", ""), } )This code confirms that extended thinking generates separate “thinking” blocks that are tracked and stored as additional content, distinct from regular text responses.
Token Consumption Comparison
Let me break down the actual token cost difference:
Standard Response Token Cost:
- My input: ~500 tokens
- Claude’s response: ~1,000 tokens
- System overhead: ~2,000 tokens
- Total: ~3,500 tokens
Extended Thinking Response Token Cost:
- My input: ~500 tokens
- Thinking blocks: ~5,000-15,000 tokens (varies by complexity)
- Claude’s response: ~1,000 tokens
- System overhead: ~2,000 tokens
- Total: ~8,500-18,500 tokens
Extended thinking can multiply token usage by 2-5x per message. No wonder I was hitting limits faster.
Why This Matters
- Rate limit exhaustion: Daily/monthly limits deplete 2-5x faster
- Cost implications: Paying per token means extended thinking costs more
- Feature vs. cost tradeoff: Better reasoning quality comes at a token cost
- Model differences: Opus has more powerful thinking than Sonnet but costs more per token
From Anthropic’s pricing page, the model costs are:
- Opus 4.6: $5/MTok input, $25/MTok output
- Sonnet 4.6: $3/MTok input, $15/MTok output
Common Mistakes I Made
- Leaving extended thinking on all the time - I should only enable it when deeper reasoning is needed
- Not understanding the token cost - Thinking tokens aren’t free; they count toward limits
- Using extended thinking for simple questions - Complete waste for basic queries
- Long conversations with thinking enabled - Context accumulates, and thinking compounds the cost
How to Check Token Usage in API Responses
When using the API, you can see the token impact:
# Extended thinking responses include thinking blocksresponse = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=4096, thinking={"type": "enabled", "budget_tokens": 10000}, messages=[{"role": "user", "content": "Solve this complex problem..."}])
# Token usage includes thinking tokensprint(f"Input tokens: {response.usage.input_tokens}")print(f"Output tokens: {response.usage.output_tokens}")# Note: thinking tokens are included in output_tokensTo save tokens for simple tasks:
# For simple tasks, disable thinkingresponse = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1024, thinking={"type": "disabled"}, # Explicit disable messages=[{"role": "user", "content": "What is 2+2?"}])Model Selection Strategy
Based on my experience and Anthropic’s pricing, here’s what I recommend:
| Scenario | Recommended Model | Extended Thinking? |
|---|---|---|
| Simple coding tasks | Sonnet 4.6 | Off |
| Complex debugging | Sonnet 4.6 | On |
| Architecture design | Opus 4.6 | On |
| Quick questions | Sonnet/Haiku | Off |
| Research and analysis | Opus 4.6 | On |
Community Insights
I found similar experiences on Reddit. One user noted: “are you keeping thinking or reasoning on at all time? That also has cost. And it eaaaats tokens”
Another mentioned getting “force switched to Sonnet” after hitting limits, which suggests the platform is aware of the token consumption patterns.
Conclusion
Extended thinking in Claude consumes more tokens because it generates additional reasoning content before the final response. These thinking tokens count toward usage limits, causing faster rate limit exhaustion.
To manage costs:
- Disable extended thinking for simple queries
- Enable it selectively for complex problems
- Consider using Sonnet with thinking instead of Opus for cost efficiency
- Monitor usage after each message to understand the impact
The tradeoff is real: better reasoning comes at a token cost. Use extended thinking strategically, not by default.
Final Words + More Resources
My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me
Here are also the most important links from this article along with some further resources that will help you in this scope:
Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!
Comments