Get alerts
AiGanak
Scope a project
Cost engineering

Batch API guide: halve your LLM costs for work that can wait

Key takeaways
  • OpenAI, Anthropic and Google all charge 50% less for work submitted as a batch, on both input and output tokens. In exchange you accept a turnaround of up to 24 hours instead of an immediate answer.
  • The discount is the same on every model, so it saves the most in dollars where the model is most expensive: on 500,000 document-processing requests a month, batch saves $7,500 on GPT-6 Astra and $75 on GPT-6 Luna.
  • Batch stacks with prompt caching, but cache hits inside a batch are not guaranteed. Anthropic reports hit rates of 30% to 98% in batches, which is the difference between a $1,680 and a $388 bill in our worked example.
  • Anything a customer is waiting for stays on the normal API. Overnight enrichment, classification, evaluations, summaries and backfills are the work to move.

Most LLM bills contain two kinds of work: requests where a person is waiting for the answer, and requests where nobody is. Product descriptions generated overnight, support tickets classified in bulk, documents extracted into fields, evaluation runs and backfills do not need an answer in two seconds. All three major providers sell that second kind of work at half price if you hand it over as a batch and collect the results later. This guide explains how each provider's batch service works, what it costs, how it combines with prompt caching, and how to decide what to move. All prices are in US dollars per million tokens, checked on each provider's own pages on 29 October 2026.

What a batch API is

You collect many requests into one job, submit it, and come back for the results. The provider runs the requests when it has spare capacity, within a stated window. Compared with calling the normal API one request at a time, three things change:

  • Price: 50% off input and output tokens on all three providers.
  • Timing: results arrive within hours, not seconds. Every provider states a 24-hour target or limit.
  • Plumbing: you submit a file or a list, poll for completion and match results to requests with an ID you assign. There is no streaming.

The model, the prompts and the answers are the same as on the normal API. OpenAI also gives batch its own, separate rate-limit pool, so a large batch does not use up the capacity your live product depends on.

How each provider runs batches

OpenAI Batch APIAnthropic Message BatchesGemini Batch API
Discount50% on input and output50% on all usage50% of the standard price
TurnaroundWithin 24 hours, often soonerMost batches finish within 1 hour; unfinished after 24 hours expire24-hour target, often much quicker; jobs pending or running for over 48 hours expire
Size limit50,000 requests or 200 MB per batch100,000 requests or 256 MB per batch2 GB input file; inline requests under 20 MB
InputJSONL file, one model per fileList of requests, each with your own IDInline list or JSONL file
Results keptOutput file; unfinished requests listed in an error fileDownloadable for 29 daysOutput file via the Files API
If it expiresCompleted requests are returned and billed; unfinished ones are cancelledUnfinished requests expireExpired job returns no results; resubmit in smaller batches

Two practical points. First, because expiry is a possibility on every provider, split very large jobs into several batches and check for failed or expired requests when each finishes. Second, Gemini does not treat job creation as idempotent: sending the same creation request twice creates two jobs, and you pay for both.

OpenAI batches cover the Responses, Chat Completions, Embeddings, Completions, Moderation and image endpoints, and most models. Anthropic states that all active models support batches, and that batches can include vision and tool use, though streaming is not available. Gemini's Batch API works with the generateContent API and with the same input types as the interactive API.

Batch prices by model

Per 1M tokensStandard inputStandard outputBatch inputBatch output
GPT-6 Astra$10.00$50.00$5.00$25.00
GPT-6.1 Sol$2.00$10.00$1.00$5.00
GPT-6.1 Terra$1.00$5.00$0.50$2.50
GPT-6 Luna$0.10$0.50$0.05$0.25
Claude Fable 5.1$10.00$50.00$5.00$25.00
Claude Opus 5.5$4.00$20.00$2.00$10.00
Claude Sonnet 5.5$2.00$10.00$1.00$5.00
Claude Haiku 5.5 (prompts up to 100K)$0.10$0.50$0.05$0.25
Gemini 4 Argon (until 30 Nov 2026)$2.00$10.00$1.00$5.00
Gemini 3.8 Flash (until 31 Dec 2026)$0.75$3.75$0.375$1.875

