← Back to daily report

build-with-claude/claude-on-vertex-ai.md

Changed on 2026-02-11 10:56:44 EST

+88 lines added
-73 lines removed
Visual Diff
# Claude on Vertex AI¶

Anthropic's Claude models are now generally available through [Vertex AI](https://cloud.google.com/vertex-ai).¶

---¶

The Vertex API for accessing Claude is nearly-identical to the [Messages API](/docs/en/api/messages) and supports all of the same options, with two key differences:¶

* In Vertex, `model` is not passed in the request body. Instead, it is specified in the Google Cloud endpoint URL.¶
* In Vertex, `anthropic_version` is passed in the request body (rather than as a header), and must be set to the value `vertex-2023-10-16`.¶

Vertex is also supported by Anthropic's official [client SDKs](/docs/en/api/client-sdks). This guide will walk you through the process of making a request to Claude on Vertex AI in either Python or TypeScript.¶

Note that this guide assumes you have already have a GCP project that is able to use Vertex AI. See [using the Claude 3 models from Anthropic](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude) for more information on the setup required, as well as a full walkthrough.¶

## Install an SDK for accessing Vertex AI¶

First, install Anthropic's [client SDK](/docs/en/api/client-sdks) for your language of choice.¶

<Tabs>¶
<Tab title="Python">¶
```bash¶
pip install -U google-cloud-aiplatform "anthropic[vertex]"¶
```¶
</Tab>¶

<Tab title="TypeScript">¶
```bash¶
npm install @anthropic-ai/vertex-sdk¶
```¶
</Tab>¶

<Tab title="Java">¶
<CodeGroup>¶
```groovy Gradle¶
implementation("com.anthropic:anthropic-java-vertex:2.+")¶
```¶

```xml Maven¶
<dependency>¶
<groupId>com.anthropic</groupId>¶
<artifactId>anthropic-java-vertex</artifactId>¶
<version>2.13.0</version>¶
</dependency>¶
```¶
</CodeGroup>¶
</Tab>¶

<Tab title="Go">¶
```bash¶
go get github.com/anthropics/anthropic-sdk-go¶
```¶
</Tab>¶
</Tabs>¶

## Accessing Vertex AI¶

### Model Availability¶

