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

# Model routing

> Choose project versions or registered provider models through the model field.

The first slash in `model` distinguishes a direct provider reference from a proxy model name.

## Proxy model names

```json theme={"system"}
{"model": "ticket-classifier"}
```

The proxy reads routing for version 1, chooses among targets with positive weights, replaces `model`, and calls the target's provider.

## Version pins

```json theme={"system"}
{"model": "ticket-classifier@v3"}
```

A pin resolves exactly version 3. It never falls forward to the latest version and never changes version 1. This makes a new version safe to test before application rollout.

## Direct provider calls

```json theme={"system"}
{"model": "openai/gpt-5.6-sol?reasoning_effort=medium"}
```

The prefix before the first slash selects a provider in the resolved W\&B entity. The remainder is the configured provider model ID; additional slashes are allowed.

Direct calls are useful for relabeling, judges, ad hoc comparisons, and validating provider setup. They bypass project routing, aren't attributed to any project, and aren't traced unless the request sets `wandb.project`. See [Metadata and traces](/model-distillation/proxy/metadata-and-traces).

## Entity resolution

The bearer key's default entity is used unless the body contains:

```json theme={"system"}
{
  "metadata": {
    "wandb.entity": "your-team"
  }
}
```

The requested value must be the caller's personal/default entity or one of their W\&B teams.

## Sticky weighted selection

Provide a conversation ID to keep all calls in one conversation on the same target for a routing revision:

```json theme={"system"}
{
  "metadata": {
    "wandb.thread_id": "conversation-4827"
  }
}
```

Changing the routing revision can intentionally move that key to a different target.

<Accordion title="API: Call a pinned project version (POST /chat/completions)">
  Use `alias@vN` in `model`. A direct provider call uses `provider/model-id` instead.

  ```bash theme={"system"}
  curl --request POST \
    --url "https://proxy.training.wandb.ai/v1/chat/completions" \
    --header "Authorization: Bearer $WANDB_API_KEY" \
    --header "Content-Type: application/json" \
    --data '{
      "model": "ticket-classifier@v2",
      "messages": [{"role": "user", "content": "Classify this request"}],
      "metadata": {"wandb.entity": "your-team"}
    }'
  ```

  See [Create a routed chat completion](/model-distillation/reference/proxy/chat-completions/create-a-routed-chat-completion) for the complete schema.
</Accordion>