The long-prompt surcharges carry over. OpenAI's batch price for GPT-6 Astra on prompts over 272K tokens is $10 input and $37.50 output, twice and one and a half times the short-prompt batch rates, and Claude Haiku 5.5 prompts over 100,000 tokens cost $0.25 input and $1.25 output in a batch. Google has announced that Gemini 4 Argon doubles on 1 December 2026, with batch prices doubling to $2 input and $10 output, and Gemini 3.8 Flash doubles on 1 January 2027; the Gemini price increase guide has the details. A batch price is always exactly half of that model's standard price, so the ranking of models does not change: what changes is how much each dollar buys. Every model's full price list is in the pricing calculator.

Worked example: what it saves

A company enriches product records overnight. Each month it sends 500,000 requests of 1,500 input tokens and gets 300 tokens back, 750 million input tokens and 150 million output tokens in all. The token counts are an illustration, not a measurement.

500,000 requests a monthStandard APIBatchSaved a month
GPT-6 Astra or Claude Fable 5.1$15,000$7,500$7,500
Claude Opus 5.5$6,000$3,000$3,000
GPT-6.1 Sol or Claude Sonnet 5.5$3,000$1,500$1,500
GPT-6.1 Terra$1,500$750$750
Gemini 3.8 Flash (until 31 Dec 2026)$1,125$562.50$562.50
GPT-6 Luna or Claude Haiku 5.5$150$75$75

The percentage is the same everywhere, so the dollars follow the model. The same job costs 100 times more on a flagship than on a small model, and batch halves both. Choosing a cheaper model and using batch are separate savings that multiply: moving this job from GPT-6 Astra on the normal API ($15,000) to Claude Sonnet 5.5 in batch ($1,500) cuts the bill by 90%, if Sonnet 5.5 does the task well enough. That last condition decides it, and it is worth testing on your own examples before you move. Our small versus large model guide covers how.

Batch plus caching

Batch and prompt caching discounts combine. OpenAI's batch table lists cached input at half the standard cached rate, for example $0.05 per million tokens on GPT-6.1 Sol against $0.10 on the standard tier. Anthropic says the two discounts stack. Google says that a batch request which hits the cache is billed at the standard context caching rates, so check its pricing page for the cached rate that applies to your model. Our prompt caching guide has the full cache prices.

The catch is that cache hits in a batch are not guaranteed. Anthropic states that requests in a batch run concurrently and in any order, so cache hits are best-effort, and that customers typically see hit rates of 30% to 98%. It also recommends the 1-hour cache lifetime for batches with shared context, because a batch can take longer than the 5-minute default.

To see how much that range matters, take the support-assistant example from the caching guide on Claude Sonnet 5.5: 100,000 requests a month, each with a 20,000-token fixed prompt, a 500-token question and a 400-token answer. Cache write charges are left out of these figures.

100,000 requests a month, Claude Sonnet 5.5Monthly cost
Standard API, no caching$4,500
Standard API, fixed prompt cached on every request$700
Batch, no caching$2,250
Batch, 30% of the fixed prompt read from cache$1,680
Batch, 98% of the fixed prompt read from cache$388

Caching alone does most of the work on this job, so for a request that repeats a long prompt, batch adds a further halving only if the cache hit rate holds up. If the job can wait but your hit rate in a batch is low, compare the batch figure against the same job run on the standard API with a steady, cached stream of requests. Which is cheaper depends on your hit rate, and it is worth measuring on a small batch first.

Flex: batch prices without the file

