Claude Sonnet vs Claude Sonnet Batch: why both exist

Claude Sonnet vs Claude Sonnet Batch: why both exist
Same weights. Two queues. You pick the one that matches how soon the answer has to land.
Anthropic sells Claude Sonnet on two paths. The Messages API returns a reply while you wait. The Message Batches API takes the same request, runs it on a later schedule, and charges half. Teams often treat these as two models. They are one model with two prices, because one caller is blocked and the other can wait.
That split shows up immediately in code review. A reviewer with a pull request open needs findings in this sitting. A nightly score of last month's diffs can land before standup.
What stays the same
Batch is a delivery path. The model id is still claude-sonnet-5, or an older Sonnet such as Sonnet 4.6. Context, tool use, vision, and extended thinking travel with the request. Anthropic documents batch support on all active models, and each request inside a batch is an ordinary Messages payload plus a custom_id.
A batch holds up to 100,000 requests or 256 MB, whichever comes first. Prompts in the same batch can differ. Each one runs on its own.
The live channel is what changes:
- Results come back as a file when the batch ends, so tokens are not streamed.
- Fast mode stays off. It exists to shorten synchronous latency, and a queue has no synchronous latency to shorten.
- Most batches finish in under an hour. You can read results when every request is done, or at 24 hours, whichever comes first. Work still running at 24 hours expires.
- Results stay downloadable for 29 days.
The cheaper door uses the same model. You paid for a later slot.
Why both versions exist
Interactive traffic and bulk traffic share the same GPUs. If every request must answer in seconds, capacity has to cover the busiest minute of the day. That capacity is spare at 3 a.m.
Batch is how that spare time gets a customer. You hand over work that can slip. Anthropic schedules it around the live queue, raises throughput, and prices the patience at 50% of standard token rates. Input, output, and cache tokens all take the discount.
The live API stays at full price because someone is waiting: a chat box, an agent about to call the next tool, a CI check that blocks merge. Those callers buy a slot now. Batch callers buy a slot when one frees up.
A product with only the cheap path would feel like a cron job. A product with only the live path would make evals, backfills, and dataset jobs pay for latency nobody is using. Both versions exist because those two jobs are real, and they should not share a price.
What it costs
List price and batch price per million tokens, from Anthropic's pricing page:
| Model | Standard input | Standard output | Batch input | Batch output |
|---|---|---|---|---|
| Claude Sonnet 5 | $2 | $10 | $1 | $5 |
| Claude Sonnet 4.6 | $3 | $15 | $1.50 | $7.50 |
Sonnet 5 launched at $2 / $10 through August 31, 2026, framed as an introductory rate. Anthropic kept that rate as the standard price. The move to $3 / $15 that had been scheduled for September 1 did not happen. Batch is half of the live list, so Sonnet 5 batch is $1 / $5 and Sonnet 4.6 batch is $1.50 / $7.50.
Prompt caching still applies. On a batch that shares a system prompt, the 1-hour cache matches the queue. A 5-minute cache can expire before the next request in that batch runs.
When to use standard Sonnet
Use the live API when a person or a gate is blocked on the answer.
- Pull request review in the browser. ThinkReview runs on the merge request you already have open. Claude Sonnet 5 sits in Model selection on the Professional tier for that moment: findings while the author is still in the branch.
- Agent loops. Tool use, repo search, and follow-up questions need the next turn before the loop can continue. That turn is a Messages API call.
- Merge gates. If CI should fail the build on a high-severity finding, the check has a timeout measured in minutes.
- A correction in the same sitting. If you will re-prompt after the first answer, you are in a conversation. Conversations belong on the live API.
Live Sonnet is the default for review you will act on today. Sonnet 5 is the one we point people at for that work: strong coding and tool use, on the Professional catalog, across GitHub, GitLab, Azure DevOps, and Bitbucket.
When to use Sonnet Batch
Use batch when the work is a pile, and morning is soon enough.
- Eval suites. Score thousands of historical diffs against a rubric. You care about the aggregate, and you can poll.
- Backfills. Re-review a quarter of merged pull requests after the prompt changes. Nobody is sitting in the sidebar.
- Dataset jobs. Draft summaries, label severities, or build few-shot examples from a corpus.
- Overnight reports. A digest of open merge requests in the inbox at 8 a.m. is a batch. A digest you refresh while you read the diff belongs on the live API.
A practical split for a review team: Sonnet on the open PR, Sonnet Batch on the regression set that checks the prompt still catches bugs you already fixed. Same model, so a quality change shows up in both places. The regression set bills at half.
Keep a request on the live API when it must stream, when it needs fast mode, or when missing the 24-hour window would block a release. A batch that expires returns nothing for the requests still in flight.
Pick the queue, then the model
Start with the clock. If a developer is waiting, call standard Sonnet. If the job can land later today, call Sonnet Batch and keep the tokens. Then pick the Sonnet generation your evals already trust — Sonnet 5 for new review work, Sonnet 4.6 where that is the model you pinned.
For the review in front of you, open the pull request and run ThinkReview on Claude Sonnet 5. For the thousand reviews you will score this weekend, send them through the Message Batches API.
Review the PR in front of you with ThinkReview. Figures follow Anthropic's pricing and batch processing docs.