Teams migrating from the first-party Claude API often lean on the Message Batches API — Anthropic's endpoint for submitting thousands of requests asynchronously at a 50% discount. That specific endpoint is not available on Vertex AI, and code that calls it will not port. But the headline "no batch on Vertex" is wrong, and getting the nuance right changes your architecture: Google Cloud provides its own batch prediction mechanism for Claude models, also billed at 50% of on-demand rates. Your first question isn't "how do I rebuild batching?" — it's "does Google's native batching fit my job?"
Option 1: Google's native batch prediction
Vertex AI's batch prediction feature for Claude accepts input either as a BigQuery table or as JSONL files in Cloud Storage — one Messages-API-shaped request per row or line. You submit the batch, Vertex works through it asynchronously, and results land back in your chosen destination. Two operational constraints from Google's documentation: projects default to 4 concurrent batch requests, and the global endpoint is not supported for batch — batch jobs are a regional affair.
Pricing is the draw. Google's pricing page lists "Batch Input" and "Batch Output" rates at 50% of on-demand — for example, Claude Opus 4.8 drops from $5/$25 per million tokens to $2.50/$12.50. If your workload is genuinely batch-shaped (a nightly document run, a backfill, a periodic classification sweep) and can tolerate asynchronous completion, this is the answer, and everything below is unnecessary.
When native batch doesn't fit
Native batch is a bulk-in, bulk-out mechanism. It fits less well when you need per-item completion callbacks, results within a tight deadline, dynamic priorities, or multi-turn flows where request N+1 depends on response N. For those, the standard substitute is an async pipeline built from GCP primitives, calling the regular synchronous endpoint at on-demand rates. Three patterns, in increasing order of sophistication:
Option 2: Cloud Run Jobs for finite work
For a bounded workload — "process these 50,000 records" — a Cloud Run Job is the simplest container-shaped answer: a worker image using the AnthropicVertex client, parallelized across tasks, each task pulling its slice of the input. State (which items are done, which failed) lives in your database or Cloud Storage. This gives you retry-per-item and progress visibility that a fire-and-forget script never will.
Option 3: Pub/Sub fan-out for continuous streams
When work arrives continuously rather than in discrete batches, publish each request to a Pub/Sub topic and let subscribers — Cloud Run services or Cloud Functions — pull messages and call Claude. Pub/Sub buys you durable queuing, automatic retries with dead-lettering for poison messages, and horizontal scaling. The critical discipline: cap subscriber concurrency so aggregate throughput stays inside your Vertex quota, or the whole pipeline turns into a 429-retry storm.
Option 4: client-side rate-limited queues
Whatever the transport, the workers themselves should pace requests deliberately. Vertex quotas for recent Claude models are shared per model lineage per location — for instance, request and token-per-minute buckets keyed to anthropic-claude-opus on the global endpoint — so an uncontrolled backfill can starve your production traffic on every Opus version at once. A client-side token-bucket rate limiter, tuned below your quota, keeps async work from cannibalizing real-time users. One useful escape valve: global-endpoint quota and multi-region-endpoint quotas are independent buckets, so some teams route batch-style traffic and interactive traffic through different endpoint types. See handling 429 RESOURCE_EXHAUSTED and quota types for the mechanics.
Cost comparison at a glance
| Approach | Token pricing | Best for |
|---|---|---|
| Google-native batch prediction | 50% of on-demand | Bulk jobs that tolerate async completion |
| Cloud Run Jobs / Pub/Sub pipeline | On-demand (plus modest infra cost) | Per-item control, callbacks, deadlines |
| Anthropic Message Batches API | Not available on Vertex AI | — (first-party API and Claude Platform on AWS only) |
Where to go next
See batch vs real-time processing for the workload-shape decision, and the feature gaps overview for everything else Vertex doesn't carry. The Bedrock equivalent of this article is replacing the Batch API on Bedrock.