> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trynito.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Server-Side Tools

> Tools Nito runs for you before the model answers.

A server-side tool is turned on with a request field. The gateway decides whether it should run, runs it, feeds the result to the model, and reports what happened in the response. No second call.

| | Server-side tools | Your function tools |
| - | - | - |
| **Who runs it** | Nito | Your code |
| **Enabled by** | `web_search`, `web_fetch`, or a hosted entry in `tools` | A `function` entry in `tools` |
| **Round trips** | One | Several ([Tool Calling](/api/features/tool-calling)) |

## The Tools

* [**Web search**](/api/features/server-side-tools/web-search): `web_search: true` or `tools: [{"type": "web_search"}]`.
* [**Web fetch**](/api/features/server-side-tools/web-fetch): `web_fetch: true` or `tools: [{"type": "web_fetch"}]`.
* [**File parser**](/api/features/server-side-tools/file-parser): extracts text from attached documents before the model runs.

Sending the same feature twice (field and `tools` entry) is rejected.

```json wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "model": "moonshotai/kimi-k3",
  "messages": [{ "role": "user", "content": "What changed in the latest release?" }],
  "web_search": true
}
```

## Response

* A `web_search` object with source metadata (`title`, `url`, `domain`, `date`, `snippet`), the effective `retrieval_mode`, and the retrieval request count.
* `usage.server_tool_use`: `web_search_requests`, `web_search_results`, `web_fetch_requests`. Omitted when no tool ran.

Tool use counts toward usage in addition to the model's tokens.

## Model Support

Per model: `supports_web_search` and `supports_web_fetch` on the catalog entry, `GET /v1/models?supports=web_search`. Enabling a tool on a model without it is rejected. Encrypted routes report both `false` because the final encrypted request cannot carry them.

## Related

<CardGroup cols={2}>
  <Card title="Web Search" icon="magnifying-glass" href="/api/features/server-side-tools/web-search">
    Search before the model answers.
  </Card>

  <Card title="Web Fetch" icon="link" href="/api/features/server-side-tools/web-fetch">
    Read a URL in the prompt.
  </Card>

  <Card title="File Parser" icon="file-lines" href="/api/features/server-side-tools/file-parser">
    Attached documents.
  </Card>

  <Card title="Tool Calling" icon="wrench" href="/api/features/tool-calling">
    Your own functions.
  </Card>
</CardGroup>

## Standalone API calls

For retrieval and parsing without inference, use [web search](/api/api-reference/endpoints/web/search), [web fetch](/api/api-reference/endpoints/web/fetch), or [document parsing](/api/api-reference/endpoints/documents/parse). These calls accept API credentials, require no model, and are billed independently of chat completions.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.