Multi-Platform Portability & Model Upgrades

Batch Processing Across Platforms: Anthropic Message Batches vs Cloud-Native Alternatives

"Batch at half price" exists on every major platform — but it's three different mechanisms with three different input formats. Which one you get depends on where you run Claude, and it shapes how you design the workload.

Claude 3P 101 · Updated July 2026 · Unofficial guide

A common misreading of the Claude feature matrix is "Bedrock and Vertex have no batch processing." What's actually true is narrower: Anthropic's Message Batches API — the /v1/messages/batches endpoint — is available on the first-party Claude API and Claude Platform on AWS, and not on Amazon Bedrock, Google Vertex AI, or Microsoft Foundry. But AWS and Google Cloud each offer their own cloud-native batch inference for Claude, also at 50% off on-demand pricing. Same discount, different plumbing.

Anthropic Message Batches (1P and Claude Platform on AWS)

You POST up to 100,000 message requests (or 256 MB, whichever comes first) in a single batch, each with a unique custom_id and standard Messages API parameters. Everything is API-native: poll the batch until processing_status is ended, then stream results from a results_url as a .jsonl file. Most batches finish in under an hour; anything unfinished at 24 hours expires unbilled, and results stay downloadable for 29 days. All usage bills at 50% of standard prices (Opus 4.8: $2.50/$12.50 per MTok; Haiku 4.5: $0.50/$2.50), and the discount stacks with prompt caching. Nearly the whole feature surface works inside a batch — vision, tool use including server tools, extended thinking, multi-turn — with a short exclusion list (streaming, fast mode, and a few others return validation errors). On Claude Platform on AWS the same endpoint is governed by IAM actions (CreateBatchInference, GetBatchInference, and friends) and scoped to a workspace.

Bedrock: S3-based batch inference

Amazon Bedrock's own batch inference is a job system, not an API endpoint: you upload records in InvokeModel or Converse format to S3, start a job (IAM action bedrock:CreateModelInvocationJob), and Bedrock writes outputs back to S3. AWS advertises it at a 50% lower price than on-demand for select providers including Anthropic. Constraints worth designing around: it runs on the bedrock-runtime surface (with the legacy ARN-versioned model-ID style, not the dateless anthropic.claude-opus-4-8 form used by the current bedrock-mantle Messages API), it isn't supported for provisioned models, and — the big one — it does not support tool calling or structured output (response_format). If your batch workload is "classify a million documents with a strict JSON schema," that constraint alone can send you to a different platform or a prompt-based JSON approach with client-side validation.

Vertex AI: GCS/BigQuery batch prediction

Google's batch prediction for Claude takes input either as a BigQuery table or as JSONL in Cloud Storage, and is billed at 50% of on-demand ("Batch Input"/"Batch Output" rates on the Vertex pricing page — Opus 4.8 batch is $2.50/$12.50). Two platform constraints: the default quota is 4 concurrent batch requests per project, and the global endpoint is not supported for batch — batch jobs are regional, which matters if you standardized on the global endpoint for availability. The BigQuery path is genuinely convenient for analytics teams: input and output live where the SQL already is.

Anthropic Message BatchesBedrock batch inferenceVertex batch prediction
PlatformsClaude API, Claude Platform on AWSAmazon BedrockVertex AI
Input / outputAPI requests / JSONL via results_urlS3 / S3BigQuery or GCS JSONL / same
Discount50%50% (select models)50%
Tool useYes, incl. server toolsNo (also no response_format)See Google's Claude batch docs for current limits

What this means for workload design

Results handling is the real portability seam. The request payloads are broadly similar Messages-shaped JSON, but where results land — a streamed JSONL URL, an S3 prefix, a BigQuery table — dictates your downstream pipeline. If you might move platforms, isolate "submit batch / collect results" behind one interface and keep the per-record processing platform-agnostic.

Feature ceilings differ. Batches that need tool use or strict structured output fit Anthropic's Message Batches; Bedrock's mechanism rules those out. Check the current constraints for Vertex in Google's docs before assuming parity.

Caching still applies on the Anthropic endpoint. Because batches can take longer than five minutes, use the 1-hour cache duration for shared context in batched requests — the discounts stack.

Foundry has no batch mechanism at all — Anthropic's docs list the Message Batches API as unsupported there, and Microsoft documents no equivalent. High-volume async workloads on Azure-centric estates typically route batch traffic to another surface.

Where to go next

See the Message Batches deep dive, the Bedrock workaround guide, and the Vertex equivalent. For the cost math, the batch discount explainer covers stacking with caching.

Sources