# Parameter mapping

https://modelportal.ai/docs/parameter-mapping

The same parameter is spelled differently in each protocol. The tables line up by row: write the field from the column of the protocol you call, and if the serving endpoint speaks another protocol, the platform converts along the same row.

## Sampling and output parameters

| Parameter | OpenAI | Anthropic | Gemini (`generationConfig`) | When an endpoint lacks it |
| --- | --- | --- | --- | --- |
| Temperature | `temperature` | `temperature` | `temperature` | Endpoint excluded |
| Nucleus sampling | `top_p` | `top_p` | `topP` | Endpoint excluded |
| Top-K | `top_k` | `top_k` | `topK` | Endpoint excluded |
| Seed | `seed` | — | `seed` | Endpoint excluded |
| Multiple candidates | `n` (above 1) | — | `candidateCount` (above 1) | Endpoint excluded |
| Log probabilities | `logprobs`, `top_logprobs` | — | `responseLogprobs` | Endpoint excluded |
| Frequency penalty | `frequency_penalty` (non-zero) | — | `frequencyPenalty` | Endpoint excluded |
| Presence penalty | `presence_penalty` (non-zero) | — | `presencePenalty` | Endpoint excluded |
| Maximum output | `max_tokens`, `max_completion_tokens`; `max_output_tokens` in Responses | `max_tokens` (required) | `maxOutputTokens` | Excluded when estimated input plus maximum output exceeds the context length |

## Capabilities

| Capability | OpenAI | Anthropic | Gemini | Endpoint must declare |
| --- | --- | --- | --- | --- |
| Structured output | `response_format` of type `json_schema` | — | `responseSchema`, `responseJsonSchema` | `structured_output` |
| JSON mode | `response_format` of type `json_object` | — | `responseMimeType` of `application/json` | `json_mode` |
| Tool calling | `tools`, `tool_choice` | `tools`, `tool_choice` | `tools`, `toolConfig` | `tools` |
| Reasoning | `reasoning`, `reasoning_effort` | `thinking` | `thinkingConfig` | Rewritten to the endpoint's reasoning levels; see [Reasoning](/docs/reasoning) |
| Prompt caching | Automatic upstream | `cache_control` | Automatic upstream | Never excluded; without support it just misses; see [Prompt caching](/docs/prompt-caching) |
| Image input | `image_url`, `input_image` | `image` content blocks | `inlineData`, `fileData` | `vision_input` |
| Streaming | `stream` | `stream` | `:streamGenerateContent` | `streaming` |

## When a parameter is not supported

The platform never drops a parameter and forwards the rest. Endpoints that do not declare a parameter or capability the request uses sit out the request; if that excludes every endpoint, you get 400 `unsupported_parameter` with the parameter names in the message. Remove the parameter, or use a model that supports it.

## Which parameters each endpoint supports

The endpoint list on the model page shows each endpoint's supported parameters and capabilities. From code, read `sampling_params` and `capabilities` in each endpoint's `config` from `GET /api/v1/models/<model ID>`; see the [Models API](/docs/api-models).
