A Batch API accepts jobs asynchronously, typically completing within hours instead of seconds, in exchange for a 50% discount on both input and output tokens. Anthropic, OpenAI and Google all offer one. Batched Claude Fable 5.1 costs $5/$25 per million tokens, the same as synchronous Claude Opus 5.
Why it matters
Half off both sides of the meter, on the same model, just for waiting. It applies to the workloads that least need speed: evaluations, backfills, embeddings pipelines, nightly summaries, dataset labeling. Most teams run these synchronously out of habit and pay double.
The arithmetic nobody runs
Our measured one-shot dashboard task billed $0.1462 on synchronous Fable 5. Batched, the same tokens price at $0.0731, below what we metered on synchronous Opus 5 ($0.1158). If a premium-model workload can wait an hour, you can hold the model and halve the bill. Rates and receipts in the pricing breakdown.
Batch APIs compared: Anthropic, OpenAI and Google
The discount is the same at all three. Turnaround, batch size, what happens when time runs out, and how long results are kept are not.
| Anthropic Message Batches | OpenAI Batch API | Gemini Batch API | |
|---|---|---|---|
| Discount | 50% on all usage | 50% | 50% of the standard cost |
| Turnaround | Most batches finish within 1 hour; they expire after 24 hours | 24-hour completion window | 24-hour target, usually faster; jobs expire after 48 hours pending or running |
| Largest batch | 100,000 requests or 256 MB | 50,000 requests in an input file up to 200 MB | Inline requests under 20 MB, or a JSONL file up to 2 GB |
| If time runs out | Requests not yet sent to the model expire and are not billed | Unfinished requests are cancelled; tokens from completed ones are charged | The job expires with no results; resubmit or split it |
| Results kept | 29 days | Output file deleted after 30 days | 6 weeks by default |
| Prompt caching | Discounts stack; cache hits are best-effort, typically 30% to 98% | Batch pricing lists cached input at half the standard cached rate | Context caching supported; batch pricing lists caching at half the standard caching price |
Sources: Anthropic batch processing, OpenAI Batch API, Gemini Batch API and each provider's pricing page. Verified October 26, 2026.
What batch costs on current models
| Model | Standard, input / output per 1M tokens | Batch, input / output per 1M tokens |
|---|---|---|
| Claude Fable 5.1 | $10 / $50 | $5 / $25 |
| Claude Opus 5.5 | $4 / $20 | $2 / $10 |
| Claude Sonnet 5.5 | $2 / $10 | $1 / $5 |
| GPT-6 Astra | $10 / $50 | $5 / $25 |
| GPT-6.1 Sol | $2 / $10 | $1 / $5 |
| GPT-6 Luna | $0.10 / $0.50 | $0.05 / $0.25 |
| Gemini 4 Argon | $2 / $10 through November 30, 2026 | $1 / $5 through November 30, 2026 |
| Gemini 3.8 Flash | $0.75 / $3.75 through December 31, 2026 | $0.375 / $1.875 through December 31, 2026 |
Short-context list rates from the Anthropic, OpenAI and Gemini pricing pages, verified October 26, 2026. Google lists both Gemini rates doubling after the dates shown. Every model we track is in the LLM price index.
How to move a workload to batch
- Pick a job nobody waits on: evals, backfills, labeling, nightly reports, embeddings.
- Write each request as one line with your own
custom_id. Results can come back in any order, so match on the ID, never on position. - Put shared instructions and documents first in every request so cache hits can stack with the batch discount. Anthropic recommends its 1-hour cache for batches.
- Split large jobs under the size limits above and submit them early enough to finish before your deadline, even if a batch takes the full window.
- Collect results, then resubmit anything that errored or expired.
When the work cannot wait
Batch only pays when you can wait. For interactive traffic, Pareto by Unbiased bills $0.80 per million input tokens and $3.20 per million output tokens on every synchronous request, below the batch list rates of Claude Sonnet 5.5 and GPT-6.1 Sol ($1 / $5). These are list rates, not equal-task bills: compare on your own requests with the evaluation recipe, and see the pricing page for cached input.
Common questions
How long do batch jobs take?
All three providers commit to 24 hours or less and usually finish sooner. Anthropic says most batches finish within 1 hour; Gemini jobs expire if still pending or running after 48 hours. The discount is the payment for that flexibility.
Does batch work with caching?
Yes. On Anthropic the prompt-caching and batch discounts stack, though cache hits in a batch are best-effort (typically 30% to 98%). OpenAI and Google both list cached input at half the standard cached rate in their batch pricing.
What workloads should never batch?
Anything interactive: chat, agents mid-session, user-facing generation. Batch is for work nobody is waiting on.
Which providers offer a batch API?
Anthropic (Message Batches), OpenAI (Batch API) and Google (Gemini Batch API) all offer one at 50% off standard rates. Limits differ: up to 100,000 requests per batch on Anthropic, 50,000 on OpenAI, and input files up to 2 GB on Gemini.
What happens to batch requests that do not finish in time?
On Anthropic, requests that expire before reaching the model are not billed. On OpenAI, unfinished requests are cancelled and you pay for the ones that completed. A Gemini job that runs past 48 hours expires with no results. Resubmit or split what is left.
Are batch results returned in order?
No. Anthropic and OpenAI both say results can come back in a different order from the requests, so give each request a custom_id and match results on it.
Compare any two models
List rates and dated competitor measurements: prices and measured bills. Preliminary Pareto 26.10 benchmark costs per task from October 1, 2026 are on the model card. Verbosity: Edition 2.
Try it on one part of your codebase
Set Pareto up in the coding agent you already use and give it a week of real work. Pareto starts at $10 a month.
Read https://unbiased.ai/glossary/batch-api/ and tell me what matters for my setup. If Pareto fits, read https://unbiased.ai/works-with/agent.md, find the coding agent I use on this machine, and set it up to use Pareto. Ask before changing any file, and never ask me to paste my API key into chat.
It asks before changing files and never needs your key in chat. Read the agent runbook