Anthropic's Message Batches API takes a file of up to 100,000 Messages API requests, processes them asynchronously, and charges 50% of standard prices on both input and output tokens. Nothing about the requests themselves changes — same models, same parameters, vision, tool use, system prompts, multi-turn conversations, and extended thinking are all supported. You are paying less purely in exchange for not needing the answer right now.
The batch price list
| Model | Standard (in / out per MTok) | Batch (in / out per MTok) |
|---|---|---|
| Claude Fable 5 | $10 / $50 | $5 / $25 |
| Claude Opus 4.8 | $5 / $25 | $2.50 / $12.50 |
| Claude Sonnet 5 (intro, through Aug 31, 2026) | $2 / $10 | $1 / $5 |
| Claude Sonnet 5 (from Sep 1, 2026) | $3 / $15 | $1.50 / $7.50 |
| Claude Haiku 4.5 | $1 / $5 | $0.50 / $2.50 |
The discount stacks with prompt caching: a cached, batched input token on Claude Opus 4.8 costs 0.1 × 0.5 × $5 = $0.25 per million. Because a batch can take longer than five minutes to process, use the 1-hour cache duration for context shared across a batch's requests.
The latency trade-off
Batches are asynchronous: you create one, poll its status, then download results as a .jsonl file. Most batches finish in under an hour; the hard ceiling is 24 hours, after which unprocessed requests expire — and expired (or errored, or canceled) requests are not billed. Only succeeded results cost money. Results stay downloadable for 29 days. Streaming is not supported inside a batch, and each request needs max_tokens of at least 1.
Good batch candidates share one property: nobody is waiting on the response. Nightly document classification, evaluation runs, embedding-adjacent enrichment, backfill migrations, content moderation sweeps, report generation. A worked example: classifying 100,000 support tickets on Claude Haiku 4.5 at ~2,000 input and ~50 output tokens each is 200M input + 5M output tokens. Standard: 200 × $1 + 5 × $5 = $225. Batched: $112.50. Same model, same results, half price. For the architectural decision, see batch vs. real-time.
Where it applies — and where it doesn't
This is where 3P readers need precision, because "batch" means two different things.
Anthropic's Message Batches API is available on the first-party Claude API and on Claude Platform on AWS. It is not available on Amazon Bedrock, Google Vertex AI, or Microsoft Foundry — on Foundry it is not available at all, even though many other advanced features are available there.
Cloud-native batch inference exists separately on AWS and Google Cloud, with the same headline economics. Amazon Bedrock offers S3-based batch inference for select foundation models including Anthropic's "at a 50% lower price compared to on-demand inference pricing" — inputs and outputs move through S3, and it doesn't support tool calling or structured output. Google Vertex AI offers batch prediction fed from a BigQuery table or JSONL in Cloud Storage, billed at 50% of on-demand rates (Opus 4.8 batch: $2.50 in / $12.50 out per MTok). So never conclude "no batch savings on Bedrock or Vertex" — the mechanism is the cloud's own, not Anthropic's endpoint. Bedrock specifics are covered in the Bedrock batch workaround.
Operational fine print
Batches are scoped to a workspace, and any API key in that workspace can view results — factor that into data-access reviews. Batch processing is not eligible for zero-data-retention arrangements. Batches may also slightly exceed a configured workspace spend limit because requests process concurrently. Finally, batch traffic has its own rate limits (requests per minute and queue depth), separate from your synchronous limits — helpful, because a big batch won't starve your interactive traffic.
Where to go next
Pair this with the cache break-even math — the two discounts multiply — and PDF token costs, since high-volume document processing is the classic batch workload.