Google Vertex AI in Practice

Vertex AI Model ID Format and Stable Version Pinning

On Vertex AI the model name lives in the URL, not the request body — and knowing which IDs are pinned snapshots versus dated variants keeps upgrades deliberate instead of accidental.

Claude 3P 101 · Updated July 2026 · Unofficial guide

Claude model IDs on Google Vertex AI trip people up for two reasons. First, the ID is not passed where Anthropic's own API puts it. Second, Google Cloud uses a mix of undated IDs and @date variants, and it is not obvious which ones are safe to pin in production. This article untangles both.

The model goes in the URL, not the body

The Vertex AI surface is nearly identical to the Anthropic Messages API, with two documented differences: the model field is not passed in the request body — it goes in the endpoint URL — and anthropic_version is passed in the body (not as a header) and must be "vertex-2023-10-16". The full non-streaming endpoint looks like this:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID
     /locations/LOCATION/publishers/anthropic/models/MODEL:rawPredict

The publishers/anthropic/models/ path segment is how Vertex namespaces partner models. Streaming uses the same URL with :streamRawPredict. If you use the AnthropicVertex Python client, all of this is assembled for you — you pass model="claude-opus-4-8" to messages.create() and the SDK builds the URL.

Bare IDs — no anthropic. prefix

Unlike Amazon Bedrock, which prefixes IDs with anthropic., Vertex AI uses bare Anthropic-style names: claude-fable-5, claude-opus-4-8, claude-sonnet-5, claude-haiku-4-5, and so on down the catalogue. If you are porting code from Bedrock, dropping the prefix is step one; the article on why model IDs differ across platforms covers the full mapping.

Undated IDs, @date IDs, and what "pinned" means

Google Cloud's Claude catalogue shows two ID shapes. Current-generation models — Fable 5, Opus 4.8/4.7/4.6, Sonnet 5, Sonnet 4.6 — use undated IDs like claude-opus-4-8. Some older models carry a version-date suffix: claude-haiku-4-5@20251001, claude-sonnet-4-5@20250929, claude-opus-4-5@20251101.

The crucial point: an undated ID is not an evergreen "latest" pointer. Per Anthropic's model documentation, every Claude model ID is a pinned snapshot; starting with the 4.6 generation the IDs use a dateless format that is still a pinned snapshot. claude-opus-4-8 will always be Opus 4.8 — it will never silently become Opus 4.9. Pre-4.6 dateless aliases, by contrast, are convenience pointers that resolve to dated IDs, which is why the older Vertex entries expose explicit @date forms. If you see @latest-style aliases elsewhere in Vertex's Model Garden, treat them as a different publisher's convention — for Claude, pin the exact ID shown in the documentation.

Rule of thumb: put the model ID in configuration, not code, and treat a model change like a dependency upgrade — tested and deliberate. See Version Pinning: Why "Latest" Is Not a Deployment Strategy.

Tracking deprecations and retirements

Model lifecycle on Vertex AI is set by Google, not Anthropic, and the dates are published on Google's Claude partner-model page as "retirement not sooner than" commitments. As of July 2026, for example: Claude Fable 5 not sooner than June 8, 2027; Opus 4.8 not sooner than May 28, 2027; Sonnet 5 not sooner than December 24, 2026. One quirk worth knowing during migrations: a few retired models live on longer on Google Cloud than elsewhere — Claude Opus 4 is retired except on Google Cloud, and Sonnet 4 remains only on Bedrock and Google Cloud. That is a grace period, not a plan; budget the migration anyway.

Practical habits that keep you ahead of retirement dates:

HabitWhy
Review Google's Claude lifecycle table quarterlyRetirement dates are Google-set and can differ from Anthropic's own schedule
Keep one config key per environment for the model IDUpgrades become a config change with a rollback path
Re-baseline cost when changing generationsOpus 4.7+ and Sonnet 5 use a newer tokenizer producing roughly 30% more tokens for the same text
Remember quota lineagesModels launched after May 26, 2026 share per-lineage quota buckets, so a same-lineage upgrade needs no new quota request

Where to go next

For the enablement flow see Model Garden setup, and for lifecycle planning in depth read the Vertex model version lifecycle guide.

Sources