diff --git a/docs/my-website/docs/proxy/cost_tracking.md b/docs/my-website/docs/proxy/cost_tracking.md
index baebdf0f31d..b1e5eae2a62 100644
--- a/docs/my-website/docs/proxy/cost_tracking.md
+++ b/docs/my-website/docs/proxy/cost_tracking.md
@@ -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)
diff --git a/docs/my-website/docs/proxy/request_tags.md b/docs/my-website/docs/proxy/request_tags.md
index d8ec27410b3..b10b0c8da7c 100644
--- a/docs/my-website/docs/proxy/request_tags.md
+++ b/docs/my-website/docs/proxy/request_tags.md
@@ -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:
+
+
+
```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' \
}'
```
+
+
+
+
+```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"]
+ }
+ }'
+```
+
+
+
+
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:
+
+
+
+
+```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"]
+ }
+ }'
+```
+
+
+
+
+```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"]
+ }
+ }'
+```
+
+
+
+
+## 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