--- title: "ModelReasoning" --- Reasoning effort configuration. Omitted for non-reasoning models and dynamic router models. ## Fields | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `default_effort` | [OptionalNullable[components.DefaultEffort]](../components/defaulteffort.mdx) | :heavy_minus_sign: | N/A | medium | | `default_enabled` | *Optional[bool]* | :heavy_minus_sign: | Default reasoning enabled state when the client does not set `reasoning.enabled`. | | | `mandatory` | *bool* | :heavy_check_mark: | When true, reasoning cannot be disabled and effort "none" is rejected. | | | `supported_efforts` | List[[Nullable[components.ReasoningEffort]](../components/reasoningeffort.mdx)] | :heavy_minus_sign: | Allowed reasoning effort values for this model, in descending effort order (highest first). Null means no allowlist — all gateway effort values are accepted. | | | `supports_max_tokens` | *Optional[bool]* | :heavy_minus_sign: | Present and `true` when the model accepts `reasoning.max_tokens` in requests (Anthropic-style) instead of or in addition to `reasoning.effort`. Omitted otherwise. | |