> ## 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.

# ServerToolDetails

## Fields

| Field | Type | Required | Description | Example |
| - | - | - | - | - |
| `aliases` | List\[[components.ServerToolInputName](../components/servertoolinputname.mdx)] | :heavy\_check\_mark: | Every spelling accepted in `tools[].type` for this tool, including the canonical `id`, and what the call surfaces as under each | |
| `default_engine` | *Nullable\[str]* | :heavy\_check\_mark: | The engine a request without `parameters.engine` (or with `engine: "auto"`) runs on; `native` applies where the endpoint runs the tool itself, otherwise `fallback_engine`. A request pinned to a data region skips either engine when its `data_regions` does not list that region. Null for a tool without an engine parameter | native |
| `docs_url` | *str* | :heavy\_check\_mark: | N/A | |
| `engines` | List\[[components.ServerToolEngine](../components/servertoolengine.mdx)] | :heavy\_check\_mark: | N/A | |
| `fallback_engine` | *Nullable\[str]* | :heavy\_check\_mark: | The engine an unpinned request runs on when `default_engine` is `native` and the endpoint does not run the tool itself; null when there is no fallback | exa |
| `id` | *str* | :heavy\_check\_mark: | Canonical `openrouter:*` name; the stable `tools[].type` on every API format in `supported_api_formats` | openrouter:web\_search |
| `input_schema` | Dict\[str, *Any*] | :heavy\_check\_mark: | JSON Schema of the arguments the model emits when calling the tool | \{<br />"properties": \{},<br />"type": "object"<br />} |
| `name` | *str* | :heavy\_check\_mark: | N/A | Web search |
| `native_support` | [components.NativeSupport](../components/nativesupport.mdx) | :heavy\_check\_mark: | Endpoints whose provider runs this tool itself during inference. Zero for tools no provider runs natively. | \{<br />"endpoint\_count": 18,<br />"model\_count": 12<br />} |
| `output_schema` | Dict\[str, *Any*] | :heavy\_check\_mark: | JSON Schema of the result returned to the model; null when undeclared | \{<br />"properties": \{},<br />"type": "object"<br />} |
| `parameters_schema` | Dict\[str, *Any*] | :heavy\_check\_mark: | JSON Schema for the caller-side `tools[].parameters` object | \{<br />"properties": \{},<br />"type": "object"<br />} |
| `status` | [components.ServerToolDetailsStatus](../components/servertooldetailsstatus.mdx) | :heavy\_check\_mark: | N/A | active |
| `summary` | *str* | :heavy\_check\_mark: | One sentence for cards and search results; never sent to a model | |
| `supported_api_formats` | List\[[components.ServerToolDetailsSupportedAPIFormat](../components/servertooldetailssupportedapiformat.mdx)] | :heavy\_check\_mark: | N/A | |
| `tool_description` | *str* | :heavy\_check\_mark: | The description sent upstream as the function tool description | |
