docs: consolidate tag documentation and improve cross-references

- Make request_tags.md the single source of truth for all tag options
- Add cross-reference from cost_tracking.md to request_tags.md
- Document both direct tags and metadata.tags formats
- Add key/team tag setup and custom header tracking to request_tags.md
- Reduce duplication and make navigation clearer

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>
This commit is contained in:
Cursor Agent 2026-02-25 22:19:32 +00:00
parent 16b02ae93b
commit 89240dc0c2
2 changed files with 90 additions and 2 deletions

View file

@ -326,6 +326,10 @@ See our [Swagger API](https://litellm-api.up.railway.app/#/Budget%20%26%20Spend%
## Custom Tags
:::tip See Full Request Tags Documentation
For comprehensive documentation on all tag options including `x-litellm-tags` header, request body `tags`, and config-based tags, see the dedicated [Request Tags](./request_tags.md) page.
:::
Requirements:
- Virtual Keys & a database should be set up, see [virtual keys](https://docs.litellm.ai/docs/proxy/virtual_keys)

View file

@ -1,9 +1,16 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Request Tags for Spend Tracking
Add tags to model deployments to track spend by environment, AWS account, or any custom label.
Tags appear in the `request_tags` field of LiteLLM spend logs.
:::info Requirements
Virtual Keys & a database should be set up. See [Virtual Keys Setup](./virtual_keys.md).
:::
## Config Setup
Set tags on model deployments in `config.yaml`:
@ -62,7 +69,10 @@ The header accepts:
### Option 3: Use Request Body `tags`
Pass tags directly in the request body:
Pass tags directly in the request body. Both formats are supported:
<Tabs>
<TabItem value="direct" label="Direct tags Field">
```bash
curl -X POST 'http://0.0.0.0:4000/chat/completions' \
@ -75,12 +85,85 @@ curl -X POST 'http://0.0.0.0:4000/chat/completions' \
}'
```
</TabItem>
<TabItem value="metadata" label="Metadata Nested">
```bash
curl -X POST 'http://0.0.0.0:4000/chat/completions' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "Hello"}],
"metadata": {
"tags": ["team-stripe", "production", "us-east-1"]
}
}'
```
</TabItem>
</Tabs>
The `tags` field must be an array of strings.
:::info
When tags are provided via header or request body, they override any tags configured in the model deployment.
:::
## Set Tags on Keys or Teams
You can also set default tags at the API key or team level:
<Tabs>
<TabItem value="key" label="Set on Key">
```bash
curl -L -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"tags": ["customer-stripe", "tier-premium"]
}
}'
```
</TabItem>
<TabItem value="team" label="Set on Team">
```bash
curl -L -X POST 'http://0.0.0.0:4000/team/new' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"tags": ["team-engineering", "department-ai"]
}
}'
```
</TabItem>
</Tabs>
## Advanced: Custom Header Tracking
Track spend using any custom header by adding it to your config:
```yaml
litellm_settings:
extra_spend_tag_headers:
- "x-custom-header"
- "x-customer-id"
```
**Disable User-Agent tracking:**
```yaml
litellm_settings:
disable_add_user_agent_to_request_tags: true
```
## Spend Logs
The tag from the model config appears in `LiteLLM_SpendLogs`:
@ -96,5 +179,6 @@ The tag from the model config appears in `LiteLLM_SpendLogs`:
## Related
- [Spend Tracking Overview](cost_tracking.md)
- [Spend Tracking Overview](cost_tracking.md) - Complete tutorial on tracking spend with tags
- [Tag Budgets](tag_budgets.md) - Set budget limits per tag
- [Virtual Keys Setup](virtual_keys.md) - Required for tag tracking