The Vertex AI service lets you use the Vertex AI API in Apps Script. This API gives you access to Gemini and other generative AI models for text generation, image generation, and more.
Prerequisites
A Google Cloud project with billing enabled. To check that an existing project has billing enabled, see Verify the billing status of your projects. To create a project and set up billing, see Create a Google Cloud project.
In the Google Cloud console, go to your Cloud project and enable the Vertex AI API:
Configure your Apps Script project:
- Turn on the Vertex AI service. For steps, see Advanced Google services.
- In project settings, add your Cloud project.
Reference
For more information about this service, see the Vertex AI 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 Vertex AI 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.
*/
function main() {
const prompt = 'What is Apps Script in one sentence?';
try {
const response = 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.
*/
function callVertexAI(prompt) {
// Configuration
const projectId = 'GOOGLE_CLOUD_PROJECT_ID';
const region = 'us-central1';
const modelName = 'gemini-2.5-flash';
const model = `projects/${projectId}/locations/${region}/publishers/google/models/${modelName}`;
const payload = {
contents: [{
role: 'user',
parts: [{
text: prompt
}]
}],
generationConfig: {
temperature: 0.1,
maxOutputTokens: 2048
}
};
// Execute the request using the Vertex AI Advanced Service
const response = VertexAI.Endpoints.generateContent(payload, model);
// Use optional chaining for safe property access
return response?.candidates?.[0]?.content?.parts?.[0]?.text || 'No response generated.';
}
Replace GOOGLE_CLOUD_PROJECT_ID with the
project ID
of your Cloud project.