跳至主要内容

消费跟踪

跟踪 100 多个 LLM 的密钥、用户和团队的支出。

LiteLLM 会自动跟踪所有已知模型的支出。请参阅我们的 模型成本图

保持定价数据更新

从 GitHub 同步模型定价数据,以确保准确的成本跟踪。

如何使用 LiteLLM 跟踪支出

步骤 1

👉 使用数据库设置 LiteLLM

步骤 2 发送 /chat/completions 请求

发送带有支出跟踪的请求
import openai
client = openai.OpenAI(
api_key="sk-1234",
base_url="http://0.0.0.0:4000"
)

response = client.chat.completions.create(
model="llama3",
messages = [
{
"role": "user",
"content": "this is a test request, write a short poem"
}
],
user="palantir", # OPTIONAL: pass user to track spend by user
extra_body={
"metadata": {
"tags": ["jobID:214590dsff09fds", "taskName:run_page_classification"] # ENTERPRISE: pass tags to track spend by tags
}
}
)

print(response)

步骤 3 - 验证跟踪的支出 就这样了。现在验证您的支出是否已被跟踪

预计会在响应头中看到 x-litellm-response-cost,其中包含计算出的成本

允许非代理管理员访问 /spend 端点

当您希望非代理管理员访问 /spend 端点时使用此功能

创建密钥

使用 permissions={"get_spend_routes": true} 创建密钥

生成带有支出路由权限的密钥
curl --location 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"permissions": {"get_spend_routes": true}
}'
/spend 端点上使用生成的密钥

使用新生成的密钥访问支出路由

curl -X GET 'https://:4000/global/spend/report?start_date=2024-04-01&end_date=2024-06-30' \
-H 'Authorization: Bearer sk-H16BKvrSNConSsBYLGc_7A'

重置团队、API 密钥支出 - 仅 MASTER 密钥

如果您希望,请使用 /global/spend/reset

  • 重置所有 API 密钥、团队的支出。LiteLLM_TeamTableLiteLLM_VerificationToken 中的所有团队和密钥的 spend 将设置为 spend=0

  • LiteLLM 将在 LiteLLMSpendLogs 中保留所有日志以供审计

请求

只有您设置的 LITELLM_MASTER_KEY 才能访问此路由

curl -X POST \
'https://:4000/global/spend/reset' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json'
预期响应
{"message":"Spend for all API Keys and Teams reset successfully","status":"success"}

每个用户的总支出

假设您已经为最终用户颁发了密钥,并在密钥上设置了他们的 user_id,您可以检查他们的使用情况。

获取用户支出 - API 请求
curl -L -X GET 'https://:4000/user/info?user_id=jane_smith' \
-H 'Authorization: Bearer sk-...'
用户总支出 API 响应
{
"user_id": "jane_smith",
"user_info": {
"spend": 0.1
},
"keys": [
{
"token": "6e952b0efcafbb6350240db25ed534b4ec6011b3e1ba1006eb4f903461fd36f6",
"key_name": "sk-...KE_A",
"key_alias": "user-01882d6b-e090-776a-a587-21c63e502670-01983ddb-872f-71a3-8b3a-f9452c705483",
"soft_budget_cooldown": false,
"spend": 0.1,
"expires": "2025-07-31T19:14:13.968000+00:00",
"models": [],
"aliases": {},
"config": {},
"user_id": "01982d6b-e090-776a-a587-21c63e502660",
"team_id": "f2044fde-2293-482f-bf35-a8dab4e85c5f",
"permissions": {},
"max_parallel_requests": null,
"metadata": {},
"blocked": null,
"tpm_limit": null,
"rpm_limit": null,
"max_budget": null,
"budget_duration": null,
"budget_reset_at": null,
"allowed_cache_controls": [],
"allowed_routes": [],
"model_spend": {},
"model_max_budget": {},
"budget_id": null,
"organization_id": null,
"object_permission_id": null,
"created_at": "2025-07-24T19:14:13.970000Z",
"created_by": "582b168f-fc11-4e14-ad6a-cf4bb3656ddc",
"updated_at": "2025-07-24T19:14:13.970000Z",
"updated_by": "582b168f-fc11-4e14-ad6a-cf4bb3656ddc",
"litellm_budget_table": null,
"litellm_organization_table": null,
"object_permission": null,
"team_alias": null
}
],
"teams": []
}

警告 最终用户可以在他们的请求主体中提供 user 参数,这样做会增加通过 /customer/info?end_user_id=self-declared-user 报告的成本,而不是通过该 API 报告的拥有该密钥的用户。这意味着用户可以通过他们的这种方法“避免”跟踪他们的支出。这意味着如果您需要跟踪用户支出,并且正在向最终用户提供 API 密钥,则必须始终在创建他们的 api 密钥时设置 user_id,并在后端服务中每次代表他们进行 LLM 调用时使用为该用户发出的密钥。这将跟踪他们的支出。

每日支出分解 API

使用单个端点检索用户的细粒度每日使用数据(按模型、提供商和 API 密钥)。

示例请求

