> ## Documentation Index > Fetch the complete documentation index at: https://openrouter.ai/docs/llms.txt > Use this file to discover all available pages before exploring further. # ModelReasoning Reasoning effort configuration. Omitted for non-reasoning models and dynamic router models. ## Example Usage ```typescript theme={null} import { ModelReasoning } from "@openrouter/sdk/models"; let value: ModelReasoning = { mandatory: false, }; ``` ## Fields | Field | Type | Required | Description | Example | | ------------------- | ---------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | | `defaultEffort` | [models.DefaultEffort](../models/defaulteffort.mdx) | :heavy\_minus\_sign: | N/A | medium | | `defaultEnabled` | *boolean* | :heavy\_minus\_sign: | Default reasoning enabled state when the client does not set `reasoning.enabled`. | | | `mandatory` | *boolean* | :heavy\_check\_mark: | When true, reasoning cannot be disabled and effort "none" is rejected. | | | `supportedEfforts` | [models.ReasoningEffort](../models/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. | | | `supportsMaxTokens` | *boolean* | :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. | |