> ## 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. # ServerToolEngine ## Example Usage ```typescript theme={null} import { ServerToolEngine } from "@openrouter/sdk/models"; let value: ServerToolEngine = { byok: "none", dataRegions: [ "global", "us", ], defaultMode: "auto", executedBy: "openrouter", id: "exa", name: "Exa", pricing: [ { maxUnitsPerCall: 769230, mode: "auto", price: "0.007", unit: "request", }, ], pricingDocUrl: null, pricingSource: "openrouter", }; ``` ## Fields | Field | Type | Required | Description | Example | | - | - | - | - | - | | `byok` | [models.BYOK](../models/byok.mdx) | ✔️ | Whether the engine needs the caller's own key, saved in plugin settings: `required` (OpenRouter holds none), `optional` (OpenRouter's key is used unless the caller saved one), or `none` | none | | `dataRegions` | [models.ServerToolEngineDataRegion](../models/servertoolenginedataregion.mdx)\[] | ✔️ | The data regions whose requests this engine serves without leaving the region. A request pinned to a region can only use engines that list it; `global` is always listed. | \[ "global", "us" ] | | `defaultMode` | *string* | ✔️ | The `parameters.mode` a request without one runs and bills as; null for engines without modes. The `pricing[]` row with this `mode` is what an unmoded request bills | auto | | `executedBy` | [models.ServerToolExecutedBy](../models/servertoolexecutedby.mdx) | ✔️ | Who runs the tool call: the model provider during inference (`provider`), OpenRouter (`openrouter`), or the caller's application after the call is returned (`client`). | openrouter | | `id` | *string* | ✔️ | The `parameters.engine` value that selects this engine; null for the single engine of a tool without an engine parameter | exa | | `name` | *string* | ✔️ | N/A | Exa | | `pricing` | [models.ServerToolPrice](../models/servertoolprice.mdx)\[] | ✔️ | The rows OpenRouter bills; non-empty exactly when `pricing_source` is `openrouter` | | | `pricingDocUrl` | *string* | ✔️ | Where the rates are documented when `pricing_source` is `provider` or `byok`; null otherwise | null | | `pricingSource` | [models.PricingSource](../models/pricingsource.mdx) | ✔️ | Who bills the engine's calls beyond the model's tokens: `openrouter` (the `pricing` rows, from the caller's credits), `provider` (a per-call tool fee from the model's provider on the inference call, at its own rates), `byok` (the engine's vendor, against the caller's own key), or `none` (no charge) | openrouter |