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

# Route

> Pin a default model for an organization or project.

Route picks the model used when a caller doesn't pass one. Define it once, change it without touching code.

A typical use: your app runs on `openai/gpt-5-mini` everywhere, then you switch a single high-stakes project to `anthropic/claude-opus-4-7` by editing one rule.

## Set up a rule

Open **Controls → Route** in [platform.opper.ai](https://platform.opper.ai). Each rule has one setting: the default model for that scope.

| Scope        | Applies to                     |
| ------------ | ------------------------------ |
| Organization | Every call in your org.        |
| Project      | Calls in one or more projects. |

The most specific rule wins. A project-level default overrides org-level.

The model picker only shows models allowed by [Comply](/control-plane/comply) at the same scope. If your allowlist denies every model, you'll see a prompt to broaden it first.

Leave the default blank ("Auto") and Opper picks based on the call's hints (`prefer: fast | cheap | quality | balanced`).

## Callers can still pick a model

Passing an explicit `model` works as long as Comply allows it. Use this for per-call trade-offs: cheaper models for background jobs, higher-quality ones for user-facing replies.

If the requested model isn't allowed, the call fails with a clear error. It doesn't silently fall back to the default.

## Where you see the result

A **Route** event appears on the [trace span](/control-plane/trace) with a Compass icon, status **Applied**, the rule name, and a scope badge. The model that actually ran shows in the span's Model field.

In the playground, the model picker is the per-call equivalent of a Route rule. Use **Compare models** to run the same input across several models in parallel before you change a rule. Turn on **Project controls** to test against your real allowlist.

<Tip>
  Keep model names out of application code. Pin defaults per scope and switch models by editing the rule.
</Tip>
