> ## 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) | :heavy\_check\_mark: | 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)\[] | :heavy\_check\_mark: | 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. | \[<br />"global",<br />"us"<br />] |
| `defaultMode` | *string* | :heavy\_check\_mark: | 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) | :heavy\_check\_mark: | 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* | :heavy\_check\_mark: | The `parameters.engine` value that selects this engine; null for the single engine of a tool without an engine parameter | exa |
| `name` | *string* | :heavy\_check\_mark: | N/A | Exa |
| `pricing` | [models.ServerToolPrice](../models/servertoolprice.mdx)\[] | :heavy\_check\_mark: | The rows OpenRouter bills; non-empty exactly when `pricing_source` is `openrouter` | |
| `pricingDocUrl` | *string* | :heavy\_check\_mark: | Where the rates are documented when `pricing_source` is `provider` or `byok`; null otherwise | null |
| `pricingSource` | [models.PricingSource](../models/pricingsource.mdx) | :heavy\_check\_mark: | 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 |
