Batch inference runs a large set of prompts as one asynchronous job at a 50% lower price than on-demand for select models. This page covers how to submit a job, which models support it, which workloads fit, quotas and turnaround, the cost math, and how it combines with other Bedrock cost levers.
Batch inference trades latency for a lower price. A large share of real GenAI work fits its shape better than the real-time path.
On on-demand you send one request, wait for one response and pay the full rate. That is right for anything a person waits on. But much GenAI work is not latency-sensitive: classifying ten million tickets overnight, embedding a corpus, enriching a dataset, scoring an evaluation set, generating synthetic data. You need the whole job done by a deadline, cheaply.
With batch, you put all requests into one job (a file of inputs in S3). Bedrock processes them in the background and writes results to S3. AWS prices batch at 50% lower than on-demand for select models (see the Bedrock pricing page). The output is the same as on-demand; only delivery and price differ.
The mental model: on-demand is a conversation, batch is a queue. There is no model-quality trade-off and no reserved-capacity commitment. You move a workload that does not need real time onto the batch path, and its token bill roughly halves. See the batch inference user guide.
A file of inputs in S3, a file of outputs in S3, and one API call to start the job.
Every record is independent: there is no shared conversation, so batch is for parallel work (classify each item, embed each chunk). And it is file in, file out through S3, so it fits next to Glue, Athena or Step Functions in a data pipeline. Moving a workload from on-demand to batch is mostly writing the same request bodies to a file. Check the current docs for exact field names and job states.
AWS lists batch support for select models from Anthropic, Meta, Mistral AI and Amazon, including embedding models used for corpus backfills.
Batch covers many high-volume text models (Anthropic Claude, Amazon Nova, Llama, Mistral) and embedding models (Amazon Titan Text Embeddings, Cohere Embed). Not every model supports it, and coverage changes, so confirm your model in the current docs before you design a job.
For batch, pick the cheapest model that clears the quality bar, because batch is where volume is highest. A nightly job over hundreds of millions of tokens rarely needs a frontier model if a small model (Nova Micro or Lite, a Claude Haiku model, a small Llama or Mistral) does the job. The rate difference, times batch volume, then halved, is the gap between a cheap job and an expensive one.
For embeddings, batch is the natural home for the initial backfill of a corpus and for re-embedding when content or the embedding model changes.
Use batch when the work is high-volume and nobody is waiting on any single answer.
When not to use batch: anything a person or a synchronous system is waiting on, such as chat, agent loops, autocomplete or in-path moderation. Those belong on on-demand, often with prompt caching. The test: is something waiting on this answer right now? If not, use batch.
Batch has no real-time completion promise. Plan for predictability, not speed.
Turnaround. A job runs as capacity allows. Small jobs can finish in minutes; very large ones can take many hours. Build the deadline into your schedule: submit the nightly job with plenty of margin before anyone needs the results.
Quotas. Bedrock limits concurrent batch jobs, input file size and records per job, by account, model and Region. Split large datasets into several files or jobs. Many limits can be raised through Service Quotas; check the current values rather than hard-coding them.
Failures. Single records can fail (bad input, over a limit) without failing the job. Reconcile inputs against outputs by record ID and resubmit failures. Treat batch as a data pipeline with reconciliation, not a fire-and-forget call.
| Dimension | On-demand | Batch inference |
|---|---|---|
| Latency | Real time (ms to seconds) | Asynchronous (minutes to hours) |
| Price per token | Baseline | 50% lower for select models |
| Interface | Per-request API call | JSONL in S3 → job → JSONL out |
| Limits | Per-account throughput | Job and record quotas |
| Best for | Anything a person waits on | Bulk, non-interactive jobs |
| State | Can be multi-turn | Each record independent |
A representative example you can reproduce for your own job.
The job. Summarize and tag 2,000,000 documents a month, each about 1,500 input tokens and 250 output tokens. That is 3 billion input tokens and 500 million output tokens a month.
On-demand on Amazon Nova Lite (representative rates of $0.06 per 1M input and $0.24 per 1M output): 3,000 × $0.06 = $180 input plus 500 × $0.24 = $120 output, about $300 a month. On batch, about $150 a month.
Model choice matters more. The same job on a Sonnet-class model at $3 and $15 per 1M is about $16,500 a month on-demand, or about $8,250 on batch. Right-size the model first, then halve it with batch.
These are illustrations; rates change by model and Region. Confirm current prices on the AWS Bedrock pricing page.
| Model | On-demand / mo | Batch / mo | Saving from batch | Notes |
|---|---|---|---|---|
| Amazon Nova Lite | ~$300 | ~$150 | ~$150 | Right-sized for enrichment |
| Claude 3 Haiku ($0.25 / $1.25 per 1M) | ~$1,375 | ~$690 | ~$685 | Newer Haiku models cost more per token |
| Claude Sonnet ($3 / $15 per 1M) | ~$16,500 | ~$8,250 | ~$8,250 | Overkill for this job |
Route each path of a product to its cheapest suitable mode instead of picking one global setting.
The main ways to pay on Bedrock are on-demand (per token, real time), batch (lower price, asynchronous), Provisioned Throughput (reserved capacity by the hour) and prompt caching (a discount on repeated input on the real-time path). One product often uses several.
Batch plus model right-sizing is the strongest pairing: the savings multiply.
Batch vs prompt caching depends on traffic shape. Caching discounts a repeated prefix on interactive traffic; batch discounts offline bulk work.
Batch vs Provisioned Throughput is about latency and predictability. Provisioned reserves capacity for steady real-time volume (and is one way to serve fine-tuned models). Batch suits periodic, asynchronous bulk work where you would rather pay per token than reserve capacity.
| Lever | What it cuts | Traffic it fits | Relationship to batch |
|---|---|---|---|
| Batch | Token rate (select models) | Bulk, non-interactive | This page |
| On-demand | Nothing (baseline) | Variable, interactive | The real-time alternative |
| Prompt caching | Repeated-input cost and latency | Interactive, repeated prefix | Either/or by traffic shape |
| Provisioned Throughput | Cost at high steady volume | Steady real-time volume; custom models | Choice by latency need |
| Model right-sizing | Per-token rate | Any | Multiplies with batch |
Batch and on-demand inference, embeddings and the S3 and pipeline services around them all draw down AWS credits automatically.
Partner-filed funding: a vetted AWS partner can file POC (proof of concept) funding to prove a new GenAI use case (often the first embeddings backfill or evaluation run), or incremental workload (IW) funding if you already run on AWS and this is new work. For startups this is typically $50K to $150K. Depends on the workload; AWS approves.
AWS Activate: you apply yourself. Activate Founders gives self-funded startups $1,000 to start, up to $5,000. Activate Portfolio gives up to $200,000 with the Org ID from your VC, accelerator or angel group, if it is an Activate Provider. A consulting partner cannot file Activate for you.
CloudRoute matches you with one vetted AWS partner who can build the batch pipeline (S3 layout, job submission, reconciliation, model right-sizing) and check which funding fits. Startups pay CloudRoute nothing. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
| Funding | Who files it | Amount | When it fits |
|---|---|---|---|
| Migration Acceleration Program (MAP) | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You are not on AWS yet and want to migrate. |
| Proof of concept (POC) funding | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You want to test something, whether or not you are on AWS today. |
| Incremental workload (IW) funding | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You are already on AWS and are launching new work: a new AI feature, a new customer or a new contract. |
| AWS Activate Founders | Founder applies | $1,000 to start, up to $5,000 | Self-funded startups with no investor or accelerator behind them. |
| AWS Activate Portfolio | Founder applies | up to $200,000 | Startups backed by a VC firm, accelerator or angel investor that is an AWS Activate Provider. |
| AWS Credits for AI Startups | Invite only (AWS account manager) | $200,000 or more, by invitation | AI startups ready to scale after Activate Portfolio, invited by AWS. |
Prompt caching modifies the on-demand path, so these are the three capacity modes. Figures are illustrations, not quotes.
| Dimension | On-demand | Batch inference | Provisioned Throughput |
|---|---|---|---|
| How you pay | Per token, no commitment | Per token, async job | Hourly per model unit |
| Relative cost | Baseline | 50% lower (select models) | Flat; wins at high steady volume |
| Latency | Real time | Asynchronous | Real time, guaranteed |
| Commitment | None | None | Optional term for a lower rate |
| Best for | Anything a person waits on | Bulk, non-interactive jobs | Steady high volume; custom models |
| Watch out for | Throttling at spikes | Turnaround; job quotas | Paid even when idle |
You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.
We read your answers and pick one vetted AWS consulting partner that fits the work, the stack and the region. We reply within 24 hours; your matched partner reaches out within 5 business days.
Your matched partner scopes the test with you. Then it checks whether the test qualifies for POC (proof of concept) funding. A POC can fit whether or not you run on AWS today.
If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.
CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
AWS Activate credits are separate, and you apply for them yourself. Use Activate Founders if no investor backs you. Use Activate Portfolio with the Org ID or invite from your VC, accelerator, incubator or angel group if it is an Activate Provider. A consulting partner cannot apply for Activate on your behalf.
A vetted AWS partner can build the batch pipeline, right-size the models and set up reconciliation. The same partner checks whether the work qualifies for POC or IW funding: typically $50K to $150K for startups. Depends on the workload; AWS approves. CloudRoute is free for startups.