Vertex AI Service

The Vertex AI service lets you use the Agent Platform API (formerly the Vertex AI API) in Google Apps Script. This API gives you access to Gemini and other generative AI models for text generation, image generation, and more.

To get started with this advanced service, try the quickstart.

Prerequisites

Reference

For more information about this service, see the Agent Platform API reference documentation. Like all advanced services in Apps Script, the Vertex AI service uses the same objects, methods, and parameters as the public API.

Sample code

The following sample code uses version 1 of the Agent Platform API.

Generate text

This sample code shows how to prompt the Gemini 2.5 Flash model to generate text. The function returns the output to Apps Script's execution log.

/**
 * Main entry point to test the Vertex AI integration.
 */
functionmain(){
constprompt='What is Apps Script in one sentence?';
try{
constresponse=callVertexAI(prompt);
console.log(`Response: ${response}`);
}catch(error){
console.error(`Failed to call Vertex AI: ${error.message}`);
}
}
/**
 * Calls the Vertex AI Gemini model.
 *
 * @param {string} prompt - The user's input prompt.
 * @return {string} The text generated by the model.
 */
functioncallVertexAI(prompt){
// Configuration
constprojectId='GOOGLE_CLOUD_PROJECT_ID';
constregion='us-central1';
constmodelName='gemini-2.5-flash';
constmodel=`projects/${projectId}/locations/${region}/publishers/google/models/${modelName}`;
constpayload={
contents:[{
role:'user',
parts:[{
text:prompt
}]
}],
generationConfig:{
temperature:0.1,
maxOutputTokens:2048
}
};
// Execute the request using the Vertex AI Advanced Service
constresponse=VertexAI.Endpoints.generateContent(payload,model);
// Use optional chaining for safe property access
returnresponse?.candidates?.[0]?.content?.parts?.[0]?.text||'No response generated.';
}

Replace GOOGLE_CLOUD_PROJECT_ID with the project ID of your Cloud project.

Generate text using a service account

The following example shows how to generate text by authenticating as an Apps Script project using a service account.

/**
 * Main entry point to test the Vertex AI integration.
 */
functionmain(){
constprompt='What is Apps Script in one sentence?';
try{
constresponse=callVertexAI(prompt);
console.log(`Response: ${response}`);
}catch(error){
console.error(`Failed to call Vertex AI: ${error.message}`);
}
}
/**
 * Calls the Vertex AI Gemini model.
 *
 * @param {string} prompt - The user's input prompt.
 * @return {string} The text generated by the model.
 */
functioncallVertexAI(prompt){
constservice=getServiceAccountService();
// Configuration
constprojectId='GOOGLE_CLOUD_PROJECT_ID';
constregion='us-central1';
constmodelName='gemini-2.5-flash';
constmodel=`projects/${projectId}/locations/${region}/publishers/google/models/${modelName}`;
constpayload={
contents:[{
role:'user',
parts:[{
text:prompt
}]
}],
generationConfig:{
temperature:0.1,
maxOutputTokens:2048
}
};
// Execute the request using the Vertex AI Advanced Service
constresponse=VertexAI.Endpoints.generateContent(
payload,
model,
{},
// Authenticate with the service account token.
{Authorization:`Bearer ${service.getAccessToken()}`},
);
// Use optional chaining for safe property access
returnresponse?.candidates?.[0]?.content?.parts?.[0]?.text||'No response generated.';
}
/**
 * Get a new OAuth2 service for a given service account.
 */
functiongetServiceAccountService(){
constserviceAccountKeyString=PropertiesService.getScriptProperties().getProperty('SERVICE_ACCOUNT_KEY');
if(!serviceAccountKeyString){
thrownewError('SERVICE_ACCOUNT_KEY property is not set. Please follow the setup instructions.');
}
constserviceAccountKey=JSON.parse(serviceAccountKeyString);
constCLIENT_EMAIL=serviceAccountKey.client_email;
constPRIVATE_KEY=serviceAccountKey.private_key;
constSCOPES=['https://www.googleapis.com/auth/cloud-platform'];
returnOAuth2.createService('ServiceAccount')
.setTokenUrl('https://oauth2.googleapis.com/token')
.setPrivateKey(PRIVATE_KEY)
.setIssuer(CLIENT_EMAIL)
.setPropertyStore(PropertiesService.getScriptProperties())
.setScope(SCOPES);
}

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026年07月22日 UTC.