Request parameters
Which parameters the gateway forwards to the model on each endpoint, which it strips and which it rejects.
The gateway forwards to the model only the parameters on its endpoint's list.
Anything outside the list is silently stripped: the request runs as if it were
absent. So a parameter you are used to in one format may quietly disappear in
another: for example, only /v1/chat/completions accepts seed, and
max_tokens is called max_output_tokens on /v1/responses.
Forwarded to the model
The gateway validates only the model field; the values of other parameters
are validated by the model's provider. If it rejects a value, the response is a
400 with the unsupported_value or invalid_value code (see
Errors).
/v1/chat/completions
model, messages, stream, temperature, top_p, max_tokens, max_completion_tokens, stop, seed, n, presence_penalty, frequency_penalty, logit_bias, logprobs, top_logprobs, response_format, tools, tool_choice, parallel_tool_calls, functions, function_call, prediction, reasoning_effort, verbosity, prompt_cache_retention, top_k, min_p, repetition_penalty, thinking, enable_thinking, thinking_budget, reasoning
/v1/messages
model, messages, system, max_tokens, stop_sequences, stream, temperature, top_p, top_k, tools, tool_choice, thinking, cache_control, output_config (only effort and format; the legacy output_format moves to output_config.format)
/v1/responses
model, input, instructions, stream, temperature, top_p, top_logprobs, max_output_tokens, max_tool_calls, tools, tool_choice, parallel_tool_calls, reasoning, text, truncation, include, prompt_cache_retention
/v1/images/generations
model, prompt, n (clamped to 1–10), size, aspect_ratio, resolution, quality, background, image, images, output_format, output_compression, response_format
/v1/videos
model, prompt, seconds, duration, duration_seconds, size, aspect_ratio, resolution, image, images, video, input_reference, negative_prompt, seed
Special cases
stream_optionsis stripped, but"include_usage": trueon/v1/chat/completionsis honored: usage arrives in the last stream chunk.user,safety_identifier,prompt_cache_keyandmetadataare not passed to the provider — the gateway sets its own identifiers. Differentprompt_cache_keyvalues still map to different cache partitions.- On
/v1/responsesstoreis alwaysfalse: conversations are not stored at the provider. - Parameters that change the provider's pricing tier or routing are stripped
without an error:
service_tier,inference_geo,speed,models,provider,route,transforms,plugins, as well as web search and code execution (web_search_options,mcp_servers,containerand the like).
Tools
Only tools that your code executes, or that cost nothing but tokens, stay in
tools. The provider's built-in tools (web search, code execution, file
search, MCP) are silently removed from the list.
| Endpoint | Kept in tools |
|---|---|
/v1/chat/completions | function, custom |
/v1/messages | your own tools (no type, or custom) and Anthropic client tools: bash_*, text_editor_*, memory_*, computer_*, browser_toolset_*, tool_search_tool_* |
/v1/responses | function, custom, namespace, apply_patch, local_shell, computer, tool_search, shell with a local environment |
If the list ends up empty, tools, tool_choice and parallel_tool_calls are
removed and the model answers without tools. But if tool_choice requires a
tool that is no longer there (required, a specific tool, any), the request
is rejected — see below.
Rejected with a 400
These parameters change the shape of the response or refer to data stored at the provider, so they cannot be dropped silently:
| Endpoint | What is rejected |
|---|---|
/v1/chat/completions | audio, modalities containing "audio", "deferred": true; message parts input_audio and file with a file_id |
/v1/messages | compaction; image and document blocks with source.type: "file", container_upload blocks |
/v1/responses | "background": true, previous_response_id, conversation, prompt; input items of type item_reference, input_file and input_image parts with a file_id |
| all text endpoints | tools that is not an array; a tool_choice that requires a tool not on the list |
The response carries the unsupported_parameter code and, in the param
field, the parameter name or the path to the message part, e.g.
messages[3].content[1]. Send the full conversation history with every
request: the gateway keeps no provider-side state.
Updated September 29, 2026