modelparams.dev
Vertex 13 params

Vertex Gemini 3.1 Pro Preview Customtools API parameters

These are the API parameters modelparams.dev tracks for Vertex Gemini 3.1 Pro Preview Customtools — the settings you send in a request. Each row gives the type, default, valid range or values, and the conditions that gate it. It's the same data the JSON API serves.

After the parameter count instead — how many weights Gemini 3.1 Pro Preview Customtools has? That's a different number, and we don't track it. Here's the difference.

Length 3 params
Parameter Type Default Description Condition
Max output tokens
generationConfig.maxOutputTokens
integer (1…65536) Maximum number of tokens to include in a response candidate.
Candidate count
generationConfig.candidateCount
integer (1…8) How many independent completions to generate for one request.
Stop sequences
generationConfig.stopSequences
string A list of strings where the model stops generating further tokens.
Sampling 6 params
Parameter Type Default Description Condition
Temperature
generationConfig.temperature
number (0…2 step 0.1) 1 Controls randomness. Lower values make outputs more focused; higher values make them more varied.
Top P
generationConfig.topP
number (0…1 step 0.01) 0.95 Controls nucleus sampling by limiting generation to tokens within the selected cumulative probability.
Top K
generationConfig.topK
integer (1…+∞) 64 Limits token sampling to the top K most likely next tokens.
Seed
generationConfig.seed
integer Optional seed used for decoding when reproducible sampling is desired.
Presence penalty
generationConfig.presencePenalty
number (-2…1) Penalises tokens that already appeared, pushing the model toward new topics.
Frequency penalty
generationConfig.frequencyPenalty
number (-2…1) Penalises tokens in proportion to how often they have already appeared.
Reasoning 3 params
Parameter Type Default Description Condition
Thinking budget
generationConfig.thinkingConfig.thinkingBudget
integer (0…+∞) Token budget the model may spend on internal reasoning before answering. 0 disables thinking. Cannot be combined with thinkingLevel.
Not when generationConfig.thinkingConfig.thinkingLevel ≠ null
Include thoughts
generationConfig.thinkingConfig.includeThoughts
boolean false Controls whether Gemini returns available thought summaries in the response parts.
Thinking level
generationConfig.thinkingConfig.thinkingLevel
enum (minimal | low | medium | high) "minimal" Controls Gemini 3.1 Flash-Lite reasoning effort.
Not when generationConfig.thinkingConfig.thinkingBudget ≠ null
Output 1 param
Parameter Type Default Description Condition
Response MIME type
generationConfig.responseMimeType
enum (text/plain | application/json) "text/plain" MIME type for generated text candidates.

Vertex Gemini 3.1 Pro Preview Customtools API parameters in brief

Vertex Gemini 3.1 Pro Preview Customtools documents 13 API parameters, grouped by what they control:

Frequently asked questions

Which API parameters does Vertex Gemini 3.1 Pro Preview Customtools support?
Vertex Gemini 3.1 Pro Preview Customtools accepts 13 API parameters in the request body: generationConfig.maxOutputTokens, generationConfig.temperature, generationConfig.topP, generationConfig.topK, generationConfig.seed, generationConfig.candidateCount, and more.

Resources

All Vertex models Glossary Full catalog

Gemini 3.1 Pro Preview Customtools — JSON

The full model definition as served by the API. Copy it or open the endpoint directly.