每日支出明细 API
curl -L -X GET 'https://:4000/user/daily/activity?start_date=2025-03-20&end_date=2025-03-27' \
-H 'Authorization: Bearer sk-...'
每日支出明细 API 响应
{
"results": [
{
"date": "2025-03-27",
"metrics": {
"spend": 0.0177072,
"prompt_tokens": 111,
"completion_tokens": 1711,
"total_tokens": 1822,
"api_requests": 11
},
"breakdown": {
"models": {
"gpt-4o-mini": {
"spend": 1.095e-05,
"prompt_tokens": 37,
"completion_tokens": 9,
"total_tokens": 46,
"api_requests": 1
},
"providers": { "openai": { ... }, "azure_ai": { ... } },
"api_keys": { "3126b6eaf1...": { ... } }
}
}
],
"metadata": {
"total_spend": 0.7274667,
"total_prompt_tokens": 280990,
"total_completion_tokens": 376674,
"total_api_requests": 14
}
}

API Reference

请参阅我们的 Swagger API,了解有关 /user/daily/activity 端点的更多详细信息

自定义标签

要求

  • 应设置虚拟密钥和数据库,请参阅 虚拟密钥

注意: 默认情况下,LiteLLM 将跟踪 User-Agent 作为成本跟踪的自定义标签。这使得能够查看 Claude Code、Gemini CLI 等工具的使用情况。

客户端支出标签

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": ["tag1", "tag2", "tag3"]
}
}

'

为支出跟踪添加自定义标头

您可以添加自定义标头到请求中以跟踪支出和使用情况。

litellm_settings:
extra_spend_tag_headers:
- "x-custom-header"

禁用 user-agent 跟踪

您可以通过将 litellm_settings.disable_add_user_agent_to_request_tags 设置为 true 来禁用 user-agent 跟踪。

litellm_settings:
disable_add_user_agent_to_request_tags: true

✨ (企业版) 生成支出报告

用于向其他团队、客户、用户收费

使用 /global/spend/report 端点获取支出报告

示例请求

👉 密钥更改:指定 group_by=team

curl -X GET 'https://:4000/global/spend/report?start_date=2024-04-01&end_date=2024-06-30&group_by=team' \
-H 'Authorization: Bearer sk-1234'

示例响应

[
{
"group_by_day": "2024-04-30T00:00:00+00:00",
"teams": [
{
"team_name": "Prod Team",
"total_spend": 0.0015265,
"metadata": [ # see the spend by unique(key + model)
{
"model": "gpt-4",
"spend": 0.00123,
"total_tokens": 28,
"api_key": "88dc28.." # the hashed api key
},
{
"model": "gpt-4",
"spend": 0.00123,
"total_tokens": 28,
"api_key": "a73dc2.." # the hashed api key
},
{
"model": "chatgpt-v-2",
"spend": 0.000214,
"total_tokens": 122,
"api_key": "898c28.." # the hashed api key
},
{
"model": "gpt-3.5-turbo",
"spend": 0.0000825,
"total_tokens": 85,
"api_key": "84dc28.." # the hashed api key
}
]
}
]
}
]

📊 支出日志 API - 个人交易日志

/spend/logs 端点现在支持一个 summarize 参数,用于在使用日期过滤器时控制数据格式。

关键参数

参数描述
summarize新参数true(默认)= 聚合数据,false = 个人交易日志

示例

获取个人交易日志

获取个人交易日志
curl -X GET "https://:4000/spend/logs?start_date=2024-01-01&end_date=2024-01-02&summarize=false" \
-H "Authorization: Bearer sk-1234"

获取汇总数据(默认)

获取汇总支出数据
curl -X GET "https://:4000/spend/logs?start_date=2024-01-01&end_date=2024-01-02" \
-H "Authorization: Bearer sk-1234"

用例

  • summarize=false:分析仪表板、ETL 流程、详细审计跟踪
  • summarize=true:每日支出报告、高级成本跟踪(旧行为)

✨ 自定义支出日志元数据

将特定的键值对记录为支出日志元数据的一部分

信息

记录支出日志元数据中的特定键值对是企业功能。

要求

  • 应设置虚拟密钥和数据库,请参阅 虚拟密钥

用法 - 带有特殊支出日志元数据的 /chat/completions 请求

curl -L -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"spend_logs_metadata": {
"hello": "world"
}
}
}

'

查看带有自定义元数据的支出

/spend/logs 请求格式

curl -X GET "http://0.0.0.0:4000/spend/logs?request_id=<your-call-id" \ # e.g.: chatcmpl-9ZKMURhVYSi9D6r6PJ9vLcayIK0Vm
-H "Authorization: Bearer sk-1234"

/spend/logs 响应格式

[
{
"request_id": "chatcmpl-9ZKMURhVYSi9D6r6PJ9vLcayIK0Vm",
"call_type": "acompletion",
"metadata": {
"user_api_key": "example-api-key-123",
"user_api_key_alias": null,
"spend_logs_metadata": { # 👈 LOGGED CUSTOM METADATA
"hello": "world"
},
"user_api_key_team_id": null,
"user_api_key_user_id": "116544810872468347480",
"user_api_key_team_alias": null
},
}
]