> ## Documentation Index
> Fetch the complete documentation index at: https://openrouter-d02e98a0-mintlify-5b6e02fd.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# MessagesRequest - Python SDK

> MessagesRequest method reference

<Warning>
  The Python SDK and docs are currently in beta.
  Report issues on [GitHub](https://github.com/OpenRouterTeam/python-sdk/issues).
</Warning>

Request schema for Anthropic Messages API endpoint

## Fields

| Field                    | Type                                                                                                                        | Required             | Description                                                                                                                                                                                                                                                                                                                                                                                                          | Example                                                                                                            |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `cache_control`          | [Optional\[components.AnthropicCacheControlDirective\]](../components/anthropiccachecontroldirective.md)                    | :heavy\_minus\_sign: | Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. Currently supported for Anthropic Claude models.                                                                                                                                                                                                          | `{"type": "ephemeral"}`                                                                                            |
| `context_management`     | [OptionalNullable\[components.ContextManagement\]](../components/contextmanagement.md)                                      | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `max_tokens`             | *Optional\[int]*                                                                                                            | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `messages`               | List\[[components.MessagesMessageParam](/client-sdks/python/api-reference/components/messagesmessageparam)]                 | :heavy\_check\_mark: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `metadata`               | [Optional\[components.Metadata\]](../components/metadata.md)                                                                | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `model`                  | *str*                                                                                                                       | :heavy\_check\_mark: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `models`                 | List\[*str*]                                                                                                                | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `output_config`          | [Optional\[components.MessagesOutputConfig\]](../components/messagesoutputconfig.md)                                        | :heavy\_minus\_sign: | Configuration for controlling output behavior. Supports the effort parameter and structured output format.                                                                                                                                                                                                                                                                                                           | `{"effort": "medium"}`                                                                                             |
| `plugins`                | List\[[components.MessagesRequestPlugin](/client-sdks/python/api-reference/components/messagesrequestplugin)]               | :heavy\_minus\_sign: | Plugins you want to enable for this request, including their settings.                                                                                                                                                                                                                                                                                                                                               |                                                                                                                    |
| `provider`               | [OptionalNullable\[components.ProviderPreferences\]](../components/providerpreferences.md)                                  | :heavy\_minus\_sign: | When multiple model providers are available, optionally indicate your routing preference.                                                                                                                                                                                                                                                                                                                            | `{"allow_fallbacks": true}`                                                                                        |
| `service_tier`           | *Optional\[str]*                                                                                                            | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `session_id`             | *Optional\[str]*                                                                                                            | :heavy\_minus\_sign: | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). When provided, OpenRouter uses it as the sticky routing key, routing all requests in the session to the same provider to maximize prompt cache hits. Also used for observability grouping. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. |                                                                                                                    |
| `speed`                  | [OptionalNullable\[components.Speed\]](../components/speed.md)                                                              | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  | standard                                                                                                           |
| `stop_sequences`         | List\[*str*]                                                                                                                | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `stop_server_tools_when` | List\[[components.StopServerToolsWhenCondition](/client-sdks/python/api-reference/components/stopservertoolswhencondition)] | :heavy\_minus\_sign: | Stop conditions for the server-tool agent loop. Any condition firing halts the loop (OR logic). When set, this overrides `max_tool_calls`.                                                                                                                                                                                                                                                                           | \[<br />`{"step_count": 5,"type": "step_count_is"}`,<br />`{"max_cost_in_dollars": 0.5,"type": "max_cost"}`<br />] |
| `stream`                 | *Optional\[bool]*                                                                                                           | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `system`                 | [Optional\[components.System\]](../components/system.md)                                                                    | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `temperature`            | *Optional\[float]*                                                                                                          | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `thinking`               | [Optional\[components.Thinking\]](../components/thinking.md)                                                                | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `tool_choice`            | [Optional\[components.ToolChoice\]](../components/toolchoice.md)                                                            | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `tools`                  | List\[[components.MessagesRequestToolUnion](/client-sdks/python/api-reference/components/messagesrequesttoolunion)]         | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `top_k`                  | *Optional\[int]*                                                                                                            | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `top_p`                  | *Optional\[float]*                                                                                                          | :heavy\_minus\_sign: | N/A                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                    |
| `trace`                  | [Optional\[components.TraceConfig\]](../components/traceconfig.md)                                                          | :heavy\_minus\_sign: | Metadata for observability and tracing. Known keys (trace\_id, trace\_name, span\_name, generation\_name, parent\_span\_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations.                                                                                                                                                                       | `{"trace_id": "trace-abc123","trace_name": "my-app-trace"}`                                                        |
| `user`                   | *Optional\[str]*                                                                                                            | :heavy\_minus\_sign: | A unique identifier representing your end-user, which helps distinguish between different users of your app. This allows your app to identify specific users in case of abuse reports, preventing your entire app from being affected by the actions of individual users. Maximum of 256 characters.                                                                                                                 |                                                                                                                    |
