Skip to main content

Claude Code - Granular Cost Tracking

Track Claude Code usage by customer or tags using LiteLLM proxy. This enables granular cost attribution for billing, budgeting, and analytics.

How It Works​

Claude Code supports custom headers via ANTHROPIC_CUSTOM_HEADERS. LiteLLM automatically tracks requests with specific headers for cost attribution.

Why Set a Customer Header​

Without one, Claude Code still reaches customer tracking on its own. It sends a per-session JSON blob in metadata.user_id, which LiteLLM reads as a customer ID, so every session shows up as a separate customer and picks up its own copy of any default customer budget you have configured. Setting x-litellm-customer-id overrides that, since headers are checked before any request body field. If you would rather have that traffic carry no customer at all, see Restricting Which IDs Become Customers.

Tracking Options​

Choose how you want to attribute costs:

Track ByHeaderUse Case
Customerx-litellm-customer-idBill customers, per-user budgets
Tagsx-litellm-tagsProject tracking, cost centers, environments

Environment Variables​

VariableDescriptionExample
ANTHROPIC_BASE_URLLiteLLM proxy URLhttp://localhost:4000
ANTHROPIC_API_KEYLiteLLM API keysk-1234
ANTHROPIC_CUSTOM_HEADERSCustom headers (header-name: value format)See examples below

Option 1: Track by Customer​

Use this to attribute costs to specific customers or end-users.

export ANTHROPIC_BASE_URL=http://localhost:4000
export ANTHROPIC_API_KEY=sk-1234
export ANTHROPIC_CUSTOM_HEADERS="x-litellm-customer-id: claude-ishaan-local"

Option 2: Track by Tags​

Use this to attribute costs to projects, cost centers, or environments. Pass comma-separated tags.

export ANTHROPIC_BASE_URL=http://localhost:4000
export ANTHROPIC_API_KEY=sk-1234
export ANTHROPIC_CUSTOM_HEADERS="x-litellm-tags: project:acme,env:prod,team:backend"

Quick Start​

1. Set Environment Variables​

export ANTHROPIC_BASE_URL=http://localhost:4000
export ANTHROPIC_API_KEY=sk-1234
export ANTHROPIC_CUSTOM_HEADERS="x-litellm-customer-id: claude-ishaan-local"

2. Use Claude Code​

claude

All requests will now be tracked under the customer ID claude-ishaan-local.

3. View Usage in LiteLLM UI​

Navigate to the Logs tab in the LiteLLM UI.

Click on a request to see details.

Filter by customer ID to see all requests for that customer.

Supported Headers​

HeaderDescription
x-litellm-customer-idTrack by customer/end-user ID
x-litellm-end-user-idAlternative customer ID header
x-litellm-tagsComma-separated tags for cost attribution