structured output (JSON)

Force Gemini to return valid JSON matching a defined schema using response_mime_type and response_schema in generationConfig.

Syntax

gemini-api
{ responseMimeType: "application/json", responseSchema: { type, properties, required } }

Example

gemini-api
const model = genAI.getGenerativeModel({
  model: "gemini-1.5-pro",
  generationConfig: {
    responseMimeType: "application/json",
    responseSchema: {
      type: SchemaType.OBJECT,
      properties: {
        sentiment: { type: SchemaType.STRING, enum: ["positive","neutral","negative"] },
        score: { type: SchemaType.NUMBER },
        topics: { type: SchemaType.ARRAY, items: { type: SchemaType.STRING } },
      },
      required: ["sentiment", "score", "topics"],
    },
  },
});

const result = await model.generateContent("Analyze: Great API but slow cold starts.");
const data = JSON.parse(result.response.text());
console.log(data.sentiment); // "positive"