> ## 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 task versions or registered provider models through the model field.

The first slash in `model` distinguishes a direct provider reference from a task alias.

## Task aliases

```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 task weights and receive no task identity.

## 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 task 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) for the complete schema.
</Accordion>
