> ## 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.
# W&B Weave
> Send traces to 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**.
## 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`
## Step 4: Test and save
Click **Test Connection** to verify the setup. The configuration only saves if the test passes.
## Step 5: Send a test trace
Make an API request through OpenRouter and view the trace in W\&B Weave.
## 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 lines theme={null}
{
"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.