Google · Schema
GenerateContentRequest
AdvertisingCloudDevelopersGooglePlatformSearchT1Agentic CommerceUniversal Commerce ProtocolAP2A2A
Properties
| Name | Type | Description |
|---|---|---|
| contents | array | The content of the current conversation with the model |
| system_instruction | object | System instructions to guide model behavior |
| generationConfig | object | Configuration options for model generation |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/google/main/json-schema/google-generate-content-request-schema.json",
"title": "GenerateContentRequest",
"x-generated": "2026-10-03",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/google-audio-understanding-api-openapi.yml#/components/schemas/GenerateContentRequest",
"type": "object",
"required": [
"contents"
],
"properties": {
"contents": {
"type": "array",
"description": "The content of the current conversation with the model",
"items": {
"$ref": "#/$defs/Content"
}
},
"system_instruction": {
"$ref": "#/$defs/Content",
"description": "System instructions to guide model behavior"
},
"generationConfig": {
"$ref": "#/$defs/GenerationConfig",
"description": "Configuration options for model generation"
}
},
"$defs": {
"Content": {
"type": "object",
"properties": {
"role": {
"type": "string",
"enum": [
"user",
"model"
],
"description": "The role of the content producer (optional for single-turn, required for multi-turn)"
},
"parts": {
"type": "array",
"description": "Ordered parts that constitute a single message",
"items": {
"$ref": "#/$defs/Part"
}
}
},
"required": [
"parts"
]
},
"FileData": {
"type": "object",
"description": "Reference to a file uploaded via the File API or a YouTube URL",
"properties": {
"mime_type": {
"type": "string",
"description": "MIME type of the file (optional for YouTube URLs)"
},
"file_uri": {
"type": "string",
"description": "URI of the file from File API or YouTube URL"
}
},
"required": [
"file_uri"
]
},
"GenerationConfig": {
"type": "object",
"description": "Configuration options for model generation and outputs",
"properties": {
"stopSequences": {
"type": "array",
"description": "Set of character sequences that will stop output generation",
"items": {
"type": "string"
},
"maxItems": 5
},
"temperature": {
"type": "number",
"format": "float",
"description": "Controls randomness of output (default 1.0 for Gemini 3 models)",
"minimum": 0.0,
"maximum": 2.0,
"default": 1.0
},
"topP": {
"type": "number",
"format": "float",
"description": "Maximum cumulative probability of tokens to consider",
"minimum": 0.0,
"maximum": 1.0
},
"topK": {
"type": "integer",
"description": "Maximum number of tokens to consider",
"minimum": 1
},
"maxOutputTokens": {
"type": "integer",
"description": "Maximum number of tokens to generate",
"minimum": 1
},
"thinkingConfig": {
"$ref": "#/$defs/ThinkingConfig",
"description": "Configuration for thinking mode (Gemini 2.5 models)"
},
"response_mime_type": {
"type": "string",
"description": "MIME type for structured output (e.g., application/json)",
"enum": [
"text/plain",
"application/json"
]
},
"response_schema": {
"type": "object",
"description": "JSON schema for structured output format",
"additionalProperties": true
}
}
},
"InlineData": {
"type": "object",
"required": [
"mime_type",
"data"
],
"properties": {
"mime_type": {
"type": "string",
"description": "MIME type of the data",
"enum": [
"image/jpeg",
"image/png",
"image/webp",
"video/mp4",
"video/mpeg",
"video/mov",
"video/avi",
"video/x-flv",
"video/mpg",
"video/webm",
"video/wmv",
"video/3gpp",
"audio/wav",
"audio/mp3",
"audio/aiff",
"audio/aac",
"audio/ogg",
"audio/flac",
"application/pdf"
]
},
"data": {
"type": "string",
"format": "byte",
"description": "Base64 encoded data"
}
}
},
"Part": {
"type": "object",
"description": "A part of the content, can be text, inline data, or file data",
"oneOf": [
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Text content"
}
}
},
{
"type": "object",
"required": [
"inline_data"
],
"properties": {
"inline_data": {
"$ref": "#/$defs/InlineData"
}
}
},
{
"type": "object",
"required": [
"file_data"
],
"properties": {
"file_data": {
"$ref": "#/$defs/FileData"
},
"video_metadata": {
"$ref": "#/$defs/VideoMetadata",
"description": "Optional metadata for video processing (clipping, FPS)"
}
}
}
]
},
"ThinkingConfig": {
"type": "object",
"description": "Configuration for thinking mode in Gemini 2.5 models",
"properties": {
"thinkingBudget": {
"type": "integer",
"description": "Thinking budget, set to 0 to disable thinking",
"minimum": 0,
"default": null
}
}
},
"VideoMetadata": {
"type": "object",
"description": "Metadata for customizing video processing",
"properties": {
"start_offset": {
"type": "string",
"description": "Start time offset for video clipping (format like \"1250s\")",
"pattern": "^\\d+s$"
},
"end_offset": {
"type": "string",
"description": "End time offset for video clipping (format like \"1570s\")",
"pattern": "^\\d+s$"
},
"fps": {
"type": "number",
"format": "float",
"description": "Custom frame rate sampling (frames per second). Default is 1 FPS. Use <1 for long videos, >1 for rapidly changing visuals",
"minimum": 0.1
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/google-generate-content-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.