> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://openrouter.ai/docs/llms.txt.
> For full documentation content, see https://openrouter.ai/docs/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://openrouter.ai/docs/_mcp/server.

# W&B Weave

[Weights & Biases Weave](https://wandb.ai/site/weave) is an observability platform for tracking and evaluating LLM applications.

## Step 1: Get your W\&B API key

In W\&B, go to your [User Settings](https://wandb.ai/settings) and copy your API key.

## Step 2: Enable Broadcast in OpenRouter

Go to [Settings > Observability](https://openrouter.ai/settings/observability) and toggle **Enable Broadcast**.

![Enable Broadcast](https://files.buildwithfern.com/openrouter.docs.buildwithfern.com/docs/3e095d95758bab05594f468011be81b7d5a2fb19293fa91d5b3923d9f09b81d8/content/pages/features/broadcast/broadcast-enable.png)

## Step 3: Configure W\&B Weave

Click the edit icon next to **W\&B Weave** and enter:

* **Api Key**: Your W\&B API key
* **Entity**: Your W\&B username or team name
* **Project**: The project name where traces will be logged
* **Base Url** (optional): Default is `https://trace.wandb.ai`

![W\&B Weave Configuration](https://files.buildwithfern.com/openrouter.docs.buildwithfern.com/docs/8c4641a48f3473f905b4d002f888f3a3b678fd7d3b08123d28bf18e38b99567a/content/pages/features/broadcast/broadcast-weave-config.png)

## Step 4: Test and save

Click **Test Connection** to verify the setup. The configuration only saves if the test passes.

![W\&B Weave Configured](https://files.buildwithfern.com/openrouter.docs.buildwithfern.com/docs/7c23542342bffc7801e184bcd62f793991109b9ba4d68415e657de7584500c46/content/pages/features/broadcast/broadcast-weave-configured.png)

## Step 5: Send a test trace

Make an API request through OpenRouter and view the trace in W\&B Weave.

![W\&B Weave Trace](https://files.buildwithfern.com/openrouter.docs.buildwithfern.com/docs/5d0b78b2857428ab3e847836b9081d0eb7e6eb55e5d82ad9e32f21014c3ffc5f/content/pages/features/broadcast/broadcast-weave-trace.png)

## Custom Metadata

W\&B Weave supports custom attributes and structured inputs for organizing and analyzing your LLM calls.

### Supported Metadata Keys

| Key               | Weave Mapping                   | Description                                            |
| ----------------- | ------------------------------- | ------------------------------------------------------ |
| `trace_id`        | `openrouter_trace_id` attribute | Custom trace identifier stored in attributes           |
| `trace_name`      | `op_name`                       | Custom operation name displayed in the Weave call list |
| `generation_name` | `op_name`                       | Name for the LLM call                                  |

### Example

```json
{
  "model": "openai/gpt-4o",
  "messages": [{ "role": "user", "content": "Write a poem about AI..." }],
  "user": "user_12345",
  "session_id": "session_abc",
  "trace": {
    "trace_name": "Creative Writing Agent",
    "prompt_template": "poem_v2",
    "experiment_name": "creative_benchmark",
    "dataset_version": "1.0.0"
  }
}
```

### Attributes and Inputs

Weave organizes trace data into:

* **Attributes**: Metadata about the call (user IDs, organization IDs, trace identifiers, custom metadata)
* **Inputs**: The actual request data including messages, model parameters (temperature, max\_tokens, etc.)
* **Summary**: Token usage, costs, and timing metrics

### Additional Context

* The `user` field maps to `user_id` in attributes
* The `session_id` field maps to `session_id` in attributes
* Custom metadata keys from `trace` are merged into the call's attributes
* Model parameters (temperature, max\_tokens, top\_p) are included in inputs for easy filtering

## Privacy Mode

When [Privacy Mode](/docs/guides/features/broadcast#privacy-mode) is enabled for this destination, prompt and completion content is excluded from traces. All other trace data — token usage, costs, timing, model information, and custom metadata — is still sent normally. See [Privacy Mode](/docs/guides/features/broadcast#privacy-mode) for details.