Skip to main content
The gateway speaks the OpenAI chat-completions wire format to every provider. OpenAI-compatible targets (OpenAI, Azure OpenAI, self-hosted vLLM and other custom OpenAI-compatible endpoints) bypass the policy on this page entirely: the request body is forwarded byte-for-byte apart from the gateway-only drop_tuning_params field, which is consumed before forwarding, so whatever the provider accepts, you get. For the translated lanes (Anthropic, Bedrock, Gemini, Vertex) the gateway builds the provider-native request itself, and every parameter follows an explicit policy:
  • mapped: translated faithfully to the provider’s native field.
  • dropped: a tuning parameter with no equivalent on the lane. By default it is removed, the request proceeds, and the drop is signaled (see below). It is never silently ignored.
  • refused: the request depends on the parameter functionally; honoring the request without it would change what you observably get. These always fail with a clear 400 unsupported_parameter error naming the parameter, the lane, and why.

drop_tuning_params

Send "drop_tuning_params": false in the request body to opt into strict mode: any parameter the lane cannot map then refuses instead of dropping. The default is true. The field itself is consumed by the gateway and never reaches a provider.

Drop signals

When a parameter is dropped, the drop is visible in three places:
  • Response body: extra_fields.params_dropped lists the dropped parameter names (on streams, on the final usage-bearing chunk).
  • Response header: X-LangWatch-Params-Dropped carries the same list, comma separated.
  • Trace: the gateway span records langwatch.gateway.params_dropped.

The table

reasoning_effort budgets

On lanes that map reasoning_effort to a thinking budget (Anthropic models without adaptive thinking, on both the anthropic and bedrock lanes), the budget is derived from your output cap: budget = 1024 + ratio x (max_tokens - 1024) with ratios minimal 0.025, low 0.15, medium 0.425, high 0.80, xhigh 0.92, max 1.0. Claude Opus and Sonnet 4.6+ use the provider’s adaptive thinking with your effort passed through (minimal maps to low). Gemini thinking models receive the effort natively. Thinking tokens count inside usage.completion_tokens.