报表 Key 保持只读
Dashboard 和 ETL 通常只需要 `team:read`、`members:read`、`apikeys:read`、`usage:read`、`pricing:read`,不需要写权限。
团队管理 API Key 是给团队 Owner 使用的自动化凭证。它和模型调用 API Key 分离,只能访问其 scopes 允许的管理接口。
只有团队 Owner 可以在控制台创建、轮换或吊销团队管理 API Key。
在控制台侧边栏进入 Team,再打开 Manage API。点击 Create key,填写名称并选择自动化任务需要的 scopes。
管理 Key 的 secret 只会显示一次。请保存到 secret manager 或部署环境变量,不要写进代码仓库。
如果 Key 可能泄露,立即 rotate 或 revoke。轮换会让旧 secret 失效,并显示新的 one-time secret。
请求时可以把 manager key 放在 Bearer token 或专用 header 里。
管理 Key 使用 `mk-lcx-` 前缀,不是模型调用 Key。不要把它发到 `/v1/chat/completions` 或任何模型网关接口。
生产环境必须走 HTTPS。根据 scope 不同,管理 Key 可以读取团队用量、成员和 Key 元数据,也可能调整团队 Key 限额,因此应按管理凭证对待。
团队管理 API 的响应会刻意省略 provider 元数据。API Key 响应会包含 `supported_model_ids`,方便自动化系统判断模型访问范围,但不会暴露 provider routing。
只给自动化任务所需的最小权限。
| Scope | 允许的能力 |
|---|---|
| team:read | 读取当前团队资料、credits、状态和折扣方案。 |
| members:read | 读取团队成员列表和成员级消费/限额信息。 |
| apikeys:read | 读取团队计费 API Key 列表、脱敏 key 值、限额和 `supported_model_ids`。 |
| apikeys:limits:write | 调整团队计费 API Key 的 QPM 和每日消费限额。 |
| usage:read | 读取团队用量汇总和请求级 usage logs。 |
| pricing:read | 读取当前团队折扣方案生效后的模型价格。 |
所有接口都会限制在该管理 Key 所属团队内。
| Method | Path | 所需 scope | 用途 |
|---|---|---|---|
| GET | /v1/team-management/team | team:read | 读取团队 credits、状态、折扣方案和消费摘要。 |
| GET | /v1/team-management/members | members:read | 读取团队成员和成员限额字段。 |
| GET | /v1/team-management/apikeys | apikeys:read | 读取团队计费 API Key。每条 item 包含 `supported_model_ids`。支持 `status`、`member_id`、`user_id`、`team_group_id` 过滤。 |
| PATCH | /v1/team-management/apikeys/{keyId}/limits | apikeys:limits:write | 更新团队计费 Key 的 `qpm_limit` 和/或 `daily_spend_limit`。响应包含更新后的 Key 元数据和 `supported_model_ids`。 |
| GET | /v1/team-management/usage | usage:read | 读取 UTC 用量总览、补零时间序列、模型分布、成员排行,以及可选的成员时间序列。 |
| GET | /v1/team-management/usage/logs | usage:read | 读取 UTC 分页请求级 usage logs。支持时间、模型和用户过滤。 |
| GET | /v1/team-management/pricing | pricing:read | 读取当前 UTC 时段的团队价格。命中分时定价时,基础价和团队折后价均已应用倍率;`time_pricing_multiplier_percent`、`time_pricing_start_utc`、`time_pricing_end_utc` 标识命中规则。 |
示例使用环境变量,避免把 secret 直接写进命令或代码。
export TEAM_MANAGER_KEY="mk-lcx-..."
curl https://lingcorex.ai/v1/team-management/members \
-H "Authorization: Bearer $TEAM_MANAGER_KEY"curl "https://lingcorex.ai/v1/team-management/apikeys?status=active" \
-H "Authorization: Bearer $TEAM_MANAGER_KEY"
# Response items 包含:
# id, user_id, user_email, masked_key,
# qpm_limit, daily_spend_limit, allowed_groups,
# supported_model_ids, team_group_id, created_at。
# 不返回 provider 字段。curl "https://lingcorex.ai/v1/team-management/usage?bucket=day&group_by=member&start_time=2026-06-01T00:00:00Z&end_time=2026-06-17T00:00:00Z" \
-H "Authorization: Bearer $TEAM_MANAGER_KEY"curl -X PATCH https://lingcorex.ai/v1/team-management/apikeys/14/limits \
-H "Authorization: Bearer $TEAM_MANAGER_KEY" \
-H "Content-Type: application/json" \
-d '{"qpm_limit":60,"daily_spend_limit":"1000.000000"}'usage 接口同时支持团队总览、成员 drill-down 和请求级排查。
curl "https://lingcorex.ai/v1/team-management/usage?bucket=day&start_time=2026-06-01T00:00:00Z&end_time=2026-06-17T00:00:00Z" \
-H "Authorization: Bearer $TEAM_MANAGER_KEY"
# 主要返回:
# - time_series: 团队每天一个点
# - models: 该时间窗口内按模型汇总 token 和 cost
# - members: 该时间窗口内成员排行
# - total_tokens / total_cost: 团队总量curl "https://lingcorex.ai/v1/team-management/usage?bucket=hour&start_time=2026-06-16T00:00:00Z&end_time=2026-06-17T00:00:00Z" \
-H "Authorization: Bearer $TEAM_MANAGER_KEY"
# 适合排查某天突然升高的用量。
# 返回结构和每日看板一致,
# 但 time_series 的 bucket 类似 "2026-06-16 14:00:00"。curl "https://lingcorex.ai/v1/team-management/usage?bucket=day&group_by=member&start_time=2026-06-01T00:00:00Z&end_time=2026-06-17T00:00:00Z" \
-H "Authorization: Bearer $TEAM_MANAGER_KEY"
# 会额外返回 member_time_series:
# [
# {
# "bucket": "2026-06-10",
# "member_id": 1,
# "user_email": "[email protected]",
# "request_count": 12,
# "total_tokens": 42000,
# "total_cost": "18.520000"
# }
# ]curl "https://lingcorex.ai/v1/team-management/usage?bucket=day&group_by=member&member_id=1&start_time=2026-06-01T00:00:00Z&end_time=2026-06-17T00:00:00Z" \
-H "Authorization: Bearer $TEAM_MANAGER_KEY"
# member_id 是下面接口返回的团队成员 id:
# GET /v1/team-management/members
#
# 该过滤会把 time_series、models、members、
# member_time_series 和 total_* 都收窄到这个成员。curl "https://lingcorex.ai/v1/team-management/usage/logs?page=1&limit=20&start_time=2026-06-01T00:00:00Z&end_time=2026-06-17T00:00:00Z" \
-H "Authorization: Bearer $TEAM_MANAGER_KEY"
# logs 适合看请求级记录:
# request_id, user_id, user_email, model,
# prompt_tokens, completion_tokens, total_cost, status, created_at。curl "https://lingcorex.ai/v1/team-management/usage/logs?model=gpt-5.3-codex&user_id=2&page=1&limit=50&start_time=2026-06-01T00:00:00Z&end_time=2026-06-17T00:00:00Z" \
-H "Authorization: Bearer $TEAM_MANAGER_KEY"
# user_id 是账户用户 id,不是 team member id。
# 当你已经从 /members 或 usage response 知道成员的 user_id 时,
# 可以用这种方式定位请求级记录。管理 Key 的设计目标应该是容易轮换,而不是泄露后难以排查。
Dashboard 和 ETL 通常只需要 `team:read`、`members:read`、`apikeys:read`、`usage:read`、`pricing:read`,不需要写权限。
报表使用一个 Key;需要调整 limits 的工作流使用另一个受控 Key。
管理 Key 应该只在后端服务、cron job 或可信自动化里使用,不要放进公开客户端代码。