As of 2026-10-26, the Claude platform release notes date Claude Models on Google Cloud (Anthropic managed) to 2026-10-22: Anthropic runs the endpoint, Google Cloud IAM handles access, Marketplace billing. Docs say the request body matches Claude API, with structured outputs on the support list. JSON Schema still sits in output_config.format. You change Base URL, Bearer token, and workspace in the path—not move schema to another key. Direct API layering: which layer of output_config holds the schema. Bedrock text blocks: Bedrock structured output.
Lift an extraction call from Bedrock or api.anthropic.com to GCP and three mistakes show up often: still sending x-api-key; workspace only in a header; assuming anthropic-version: 2026-10-21 is already the default in official GCP samples. The schema layer usually stays put.
What 22 October actually opened
As of 2026-10-26, from the release notes and Anthropic managed docs:
- Endpoint:
https://claude.googleapis.com/v1/projects/{project}/locations/global/workspaces/{workspace}/invoke; Messages at.../invoke/v1/messages. - Billing: Google Cloud Marketplace; enable Claude API on the project and finish Anthropic org binding.
- GA features listed: Structured outputs, tool use (including MCP connector), message batches, prompt caching, Fast mode (Opus 5.5), and more.
- Same day: release notes also mention Opus 5.5 Fast mode on Google Cloud—different latency and billing, not a conflict with structured output.
One line. You change how you connect (URL + Google OAuth), not where the contract lives (output_config.format.schema).
Base URL, workspace, Bearer
Three differences from the direct Claude API:
- Base URL is the
claude.googleapis.comproject/workspace path, nothttps://api.anthropic.com. - Auth is
Authorization: Bearer <google-access-token>; do not sendx-api-key. - Workspace ID is in the URL; do not send
anthropic-workspace-id.
Everything else matches Claude API: anthropic-version, anthropic-beta, body, streaming, response shape. Org-level routing uses claudeOrganization/invoke without a workspace in the path—skip until you need it.
anthropic-version vs direct API
On 2026-10-21 the direct API default moved to anthropic-version: 2026-10-21 (see the 21 October version note), which rejects temperature and friends. Google Cloud Anthropic managed cURL still examples anthropic-version: 2023-06-01; partner docs updated 2026-10-22 UTC match.
Docs say headers match Claude API but do not mandate 2026-10-21 on GCP. Practical order: ship one output_config call with 2023-06-01; if you unify version headers company-wide, retry 2026-10-21 in a test project and watch for sampling 400s. Do not copy Bedrock’s “4.7+ only” rule onto this path—it is a different wire.
Schema nesting unchanged
Structured output still uses output_config.format, type json_schema, contract in schema. Anthropic managed lists Structured outputs with the same meaning as the structured outputs page.
curl "https://claude.googleapis.com/v1/projects/$PROJECT/locations/global/workspaces/$WORKSPACE/invoke/v1/messages" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Extract ticket category and priority from the text."}],
"output_config": {
"format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"category": { "type": "string", "enum": ["billing", "technical", "other"] },
"priority": { "type": "string", "enum": ["low", "medium", "high", "urgent"] }
},
"required": ["category", "priority"],
"additionalProperties": false
}
}
}
}'
Parse JSON from a text content block—not a Bedrock-style schema string. Subset limits (additionalProperties: false, no minimum, etc.) match the direct API. You can still set strict: true on tools in the same request; MCP connector is supported, but tool definitions and output schema remain two JSON contracts.
Anthropic managed vs Google managed
- Anthropic managed (this note): Claude API
/v1/messages;modelin the JSON body;anthropic-versionin headers; structured output viaoutput_config. - Google managed (Agent Platform): model in the prediction URL;
anthropic_versionin the body; streaming via:streamRawPredict; snapshot IDs may use@instead of date hyphens (e.g.claude-haiku-4-5@20251001).
Haiku 5.5 is claude-haiku-5-5 on Claude API docs; Google managed samples may show @ 4.x IDs. Fix the model string before you move where the schema attaches.
Check it in JSON Toolbox
{
"ok_body": {
"model": "claude-opus-5-5",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Classify this ticket." }],
"output_config": {
"format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"category": { "type": "string" },
"priority": { "type": "string" }
},
"required": ["category", "priority"],
"additionalProperties": false
}
}
}
},
"wrong_vertex_shape": {
"anthropic_version": "vertex-2023-10-16",
"messages": [{ "role": "user", "content": "Hi" }]
},
"ok_ticket": { "category": "billing", "priority": "urgent" },
"bad_ticket": { "category": "billing", "priority": "2" }
}
- Paste all four blobs into JSON format.
wrong_vertex_shapeis Google managed style, not Anthropic managed Messages. - Use JSON → Schema from
ok_ticketand compare took_body.output_config.format.schema. - Schema validator: accept
ok_ticket, rejectbad_ticket(prioritynot in enum). - Tool inputs: Function Calling. Output contract: Structured output.
FAQ
Do I still send x-api-key on Google Cloud Anthropic managed?
No. Use a Google Bearer token.
Must this path send anthropic-version 2026-10-21 like the direct API?
Official samples still use 2023-06-01. Measure on GCP before upgrading.
Does output_config.format.schema still need additionalProperties: false?
Yes. Same subset as direct API.
Is this the same as the Google-managed Agent Platform endpoint?
No. Different URL and body.
How does this split from the Bedrock structured-output note?
That note is AWS Bedrock; this one is 2026-10-22 GCP Anthropic managed wiring.
Summary
As of 2026-10-26, Claude on Google Cloud (Anthropic managed) is dated 2026-10-22. JSON Schema still belongs in output_config.format.schema. Switch to claude.googleapis.com, workspace in the URL, Google Bearer, and drop x-api-key. Official anthropic-version samples may stay on 2023-06-01 while the direct API defaults to 2026-10-21—verify separately. Do not mix in Google managed anthropic_version bodies. Next: pass the same schema on a test GCP project, then align version-header policy.