OpenAI also offers Flex processing: you send ordinary Responses or Chat Completions requests with the service tier set to flex and get batch rates for them. OpenAI describes the trade as slower response times and occasional resource unavailability, and says the tier is in beta with limited model availability, so your code must handle a request being refused and retry later. It suits background jobs that fit a normal request-and-response loop, such as an agent running overnight, where building a batch file would be awkward. Google also lists a Flex inference option. Check each provider's pricing page for which models support it before relying on it.

What to move to batch

  1. Move: bulk classification, tagging and routing of stored records; extracting fields from archives of documents; summaries and descriptions generated ahead of time; evaluation runs against a test set; embeddings for a content library; backfills after you change a prompt.
  2. Keep live: chat, anything a user is watching, steps inside an agent where the next step depends on the answer, and anything with a deadline shorter than the batch window.
  3. Redesign, then move: features that feel live but are not: a report generated when a user clicks, for example, can often be prepared overnight and shown when they arrive.

Before you switch, make sure you can handle three things: matching results to requests by your own ID, retrying the failed or expired ones, and a fallback to the normal API for the rare job that cannot wait. Stay under each provider's batch size limit, and keep one model per file on OpenAI.

How to find your batchable spend

Look at your usage export by feature or by job and ask of each line: would anyone notice if this answer arrived six hours later? The total of the lines where the answer is no is your batchable spend, and half of it is your saving. The free Bill Analyzer reads your usage export and lets you set the share of traffic that could move to batch, then shows the estimated saving alongside the effect of caching and model changes. To price your own volumes on every current model, standard and batch, use the API pricing calculator. If you want your real requests checked for what can be batched, cached or moved to a cheaper model, with a ranked plan, that is what the LLM Cost Report delivers.

Sources

  1. OpenAI: Batch API guide (checked 29 October 2026)
  2. OpenAI: Pricing (checked 29 October 2026)
  3. OpenAI: Flex processing (checked 29 October 2026)
  4. Anthropic: Batch processing (checked 29 October 2026)
  5. Anthropic: Claude API pricing (checked 29 October 2026)
  6. Google: Gemini Batch API (checked 29 October 2026)
  7. Google: Gemini API pricing (checked 29 October 2026)

Provider prices and limits change often. Figures were checked on 29 October 2026; confirm current terms with each provider before you rely on them.

Free price alerts

Get an email when an LLM price changes

OpenAI, Anthropic and Google change API prices with little notice. We check their pricing pages every week and email you the old price, the new price and the date. Free, a few emails a month at most.

We send a confirmation email first. Unsubscribe in one click. Privacy.

FAQ

Questions about this topic

Can't find it? Press ⌘K and ask.

How much cheaper is a batch API?

OpenAI's Batch API, Anthropic's Message Batches and Google's Gemini Batch API all charge 50% of the standard price on input and output tokens (checked 29 October 2026). The trade is turnaround: OpenAI and Google target 24 hours, and Anthropic says most batches finish within an hour and expires unfinished batches after 24 hours. On 500,000 requests of 1,500 input and 300 output tokens a month, batch cuts GPT-6 Astra from $15,000 to $7,500 and GPT-6 Luna from $150 to $75.

What are the batch size limits?

An OpenAI batch holds up to 50,000 requests or 200 MB, and all requests in a file must use one model. An Anthropic batch holds up to 100,000 requests or 256 MB. A Gemini batch input file can be up to 2 GB, and inline requests must stay under 20 MB. Split larger jobs into several batches.

Can I combine batch with prompt caching?

Yes. OpenAI lists batch cached-input prices at half the standard cached rate, and Anthropic says the two discounts stack. Cache hits inside a batch are best-effort because requests run concurrently: Anthropic reports hit rates of 30% to 98% and recommends the 1-hour cache lifetime for batches with shared context.

How much of your bill could go to batch?

Upload your usage export to the free Bill Analyzer. It estimates the saving from moving the share of your traffic that can wait to half-price batch processing.