Claude API Pricing: How Model Choice Changes Your Bill
Most people asking what the Claude API costs are really asking a different question: which model should I be on, and how much will that decision cost me over a month? The published rate card answers the first half and not the second.
Here is how the billing actually works, and the three decisions that move the number more than anything else.
Claude bills per token, split two ways
Every request is charged on two separate meters:
- Input tokens โ your prompt, the system message, any conversation history you resend, and any documents you paste in.
- Output tokens โ what the model writes back.
Output is several times more expensive than input on every Claude model. That single fact drives most of the surprises. A retrieval-augmented app that stuffs 20,000 tokens of context into every call and gets back 200 tokens is an input-heavy workload. An agent that writes long files is output-heavy, and it will cost more than its request count suggests.
Work out which one you are before optimising anything, because the fixes are opposite: input-heavy workloads are fixed with caching and shorter context, output-heavy ones with cheaper models and tighter instructions.
The model tiers, and what actually separates them
Claude comes in three families, and they are not small increments apart.
Haiku โ the fast, cheap tier. Classification, routing, extraction, summarising, anything where the task is well-specified and the output is short. If you are using a frontier model to decide which of four categories a support ticket belongs to, you are paying for reasoning you are not using.
Sonnet โ the general workhorse. Most production traffic belongs here. Strong enough for code, analysis and long-form writing, materially cheaper than the top tier.
Opus โ the frontier tier. Worth it when the task genuinely needs the extra capability: hard reasoning, long agentic chains, work where a wrong answer costs more than the tokens. Not worth it as a default.
The mistake that costs the most is not choosing wrong once. It is choosing Opus during prototyping, when volume is tiny and the difference is invisible, and never revisiting it when traffic grows.
The three things that actually change your bill
1. Move the floor, not the ceiling. Most applications have one or two calls that dominate volume โ a classifier, a router, a summariser running on every request. Moving those from Sonnet to Haiku changes the bill far more than moving your one hard call from Opus to Sonnet. Find the highest-volume call first.
2. Stop resending the same context. If every turn resends a long system prompt and full history, you are paying input tokens for identical text repeatedly. Prompt caching exists exactly for this and is the single largest saving available to most chat and agent workloads. Restructure so the stable part of the prompt comes first and stays byte-identical.
3. Cap the output. Set max_tokens to what you actually need. A model asked
an open question will happily write four paragraphs where you wanted one line,
and you pay for all four at the output rate. Asking for JSON, or for "one
sentence", is a cost control as much as a formatting one.
Checking the rate that applies to you
Rates differ by how you access the model. Through CCAPI, the price you pay is the model's base price with your account's group rate applied, so two accounts calling the same model can pay different amounts โ which is why this article gives you the shape of the decision rather than a table of numbers that would be wrong for most readers and stale for the rest.
The pricing page shows the rate for your account when you are signed in. Every response reports the exact quota consumed, and the console logs each request, so you can attribute spend per token, per model and per day rather than estimating.
The full Claude line is available on one key alongside every other model on the platform โ see the Claude Sonnet, Claude Opus and Claude Haiku pages for parameters and worked examples.
Calling it
The endpoint is OpenAI-compatible, so switching models is a one-string change:
curl https://api.ccapi.ai/v1/chat/completions \
-H "Authorization: Bearer sk-YOUR-KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 512,
"messages": [{"role": "user", "content": "Summarise this in one sentence: ..."}]
}'
Swapping claude-sonnet-5 for a Haiku or Opus model is the whole migration.
That is the point of testing tiers properly rather than guessing: the switching
cost is one string, so there is no excuse for running the expensive model on
work the cheap one handles.
Frequently asked questions
Why is my bill higher than my request count suggests? Almost always output tokens or resent context. Output is charged at a substantially higher rate than input, and long conversation histories mean you pay for the same prompt text on every turn.
Does prompt caching actually help? For anything with a long, stable system prompt โ agents, chat, RAG โ it is usually the largest single saving available. It does nothing for one-shot calls with unique prompts.
Which Claude model should I default to? Sonnet. Move individual calls down to Haiku when the task is narrow, and up to Opus only when you can point at a failure that the extra capability fixes.
Do I need an Anthropic account to use the Claude API? Not through CCAPI. One key reaches the full Claude line along with every other model on the platform, with no separate account or console to configure.
How do I compare tiers on my own traffic? Run the same prompts through two models and compare both the output and the reported quota. Because the endpoint is OpenAI-compatible, that is a config change rather than an integration.
How do I see what I actually spent? The console logs every request with its exact quota consumption, filterable per API token, per model and per day.
The short version
Find your highest-volume call and make sure it is on the cheapest model that can
do the job. Cache the stable part of your prompts. Cap max_tokens. Those three
moves account for most of the difference between a predictable Claude bill and a
surprising one โ and none of them require changing what your application does.
Check your own rates on the pricing page.