Claude API Pricing Per Million Tokens Explained
Anthropic prices the Claude API per million tokens, with separate rates for input (prompt) tokens and output (completion) tokens, and the rate depends on which model you call. As of this writing, Claude's model family spans a cheap, fast tier (Haiku) through a balanced mid-tier (Sonnet) up to the most capable tier (Opus), and the price gap between the cheapest and most expensive model is roughly 20–60x depending on the generation.
If you're trying to estimate what a project will cost, the short answer is: pick the model tier first, then multiply your expected monthly input and output tokens by that model's per-million rate. Below is a practical breakdown of current list pricing, how token counting actually works, and how to avoid common budgeting mistakes.
Current Claude API pricing by model
Anthropic updates pricing occasionally, so always check the official pricing page before finalizing a budget, but the current tiers look like this:
- Claude 3 Opus — around $15 per million input tokens, $75 per million output tokens. This is the highest-reasoning, highest-cost model, typically used for complex analysis, legal/medical review, or multi-step agentic tasks.
- Claude 3.5 Sonnet — around $3 per million input tokens, $15 per million output tokens. This is the default workhorse for most production apps: strong reasoning, good speed, moderate cost.
- Claude 3.5 Haiku — around $0.80 per million input tokens, $4 per million output tokens. Fast and cheap, good for classification, extraction, summarization, and high-volume chat.
- Claude 3 Haiku (older generation) — around $0.25 per million input tokens, $1.25 per million output tokens, still available for extremely cost-sensitive workloads.
Notice that output tokens always cost more than input tokens — usually 4–5x more. This matters a lot if your use case generates long completions (code generation, long-form writing, detailed JSON) versus short completions (classification labels, yes/no answers, short extractions).
How token counting actually works
"Per million tokens" sounds abstract until you connect it to real text. A rough rule of thumb: 1 token ≈ 4 characters of English text, or about 0.75 words per token. So:
- A 1,000-word blog post is roughly 1,300–1,500 tokens.
- A 10-page PDF is roughly 5,000–7,000 tokens depending on formatting.
- A typical chatbot turn (short question + short answer) might be 100–300 tokens total.
Tokens are counted separately for the prompt you send (system prompt + conversation history + user message) and the completion the model generates. If you're sending the full chat history on every request — which most chat apps do — your input token count grows with every turn, even if the user's new message is short. This is the single biggest hidden cost driver in Claude-based apps: long conversations re-send the entire history every time.
Estimating real monthly cost
A simple formula for budgeting:
monthly_cost = (input_tokens / 1,000,000 * input_rate)
+ (output_tokens / 1,000,000 * output_rate)
Example: a support bot on Claude 3.5 Sonnet handling 50,000 conversations a month, averaging 800 input tokens and 200 output tokens per conversation:
input: 50,000 * 800 = 40,000,000 tokens → 40 * $3 = $120
output: 50,000 * 200 = 10,000,000 tokens → 10 * $15 = $150
total: $270/month
Switching the same workload to Haiku instead of Sonnet would cut this to roughly $70/month, at the cost of somewhat less nuanced responses — which is often an acceptable trade for classification-style support deflection, but not for complex troubleshooting.
Things that change your effective cost
A few factors beyond the raw per-million rate matter in practice:
- Prompt caching. If Anthropic's prompt caching is available for your use case and you reuse a large system prompt or document context across requests, cached input tokens are billed at a reduced rate. This matters a lot for RAG apps with large retrieved context.
- Streaming vs. non-streaming. Token pricing is identical either way — streaming only affects latency and UX, not cost.
- Model routing. Many production apps route easy queries to Haiku and escalate only complex ones to Sonnet or Opus, which can cut blended cost by 50-70% without a noticeable quality drop for most users.
- Conversation trimming. Summarizing or truncating long chat histories before resending them is one of the most effective ways to control runaway input token costs in chat products.
Where SubToAPI fits in
If you already have Claude access and want to turn it into a production HTTPS API without building your own billing, key management, and usage-tracking layer, SubToAPI wraps that access into application API keys (sub_live_...) with streaming, tool use, and per-key usage metadata out of the box. You still pay Anthropic's underlying per-million-token rates through your Claude access — SubToAPI adds the infrastructure layer (team seats, dashboards, key rotation) on top, starting at €9/month on the Solo plan. See /pricing for plan details or jump straight to the /docs/quickstart to see how requests look against https://api.subtoapi.app/v1/....
A minimal request looks like this:
curl https://api.subtoapi.app/v1/messages \
-H "Authorization: Bearer $SUBTOAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-sonnet",
"max_tokens": 300,
"messages": [{"role": "user", "content": "Summarize this in 3 bullets."}]
}'
Full request/response formats, including streaming and tool use, are covered in /docs/messages, /docs/streaming, and /docs/tools.
Practical budgeting checklist
- Estimate average input and output tokens per request using real sample prompts, not guesses.
- Multiply by expected monthly request volume per model tier.
- Add 20-30% headroom for retries, longer-than-expected completions, and growth.
- Re-check pricing periodically — Anthropic has adjusted rates and added new model tiers more than once.
- Consider a free trial run (SubToAPI offers one at /signup) to measure real token usage on your actual workload before committing to a monthly budget.
Questions
Is Claude API pricing the same for all models? No. Each model tier (Haiku, Sonnet, Opus) has its own input and output rate per million tokens, with Opus costing significantly more than Haiku for the same token volume.
Does streaming cost more than non-streaming responses? No, streaming doesn't change the per-token price. You pay the same input/output rates either way — streaming only changes how the response is delivered.
How can I reduce my Claude API bill without losing quality? Route simple queries to Haiku and reserve Sonnet/Opus for complex tasks, trim long conversation histories before resending them, and use prompt caching where available for repeated large contexts.