{
  "$schema": "https://modelparams.dev/api/v1/schema.json",
  "provider": "vertex",
  "authType": "api_key",
  "model": "gemini-3.1-pro-preview-customtools",
  "params": [
    {
      "path": "generationConfig.maxOutputTokens",
      "label": "Max output tokens",
      "description": "Maximum number of tokens to include in a response candidate.",
      "group": "generation_length",
      "type": "integer",
      "range": {
        "min": 1,
        "max": 65536
      }
    },
    {
      "path": "generationConfig.temperature",
      "label": "Temperature",
      "description": "Controls randomness. Lower values make outputs more focused; higher values make them more varied.",
      "group": "sampling",
      "type": "number",
      "default": 1,
      "range": {
        "min": 0,
        "max": 2,
        "step": 0.1
      }
    },
    {
      "path": "generationConfig.topP",
      "label": "Top P",
      "description": "Controls nucleus sampling by limiting generation to tokens within the selected cumulative probability.",
      "group": "sampling",
      "type": "number",
      "default": 0.95,
      "range": {
        "min": 0,
        "max": 1,
        "step": 0.01
      }
    },
    {
      "path": "generationConfig.topK",
      "label": "Top K",
      "description": "Limits token sampling to the top K most likely next tokens.",
      "group": "sampling",
      "type": "integer",
      "default": 64,
      "range": {
        "min": 1
      }
    },
    {
      "path": "generationConfig.seed",
      "label": "Seed",
      "description": "Optional seed used for decoding when reproducible sampling is desired.",
      "group": "sampling",
      "type": "integer"
    },
    {
      "path": "generationConfig.candidateCount",
      "label": "Candidate count",
      "description": "How many independent completions to generate for one request.",
      "group": "generation_length",
      "type": "integer",
      "range": {
        "min": 1,
        "max": 8
      }
    },
    {
      "path": "generationConfig.stopSequences",
      "label": "Stop sequences",
      "description": "A list of strings where the model stops generating further tokens.",
      "group": "generation_length",
      "type": "string"
    },
    {
      "path": "generationConfig.presencePenalty",
      "label": "Presence penalty",
      "description": "Penalises tokens that already appeared, pushing the model toward new topics.",
      "group": "sampling",
      "type": "number",
      "range": {
        "min": -2,
        "max": 1
      }
    },
    {
      "path": "generationConfig.frequencyPenalty",
      "label": "Frequency penalty",
      "description": "Penalises tokens in proportion to how often they have already appeared.",
      "group": "sampling",
      "type": "number",
      "range": {
        "min": -2,
        "max": 1
      }
    },
    {
      "path": "generationConfig.responseMimeType",
      "label": "Response MIME type",
      "description": "MIME type for generated text candidates.",
      "group": "output_format",
      "type": "enum",
      "default": "text/plain",
      "values": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "path": "generationConfig.thinkingConfig.thinkingBudget",
      "label": "Thinking budget",
      "description": "Token budget the model may spend on internal reasoning before answering. 0 disables thinking. Cannot be combined with thinkingLevel.",
      "group": "reasoning",
      "applicability": {
        "except": {
          "generationConfig.thinkingConfig.thinkingLevel": {
            "not": null
          }
        }
      },
      "type": "integer",
      "range": {
        "min": 0
      }
    },
    {
      "path": "generationConfig.thinkingConfig.includeThoughts",
      "label": "Include thoughts",
      "description": "Controls whether Gemini returns available thought summaries in the response parts.",
      "group": "reasoning",
      "type": "boolean",
      "default": false
    },
    {
      "path": "generationConfig.thinkingConfig.thinkingLevel",
      "label": "Thinking level",
      "description": "Controls Gemini 3.1 Flash-Lite reasoning effort.",
      "group": "reasoning",
      "applicability": {
        "except": {
          "generationConfig.thinkingConfig.thinkingBudget": {
            "not": null
          }
        }
      },
      "type": "enum",
      "default": "minimal",
      "values": [
        "minimal",
        "low",
        "medium",
        "high"
      ]
    }
  ]
}

Other Vertex models

How to use

Building with an AI agent? Hit Copy to grab this whole guide as Markdown and paste it in — or point your agent straight at /llms.txt.

modelparams.dev is an open, community-maintained catalog of model parameters. Each entry shows the knobs you can turn — type, default, range, and the conditions that gate it.

The same model accessed via an API key and via a subscription usually exposes a different set of parameters. We list both as separate entries so the data stays honest.

Catalog API

The full catalog is static JSON, CORS-enabled, served from the edge.

curl https://modelparams.dev/api/v1/models.json

Each entry is keyed by provider/model for API-key variants; subscription variants append -subscription.

If you only need the params for one model contract, use the providerless endpoint. Subscription contracts are model slugs with -subscription.

curl https://modelparams.dev/api/v1/models/openai/gpt-5.5.json
curl https://modelparams.dev/api/v1/models/openai/gpt-5.5-subscription.json

Single model

curl https://modelparams.dev/api/v1/models/anthropic/claude-opus-4-7.json
curl https://modelparams.dev/api/v1/models/anthropic/claude-opus-4-7-subscription.json

JSON Schema

Every entry validates against a JSON Schema you can use in your editor or pipeline.

curl https://modelparams.dev/api/v1/schema.json

Add this header to any YAML you author for autocomplete in VS Code:

# yaml-language-server: $schema=https://modelparams.dev/api/v1/schema.json

Logos

Provider logos are available at /assets/logos/{provider}.svg where {provider} is the provider slug. They use currentColor so they inherit your text color.

curl https://modelparams.dev/assets/logos/anthropic.svg

Logos are sourced from the models.dev repo (MIT) and used under nominative fair use.

Contribute

The data lives in YAML under models/{provider}/{model}-{auth}.yaml in the GitHub repo. Open a PR; CI validates against the schema and rebuilds.

Edit on GitHub MIT licensed