Claude on Google Cloud, Anthropic Managed: Setup and SDK Guide

TL;DR
Claude Models on Google Cloud (Anthropic managed) is the full Claude API behind Google Cloud IAM and billing. Setup, the 2 services, IAM roles and SDK code.
Last updated: October 22, 2026
Claude Models on Google Cloud (Anthropic managed) went generally available on October 22, 2026. It is the Claude API itself, run by Anthropic, reached through your Google Cloud project: Google Cloud IAM decides who can call it, Google Cloud Marketplace bills it, and your code swaps one client class. Setup is four steps: subscribe in Marketplace, enable two services, activate an Anthropic organization, then copy a workspace ID. After that, AnthropicGoogleCloud() with Application Default Credentials is all your code needs.
This is a second Google Cloud path, not a replacement. Claude on Vertex AI, now called Claude Models on Google Cloud (Google managed), stays. The difference is who runs the stack, and that decides which features you get and when. It is the same move Anthropic made on AWS, which we covered in Claude Platform on AWS is enterprise agent plumbing.
What shipped#
From the Claude Platform release notes for October 22, 2026, and the Anthropic managed docs:
- The Claude API, not a translation of it. Requests use the same body, the same
anthropic-versionandanthropic-betaheaders, the same streaming and the same responses asapi.anthropic.com. Model IDs match the Claude API, for exampleclaude-opus-5-5. - Google Cloud owns access and billing. Three IAM roles, Cloud Audit Logs under
claude.googleapis.com, and charges on your Google Cloud bill in Claude Consumption Units. If you have a Google Cloud spend commitment, usage counts toward it the way other Marketplace purchases do. - Day-zero platform features. Anthropic's announcement says new features and betas ship the same day they go live on the native Claude Platform. Fast mode for Claude Opus 5.5 is available on launch day.
- Claude Managed Agents included. Agents, environments, sessions, credential vaults, memory stores, scheduled deployments and self-hosted sandboxes all work. See what Managed Agents actually gives you before you plan around it.
Anthropic managed vs Google managed#
From the comparison page:
| Anthropic managed | Google managed (Vertex AI) | |
|---|---|---|
| API surface | Claude API endpoints, /v1/{endpoint} | Agent Platform prediction endpoints |
| Request format | model in the body, anthropic-version header | model in the URL, anthropic_version in the body |
| Streaming | "stream": true in the body | A separate :streamRawPredict endpoint |
| Location | global | Global, multi-region or regional endpoints |
| Data processor | Anthropic | Google Cloud |
| Rate limits | Managed by Anthropic | Managed by Google Cloud |
| Anthropic organization | A new one per project | None |
| SDK client | AnthropicGoogleCloud | AnthropicVertex |
Anthropic's own guidance is that the Google managed offering remains the better fit if you need Google Cloud as the data processor, have strict regional data residency requirements, or want native integrations such as Model Armor or Agent Engine. If what you want is the Claude API exactly as Anthropic documents it, with Google Cloud identity and billing around it, pick Anthropic managed.
%% title: How a request reaches Claude on Google Cloud (Anthropic managed)
flowchart LR
A["Your code: AnthropicGoogleCloud"] -->|"Bearer token from ADC"| B["claude.googleapis.com gateway"]
B --> C{"Caller holds the IAM permission?"}
C -->|"No"| D["HTTP 403 from Google Cloud"]
C -->|"Yes"| E["Forwarded to Anthropic"]
E --> F["Claude API: messages, batches, files, Managed Agents"]
F --> G["Usage metered to your Marketplace subscription"]Set it up#
You need permission to purchase in Google Cloud Marketplace on the billing account, permission to enable services on the project, and an IAM role that lets you open the Claude Console. Setup creates a new Anthropic organization for the project. It is separate from any Anthropic organization your company already has, Claude Enterprise included. If you have an existing discount, the docs say to contact your account representative first, because discounts can't be applied to past usage.
- Subscribe. In Google Cloud Marketplace, find the Claude Models on Google Cloud (Anthropic managed) listing, choose Subscribe, finish the purchase flow, then choose Manage on Console.
- Enable two services on every project that calls Claude:
gcloud services enable claude.googleapis.com \
anthropic-managed-claude.cloudpartnerservices.goog \
--project=my-project-id
claude.googleapis.com serves the API and defines the IAM permissions. anthropic-managed-claude.cloudpartnerservices.goog attributes usage to your subscription. Check both with gcloud services list --enabled --project=my-project-id.
- Activate the Anthropic organization. On the Claude page (Agent Platform > Models > Claude Platform, then Anthropic managed), choose Activate, enter a contact email, open the setup link, fill in the organization details and accept the terms.
- Open the Claude Console from the same page and copy your workspace ID from Settings > Workspaces. It starts with
wrkspc_. Everyone who calls the API needs it.
Grant access#
There are three predefined roles, granted on the project:
| Role | What it allows |
|---|---|
roles/claude.viewer | Every get and list permission on workspace resources. Read-only |
roles/claude.user | Viewer, plus creating and changing workspace resources: sending messages, counting tokens, batches, files, skills and Managed Agents resources |
roles/claude.admin | User, plus organization-level permissions. The only role that can open the Claude Console |
gcloud projects add-iam-policy-binding my-project-id \
--member="serviceAccount:my-app@my-project-id.iam.gserviceaccount.com" \
--role="roles/claude.user"
Roles apply to every workspace in the project, so the docs recommend a separate Google Cloud project per team when teams need separate access. Each project gets its own Anthropic organization. Also, enabling claude.googleapis.com creates a service agent for the project, and removing its role grants stops the service working in that project.
Call it from code#
Set the project and workspace once so the SDKs and the ant CLI pick them up:
export ANTHROPIC_GOOGLE_CLOUD_PROJECT="my-project-id"
export ANTHROPIC_GOOGLE_CLOUD_WORKSPACE_ID="wrkspc_01AbCdEf23GhIj"
gcloud auth application-default login
Python, with pip install -U "anthropic[google_cloud]":
from anthropic import AnthropicGoogleCloud
# Reads ANTHROPIC_GOOGLE_CLOUD_PROJECT and ANTHROPIC_GOOGLE_CLOUD_WORKSPACE_ID,
# and gets a token from Application Default Credentials.
client = AnthropicGoogleCloud()
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(message.content)
TypeScript, with npm install @anthropic-ai/google-cloud-sdk:
import { AnthropicGoogleCloud } from "@anthropic-ai/google-cloud-sdk";
// Reads ANTHROPIC_GOOGLE_CLOUD_PROJECT and ANTHROPIC_GOOGLE_CLOUD_WORKSPACE_ID,
// and gets a token from Application Default Credentials.
const client = new AnthropicGoogleCloud();
// Or pass the values explicitly. A value passed here wins over the env var.
const explicit = new AnthropicGoogleCloud({
project: "my-project-id",
workspaceId: "wrkspc_01AbCdEf23GhIj",
});
const message = await client.messages.create({
model: "claude-opus-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello, Claude" }],
});
console.log(message.content);
const stream = explicit.messages.stream({
model: "claude-opus-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Summarize our IAM setup in one line." }],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}
We type-checked both against the current packages: the TypeScript file with tsc --strict against @anthropic-ai/google-cloud-sdk 1.0.0 (on @anthropic-ai/sdk 1.1.0), and the Python file with pyright against anthropic 2.1.0. The TypeScript options are project, location, workspaceId, bearerTokenProvider, googleAuth, authClient and skipAuth. Passing a Vertex-style region or an apiKey is a compile error, which is a useful guard during migration. In Python the arguments are project, location, workspace_id, token_provider, credentials and skip_auth.
With a project and workspace set, the Python client builds this base URL, which we confirmed at runtime:
https://claude.googleapis.com/v1/projects/my-project-id/locations/global/workspaces/wrkspc_01AbCdEf23GhIj/invoke/
@anthropic-ai/google-cloud-sdk 1.0.0, published October 21, is a breaking release that targets Claude API version 2026-10-21. If you are moving an older Vertex integration, do that migration at the same time.
Migrating from AnthropicVertex#
The migration steps come down to:
- Complete the four setup steps above and grant
roles/claude.userto each calling identity. Vertex AI IAM roles do not carry over, because each offering has its own roles. - Replace
AnthropicVertex(project_id=..., region=...)withAnthropicGoogleCloud()and set the two environment variables. - Fix old model IDs. For models earlier than Claude 4.6, replace the
@before the snapshot date with a hyphen:claude-haiku-4-5@20251001becomesclaude-haiku-4-5-20251001. Claude 4.6 and later use the same IDs on both offerings. - Drop regional endpoints. Leave the location at
global. For US-only inference, setinference_geo: "us"on each request instead. - Check each feature you use against the support list, then run a test request.
Gotchas and limits#
No API keys at all. You can't create API keys for the new organization, and the client ignores ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN and ANTHROPIC_BASE_URL. Don't send x-api-key or anthropic-workspace-id headers. For the ant CLI, also leave ANTHROPIC_WORKSPACE_ID and --workspace-id unset, because the CLI would still send that header.
A missing workspace ID fails before any request. Without ANTHROPIC_GOOGLE_CLOUD_WORKSPACE_ID or an explicit workspace argument, the Python client raises No workspace ID found (we reproduced this). Organization-level routes under /v1/organizations/ are the exception and use a base URL without the workspace.
Nothing migrates from an existing org. API keys, workspaces, Console settings, files, skills, batches and Managed Agents resources stay in your existing Anthropic organization, and a ZDR arrangement on another organization doesn't carry over. The two organizations can serve traffic in parallel, so you can cut over gradually.
Revoking IAM does not stop running agents. Access is checked when a Managed Agents session or deployment is created, not while it runs. To stop a session, send it a user.interrupt event. To stop a scheduled deployment, pause, update or archive it. Review both when you remove a user or rotate a service account.
Not supported: MCP tunnels, memory stores on self-hosted environments, and the pre-built self-hosted sandbox workers in the ant CLI and SDKs. You would write your own worker against the Environments Work endpoints.
Audit logs need turning on. Most routes, including messages, write Data Access logs, which are off by default. Turn them on for claude.googleapis.com if you need a record of requests.
Troubleshooting a first-call 403: check that claude.googleapis.com is enabled on the project you are calling and that the caller has roles/claude.user or roles/claude.admin. New grants can take a moment to apply.
What people are actually saying#
- The launch is hours old. Anthropic's ClaudeDevs account and Google's Cloud blog announced it, and we found no Hacker News or Reddit thread with practitioner experience yet.
- The open question is the one AWS customers asked about Claude Platform on AWS: whether day-zero feature parity is worth a second Anthropic organization and Anthropic as data processor. Google's own comparison table frames it the same way, so make that call before you write any code.
FAQ#
What is Claude Models on Google Cloud (Anthropic managed)?#
The Claude API operated by Anthropic and reached through your Google Cloud project. IAM controls access, Marketplace handles billing, and requests use the Claude API format sent to claude.googleapis.com with a Google access token.
How is it different from Claude on Vertex AI?#
Vertex AI (Google managed) runs Claude inside Agent Platform with Google as the data processor, Google-managed rate limits and regional endpoints. Anthropic managed serves the Claude API itself, with Anthropic as the data processor, Anthropic-managed rate limits and the global location.
Which SDK client do I use?#
AnthropicGoogleCloud, from anthropic[google_cloud] in Python or @anthropic-ai/google-cloud-sdk in TypeScript. It replaces AnthropicVertex and gets its token from Application Default Credentials.
Can I use an API key with it?#
No. Authentication is Google Cloud credentials only, and the client ignores ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN and ANTHROPIC_BASE_URL.
Does Claude Managed Agents work on it?#
Yes, including sessions, vaults, memory stores and scheduled deployments. MCP tunnels and the pre-built self-hosted sandbox workers are not supported.
Continue Reading#
- Claude Platform on AWS Is Enterprise Agent Plumbing - the same Anthropic-run model on the other big cloud
- Claude API 2026-10-21: Breaking Changes and SDK Migration - the API version the new Google Cloud SDK targets
- OpenAI Models on Google Cloud: What Changes for Developers - how the other frontier lab ships on Google Cloud
Sources#
- Claude Platform release notes (October 22, 2026)
- Claude Models on Google Cloud (Anthropic managed)
- Claude Models on Google Cloud: comparing the two offerings
- Anthropic: Claude Platform is now available on Google Cloud
- Google Cloud blog: Expanding Claude availability and deployment choice on Google Cloud
- @anthropic-ai/google-cloud-sdk on npm
Get the next deep dive like this in your inbox
One email a week on Anthropic and the rest of the AI dev stack. Free.
Read next on Claude Code
Claude Platform on AWS Is Enterprise Agent Plumbing, Not Just Procurement
Claude Platform on AWS moves enterprise agent adoption into identity, billing, commitments and platform controls - where enterprise AI work gets real.
8 min readClaude API 2026-10-21: Breaking Changes and SDK Migration
Claude API version 2026-10-21 removes temperature, top_p and top_k, and new major SDKs (TypeScript 1.0, Python 2.0) send it by default. What breaks and how to migrate.
9 min readOpenAI Models on Google Cloud: What Changes for Developers
OpenAI and Google Cloud put GPT-6 Astra, GPT-6.1 Sol and GPT-6 Luna into Model Garden in private preview, with Codex pointed at Gemini inference. What is live, what is "coming soon", and what to do before general availability.
6 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.







