Request parameters

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_options is stripped, but "include_usage": true on /v1/chat/completions is honored: usage arrives in the last stream chunk.
  • user, safety_identifier, prompt_cache_key and metadata are not passed to the provider — the gateway sets its own identifiers. Different prompt_cache_key values still map to different cache partitions.
  • On /v1/responses store is always false: 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, container and 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.

EndpointKept in tools
/v1/chat/completionsfunction, custom
/v1/messagesyour own tools (no type, or custom) and Anthropic client tools: bash_*, text_editor_*, memory_*, computer_*, browser_toolset_*, tool_search_tool_*
/v1/responsesfunction, 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:

EndpointWhat is rejected
/v1/chat/completionsaudio, modalities containing "audio", "deferred": true; message parts input_audio and file with a file_id
/v1/messagescompaction; 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 endpointstools 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