Note that Anthropic model availability varies by region. Search for "Claude" in the [Vertex AI Model Garden](https://cloud.google.com/model-garden) or go to [Use Claude 3](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude) for the latest information.¶

#### API model IDs¶

| Model | Vertex AI API model ID |¶
| ------------------------------ | ------------------------ |¶
| Claude Opus 4.6 | claude-opus-4-6 |¶
| Claude Sonnet 4.5 | claude-sonnet-4-5@20250929 |¶
| Claude Sonnet 4 | claude-sonnet-4@20250514 |¶
| Claude Sonnet 3.7 <Tooltip tooltipContent="Deprecated as of October 28, 2025.">⚠️</Tooltip> | claude-3-7-sonnet@20250219 |¶
| Claude Opus 4.5 | claude-opus-4-5@20251101 |¶
| Claude Opus 4.1 | claude-opus-4-1@20250805 |¶
| Claude Opus 4 | claude-opus-4@20250514 |¶
| Claude Haiku 4.5 | claude-haiku-4-5@20251001 |¶
| Claude Haiku 3.5 <Tooltip tooltipContent="Deprecated as of December 19, 2025.">⚠️</Tooltip> | claude-3-5-haiku@20241022 |¶
| Claude Haiku 3 | claude-3-haiku@20240307 |¶

### Making requests¶

Before running requests you may need to run `gcloud auth application-default login` to authenticate with GCP.¶

The following examples shows how to generate text from Claude on Vertex AI:¶
<CodeGroup>¶

```python Python¶
from anthropic import AnthropicVertex¶

project_id = "MY_PROJECT_ID"¶
region = "global"¶

client = AnthropicVertex(project_id=project_id, region=region)¶

message = client.messages.create(¶
model="claude-opus-4-6",¶
max_tokens=100,¶
messages=[¶
{¶
"role": "user",¶
"content": "Hey Claude!",¶
}¶
],¶
)¶
print(message)¶
```¶

```typescript TypeScript¶
import { AnthropicVertex } from
'"@anthropic-ai/vertex-sdk'";¶

const projectId =
'"MY_PROJECT_ID'";¶
const region =
'"global'";¶

// Goes through the standard `google-auth-library` flow.¶
const client = new AnthropicVertex({¶
projectId,¶
region
,
});¶

async function main() {¶
const result = await client.messages.create({¶
model:
'"claude-opus-4-6'",¶
max_tokens: 100,¶
messages: [¶
{¶
role:
'"user'",¶
content:
'"Hey Claude!',"
}
,
]
,
});¶
console.log(JSON.stringify(result, null, 2));¶
}¶

main();¶
```¶

```java Java¶
import com.anthropic.client.AnthropicClient;¶
import com.anthropic.client.okhttp.AnthropicOkHttpClient;¶
import com.anthropic.vertex.backends.VertexBackend;¶
import com.anthropic.models.messages.Message;¶
import com.anthropic.models.messages.MessageCreateParams;

import com.anthropic.vertex.backends.VertexBackend;


public class VertexExample {¶

public static void main(String[] args) {¶
// Uses default Google Cloud credentials¶
AnthropicClient client = AnthropicOkHttpClient.builder()¶
.backend(VertexBackend.fromEnv())¶
.build();¶

Message message = client
.messages().create(
.create(¶
MessageCreateParams.builder()¶
.model("claude-opus-4-6")¶
.maxTokens(100)¶
.addUserMessage("Hey Claude!")¶
.build());¶

);¶

System.out.println(message);¶
}¶
}¶
```¶

```go Go¶
package main¶

import (¶
"context"¶
"fmt"¶

"github.com/anthropics/anthropic-sdk-go"¶
"github.com/anthropics/anthropic-sdk-go/vertex"¶
)¶

func main() {¶
// Uses default Google Cloud credentials¶
client := anthropic.NewClient(¶
vertex.WithGoogleAuth(context.Background(), "global", "MY_PROJECT_ID"),¶
)¶

message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{¶
Model: "claude-opus-4-6",¶
MaxTokens: 100,¶
Messages: []anthropic.MessageParam{¶
anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),¶
},¶
})¶
if err != nil {¶
panic(err)¶
}¶
fmt.Printf("%+v\n", message)¶
}¶
```¶

```bash Shell¶
MODEL_ID=claude-opus-4-6¶
LOCATION=global¶
PROJECT_ID=MY_PROJECT_ID¶

curl \¶
-X POST \¶
-H "Authorization: Bearer $(gcloud auth print-access-token)" \¶
-H "Content-Type: application/json" \¶
https://$LOCATION-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/anthropic/models/${MODEL_ID}:streamRawPredict -d \¶
'{¶
"anthropic_version": "vertex-2023-10-16",¶
"messages": [{¶
"role": "user",¶
"content": "Hey Claude!"¶
}],¶
"max_tokens": 100,¶
}'¶
```¶
</CodeGroup>¶

See our [client SDKs](/docs/en/api/client-sdks) and the official [Vertex AI docs](https://cloud.google.com/vertex-ai/docs) for more details.¶

Claude is also available through [Amazon Bedrock](/docs/en/build-with-claude/claude-on-amazon-bedrock) and [Microsoft Foundry](/docs/en/build-with-claude/claude-in-microsoft-foundry).¶

## Activity logging¶

Vertex provides a [request-response logging service](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/request-response-logging) that allows customers to log the prompts and completions associated with your usage.


Anthropic recommends that you log your activity on at least a 30-day rolling basis in order to understand your activity and investigate any potential misuse.


<Note>¶
Turning on this service does not give Google or Anthropic any access to your content.¶
</Note>¶

## Feature support¶
You can find all the features currently supported on Vertex [here](/docs/en/api/overview).¶

## Global vs regional endpoints¶

Starting with **Claude Sonnet 4.5 and all future models**, Google Vertex AI offers two endpoint types:¶

- **Global endpoints**: Dynamic routing for maximum availability¶
- **Regional endpoints**: Guaranteed data routing through specific geographic regions¶

Regional endpoints include a 10% pricing premium over global endpoints.¶

<Note>¶
This applies to Claude Sonnet 4.5 and future models only. Older models (Claude Sonnet 4, Opus 4, and earlier) maintain their existing pricing structures.¶
</Note>¶

### When to use each option¶

**Global endpoints (recommended):**¶
- Provide maximum availability and uptime¶
- Dynamically route requests to regions with available capacity¶
- No pricing premium¶
- Best for applications where data residency is flexible¶
- Only supports pay-as-you-go traffic (provisioned throughput requires regional endpoints)¶

**Regional endpoints:**¶
- Route traffic through specific geographic regions¶
- Required for data residency and compliance requirements¶
- Support both pay-as-you-go and provisioned throughput¶
- 10% pricing premium reflects infrastructure costs for dedicated regional capacity¶

### Implementation¶

**Using global endpoints (recommended):**¶

Set the `region` parameter to `"global"` when initializing the client:¶

<CodeGroup>¶
```python Python¶
from anthropic import AnthropicVertex¶

project_id = "MY_PROJECT_ID"¶
region = "global"¶

client = AnthropicVertex(project_id=project_id, region=region)¶

message = client.messages.create(¶
model="claude-opus-4-6",¶
max_tokens=100,¶
messages=[¶
{¶
"role": "user",¶
"content": "Hey Claude!",¶
}¶
],¶
)¶
print(message)¶
```¶

```typescript TypeScript¶
import { AnthropicVertex } from
'"@anthropic-ai/vertex-sdk'";¶

const projectId =
'"MY_PROJECT_ID'";¶
const region =
'"global'";¶

const client = new AnthropicVertex({¶
projectId,¶
region
,
});¶

const result = await client.messages.create({¶
model:
'"claude-opus-4-6'",¶
max_tokens: 100,¶
messages: [¶
{¶
role:
'"user'",¶
content:
'"Hey Claude!',"
}
,
]
,
});¶
```¶

```java Java¶
import com.anthropic.client.AnthropicClient;¶
import com.anthropic.client.okhttp.AnthropicOkHttpClient;¶
import com.anthropic.vertex.backends.VertexBackend;¶
import com.anthropic.models.messages.MessageCreateParams;
import com.anthropic.vertex.backends.VertexBackend;


// Uses default Google Cloud credentials¶
AnthropicClient client = AnthropicOkHttpClient.builder()¶
.backend(VertexBackend.fromEnv())¶
.build();¶

var message = client

.messages()
.create(
MessageCreateParams.builder()¶
.model("claude-opus-4-6")¶
.maxTokens(100)¶
.addUserMessage("Hey Claude!")¶
.build()
);¶
```¶

```go Go¶
package main¶

import (¶
"context"¶

"github.com/anthropics/anthropic-sdk-go"¶
"github.com/anthropics/anthropic-sdk-go/vertex"¶
)¶

func main() {¶
// Uses default Google Cloud credentials¶
client := anthropic.NewClient(¶
vertex.WithGoogleAuth(context.Background(), "global", "MY_PROJECT_ID"),¶
)¶

message, _ := client.Messages.New(context.Background(), anthropic.MessageNewParams{¶
Model: "claude-opus-4-6",¶
MaxTokens: 100,¶
Messages: []anthropic.MessageParam{¶
anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),¶
},¶
})¶
_ = message¶
}¶
```¶
</CodeGroup>¶

**Using regional endpoints:**¶

Specify a specific region like `"us-east1"` or `"europe-west1"`:¶

<CodeGroup>¶
```python Python¶
from anthropic import AnthropicVertex¶

project_id = "MY_PROJECT_ID"¶
region = "us-east1" # Specify a specific region¶

client = AnthropicVertex(project_id=project_id, region=region)¶

message = client.messages.create(¶
model="claude-opus-4-6",¶
max_tokens=100,¶
messages=[¶
{¶
"role": "user",¶
"content": "Hey Claude!",¶
}¶
],¶
)¶
print(message)¶
```¶

```typescript TypeScript¶
import { AnthropicVertex } from
'"@anthropic-ai/vertex-sdk'";¶

const projectId =
'"MY_PROJECT_ID'";¶
const region =
'"us-east1'; "; // Specify a specific region¶

const client = new AnthropicVertex({¶
projectId,¶
region
,
});¶

const result = await client.messages.create({¶
model:
'"claude-opus-4-6'",¶
max_tokens: 100,¶
messages: [¶
{¶
role:
'"user'",¶
content:
'"Hey Claude!',"
}
,
]
,
});¶
```¶

```java Java¶
import com.anthropic.client.AnthropicClient;¶
import com.anthropic.client.okhttp.AnthropicOkHttpClient;¶
import com.anthropic.vertex.backends.VertexBackend;¶
import com.anthropic.models.messages.MessageCreateParams;
import com.anthropic.vertex.backends.VertexBackend;


// Uses default Google Cloud credentials with specific region¶
AnthropicClient client = AnthropicOkHttpClient.builder()¶
.backend(
VertexBackend.builder()¶
.region("us-east1") // Specify a specific region¶
.project("MY_PROJECT_ID")¶
.build())
)¶
.build();¶

var message = client

.messages()
.create(
MessageCreateParams.builder()¶
.model("claude-opus-4-6")¶
.maxTokens(100)¶
.addUserMessage("Hey Claude!")¶
.build()
);¶
```¶

```go Go¶
package main¶

import (¶
"context"¶

"github.com/anthropics/anthropic-sdk-go"¶
"github.com/anthropics/anthropic-sdk-go/vertex"¶
)¶

func main() {¶
// Specify a specific region¶
client := anthropic.NewClient(¶
vertex.WithGoogleAuth(context.Background(), "us-east1", "MY_PROJECT_ID"),¶
)¶

message, _ := client.Messages.New(context.Background(), anthropic.MessageNewParams{¶
Model: "claude-opus-4-6",¶
MaxTokens: 100,¶
Messages: []anthropic.MessageParam{¶
anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),¶
},¶
})¶
_ = message¶
}¶
```¶
</CodeGroup>¶

### Additional resources¶

- **Google Vertex AI pricing:** [cloud.google.com/vertex-ai/generative-ai/pricing](https://cloud.google.com/vertex-ai/generative-ai/pricing)¶
- **Claude models documentation:** [Claude on Vertex AI](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude)¶
- **Google blog post:** [Global endpoint for Claude models](https://cloud.google.com/blog/products/ai-machine-learning/global-endpoint-for-claude-models-generally-available-on-vertex-ai)¶
- **Anthropic pricing details:** [Pricing documentation](/docs/en/about-claude/pricing#third-party-platform-pricing)

Unified Diff

--- a/build-with-claude/claude-on-vertex-ai.md
+++ b/build-with-claude/claude-on-vertex-ai.md
@@ -103,27 +103,27 @@
   ```
 
   ```typescript TypeScript
-  import { AnthropicVertex } from '@anthropic-ai/vertex-sdk';
-
-  const projectId = 'MY_PROJECT_ID';
-  const region = 'global';
+  import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";
+
+  const projectId = "MY_PROJECT_ID";
+  const region = "global";
 
   // Goes through the standard `google-auth-library` flow.
   const client = new AnthropicVertex({
     projectId,
-    region,
+    region
   });
 
   async function main() {
     const result = await client.messages.create({
-      model: 'claude-opus-4-6',
+      model: "claude-opus-4-6",
       max_tokens: 100,
       messages: [
         {
-          role: 'user',
-          content: 'Hey Claude!',
-        },
-      ],
+          role: "user",
+          content: "Hey Claude!"
+        }
+      ]
     });
     console.log(JSON.stringify(result, null, 2));
   }
@@ -134,25 +134,30 @@
   ```java Java
   import com.anthropic.client.AnthropicClient;
   import com.anthropic.client.okhttp.AnthropicOkHttpClient;
-  import com.anthropic.vertex.backends.VertexBackend;
   import com.anthropic.models.messages.Message;
   import com.anthropic.models.messages.MessageCreateParams;
+  import com.anthropic.vertex.backends.VertexBackend;
 
   public class VertexExample {
-      public static void main(String[] args) {
-          // Uses default Google Cloud credentials
-          AnthropicClient client = AnthropicOkHttpClient.builder()
-              .backend(VertexBackend.fromEnv())
-              .build();
-
-          Message message = client.messages().create(MessageCreateParams.builder()
-              .model("claude-opus-4-6")
-              .maxTokens(100)
-              .addUserMessage("Hey Claude!")
-              .build());
-
-          System.out.println(message);
-      }
+
+    public static void main(String[] args) {
+      // Uses default Google Cloud credentials
+      AnthropicClient client = AnthropicOkHttpClient.builder()
+        .backend(VertexBackend.fromEnv())
+        .build();
+
+      Message message = client
+        .messages()
+        .create(
+          MessageCreateParams.builder()
+            .model("claude-opus-4-6")
+            .maxTokens(100)
+            .addUserMessage("Hey Claude!")
+            .build()
+        );
+
+      System.out.println(message);
+    }
   }
   ```
 
@@ -160,30 +165,30 @@
   package main
 
   import (
-      "context"
-      "fmt"
-
-      "github.com/anthropics/anthropic-sdk-go"
-      "github.com/anthropics/anthropic-sdk-go/vertex"
+  	"context"
+  	"fmt"
+
+  	"github.com/anthropics/anthropic-sdk-go"
+  	"github.com/anthropics/anthropic-sdk-go/vertex"
   )
 
   func main() {
-      // Uses default Google Cloud credentials
-      client := anthropic.NewClient(
-          vertex.WithGoogleAuth(context.Background(), "global", "MY_PROJECT_ID"),
-      )
-
-      message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
-          Model:     "claude-opus-4-6",
-          MaxTokens: 100,
-          Messages: []anthropic.MessageParam{
-              anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),
-          },
-      })
-      if err != nil {
-          panic(err)
-      }
-      fmt.Printf("%+v\n", message)
+  	// Uses default Google Cloud credentials
+  	client := anthropic.NewClient(
+  		vertex.WithGoogleAuth(context.Background(), "global", "MY_PROJECT_ID"),
+  	)
+
+  	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
+  		Model:     "claude-opus-4-6",
+  		MaxTokens: 100,
+  		Messages: []anthropic.MessageParam{
+  			anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),
+  		},
+  	})
+  	if err != nil {
+  		panic(err)
+  	}
+  	fmt.Printf("%+v\n", message)
   }
   ```
 
@@ -214,9 +219,9 @@
 
 ## Activity logging
 
-Vertex provides a [request-response logging service](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/request-response-logging) that allows customers to log the prompts and completions associated with your usage. 
-
-Anthropic recommends that you log your activity on at least a 30-day rolling basis in order to understand your activity and investigate any potential misuse. 
+Vertex provides a [request-response logging service](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/request-response-logging) that allows customers to log the prompts and completions associated with your usage.
+
+Anthropic recommends that you log your activity on at least a 30-day rolling basis in order to understand your activity and investigate any potential misuse.
 
 <Note>
 Turning on this service does not give Google or Anthropic any access to your content.
@@ -282,66 +287,75 @@
 ```
 
 ```typescript TypeScript
-import { AnthropicVertex } from '@anthropic-ai/vertex-sdk';
-
-const projectId = 'MY_PROJECT_ID';
-const region = 'global';
+import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";
+
+const projectId = "MY_PROJECT_ID";
+const region = "global";
 
 const client = new AnthropicVertex({
   projectId,
-  region,
+  region
 });
 
 const result = await client.messages.create({
-  model: 'claude-opus-4-6',
+  model: "claude-opus-4-6",
   max_tokens: 100,
   messages: [
     {
-      role: 'user',
-      content: 'Hey Claude!',
-    },
-  ],
+      role: "user",
+      content: "Hey Claude!"
+    }
+  ]
 });
 ```
 
 ```java Java
 import com.anthropic.client.AnthropicClient;
 import com.anthropic.client.okhttp.AnthropicOkHttpClient;
+import com.anthropic.models.messages.MessageCreateParams;
 import com.anthropic.vertex.backends.VertexBackend;
-import com.anthropic.models.messages.MessageCreateParams;
 
 // Uses default Google Cloud credentials
 AnthropicClient client = AnthropicOkHttpClient.builder()
-    .backend(VertexBackend.fromEnv())
-    .build();
-
-var message = client.messages().create(MessageCreateParams.builder()
-    .model("claude-opus-4-6")
-    .maxTokens(100)
-    .addUserMessage("Hey Claude!")
-    .build());
+  .backend(VertexBackend.fromEnv())
+  .build();
+
+var message = client
+  .messages()
+  .create(
+    MessageCreateParams.builder()
+      .model("claude-opus-4-6")
+      .maxTokens(100)
+      .addUserMessage("Hey Claude!")
+      .build()
+  );
 ```
 
 ```go Go
+package main
+
 import (
-    "context"
-
-    "github.com/anthropics/anthropic-sdk-go"
-    "github.com/anthropics/anthropic-sdk-go/vertex"
+	"context"
+
+	"github.com/anthropics/anthropic-sdk-go"
+	"github.com/anthropics/anthropic-sdk-go/vertex"
 )
 
-// Uses default Google Cloud credentials
-client := anthropic.NewClient(
-    vertex.WithGoogleAuth(context.Background(), "global", "MY_PROJECT_ID"),
-)
-
-message, _ := client.Messages.New(context.Background(), anthropic.MessageNewParams{
-    Model:     "claude-opus-4-6",
-    MaxTokens: 100,
-    Messages: []anthropic.MessageParam{
-        anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),
-    },
-})
+func main() {
+	// Uses default Google Cloud credentials
+	client := anthropic.NewClient(
+		vertex.WithGoogleAuth(context.Background(), "global", "MY_PROJECT_ID"),
+	)
+
+	message, _ := client.Messages.New(context.Background(), anthropic.MessageNewParams{
+		Model:     "claude-opus-4-6",
+		MaxTokens: 100,
+		Messages: []anthropic.MessageParam{
+			anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),
+		},
+	})
+	_ = message
+}
 ```
 </CodeGroup>
 
@@ -372,69 +386,80 @@
 ```
 
 ```typescript TypeScript
-import { AnthropicVertex } from '@anthropic-ai/vertex-sdk';
-
-const projectId = 'MY_PROJECT_ID';
-const region = 'us-east1';  // Specify a specific region
+import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";
+
+const projectId = "MY_PROJECT_ID";
+const region = "us-east1"; // Specify a specific region
 
 const client = new AnthropicVertex({
   projectId,
-  region,
+  region
 });
 
 const result = await client.messages.create({
-  model: 'claude-opus-4-6',
+  model: "claude-opus-4-6",
   max_tokens: 100,
   messages: [
     {
-      role: 'user',
-      content: 'Hey Claude!',
-    },
-  ],
+      role: "user",
+      content: "Hey Claude!"
+    }
+  ]
 });
 ```
 
 ```java Java
 import com.anthropic.client.AnthropicClient;
 import com.anthropic.client.okhttp.AnthropicOkHttpClient;
+import com.anthropic.models.messages.MessageCreateParams;
 import com.anthropic.vertex.backends.VertexBackend;
-import com.anthropic.models.messages.MessageCreateParams;
 
 // Uses default Google Cloud credentials with specific region
 AnthropicClient client = AnthropicOkHttpClient.builder()
-    .backend(VertexBackend.builder()
-        .region("us-east1")  // Specify a specific region
-        .project("MY_PROJECT_ID")
-        .build())
-    .build();
-
-var message = client.messages().create(MessageCreateParams.builder()
-    .model("claude-opus-4-6")
-    .maxTokens(100)
-    .addUserMessage("Hey Claude!")
-    .build());
+  .backend(
+    VertexBackend.builder()
+      .region("us-east1") // Specify a specific region
+      .project("MY_PROJECT_ID")
+      .build()
+  )
+  .build();
+
+var message = client
+  .messages()
+  .create(
+    MessageCreateParams.builder()
+      .model("claude-opus-4-6")
+      .maxTokens(100)
+      .addUserMessage("Hey Claude!")
+      .build()
+  );
 ```
 
 ```go Go
+package main
+
 import (
-    "context"
-
-    "github.com/anthropics/anthropic-sdk-go"
-    "github.com/anthropics/anthropic-sdk-go/vertex"
+	"context"
+
+	"github.com/anthropics/anthropic-sdk-go"
+	"github.com/anthropics/anthropic-sdk-go/vertex"
 )
 
-// Specify a specific region
-client := anthropic.NewClient(
-    vertex.WithGoogleAuth(context.Background(), "us-east1", "MY_PROJECT_ID"),
-)
-
-message, _ := client.Messages.New(context.Background(), anthropic.MessageNewParams{
-    Model:     "claude-opus-4-6",
-    MaxTokens: 100,
-    Messages: []anthropic.MessageParam{
-        anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),
-    },
-})
+func main() {
+	// Specify a specific region
+	client := anthropic.NewClient(
+		vertex.WithGoogleAuth(context.Background(), "us-east1", "MY_PROJECT_ID"),
+	)
+
+	message, _ := client.Messages.New(context.Background(), anthropic.MessageNewParams{
+		Model:     "claude-opus-4-6",
+		MaxTokens: 100,
+		Messages: []anthropic.MessageParam{
+			anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),
+		},
+	})
+	_ = message
+}
 ```
 </CodeGroup>