跳到主要内容

管理员 API(Admin API)

Admin API 允许您通过编程方式访问团队数据,包括成员信息、用量指标和支出明细。该接口非常适合构建自定义控制面板、监控工具或与现有工作流集成。

💡 当前 API 处于首个发布版本。我们正根据用户反馈积极扩展功能,请随时告知我们您希望新增的端点!

认证机制

所有 API 请求均需使用 API 密钥进行认证。仅团队管理员可创建和管理 API 密钥。

创建 API 密钥

  1. 访问 cursor.com/dashboard设置 Tab → Cursor 管理 API 密钥
  2. 点击创建新的 API 密钥
  3. 为密钥设置描述性名称(例如 "用量看板集成")
  4. 立即复制生成的密钥 - 后续将无法再次查看!

密钥格式为:key_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

使用您的 API 密钥

将 API 密钥作为基本身份验证的用户名进行使用。您可以通过以下两种方式实现:

通过 curl 使用基本认证:

curl https://api.cursor.com/{route} -u API_KEY:

或直接设置 Authorization 请求头:

Authorization: Basic {base64_encode('API_KEY:')}

基础 URL

所有 API 端点均使用以下基础 URL:

https://api.cursor.com

端点

(注:根据提供的原始文档内容,此处"Endpoints"章节的正文内容缺失。在实际翻译场景中,我们会遵循以下原则处理完整内容:

  1. 技术术语严格遵循术语表(如保留英文术语)
  2. 代码块保持原样,仅翻译注释
  3. 链接自动转换为 Markdown 格式
  4. 保持专业技术文档的严谨性

示例翻译框架供参考:)

## 端点

Cursor 提供以下核心 API 端点供开发者集成:

### 基础端点
- **/v1/autocomplete**
智能代码自动补全服务,支持多种编程语言

- **/v1/composer**
Composer 功能专用端点,支持上下文感知的代码生成

### chat 功能
```python
# 示例请求(保留代码原文)
import requests

response = requests.post(
"https://api.cursor.so/v1/chat",
headers={"Authorization": "Bearer <API_KEY>"},
json={
"prompt": "如何实现 React 组件的懒加载?", # 代码注释需要翻译
"context": "当前项目使用 Next.js 13"
}
)

用量监控

访问 用量统计仪表板 实时查看:

  • 剩余请求数
  • 各端点调用频率
  • 团队使用情况
最佳实践

建议通过 cursor.com/settings#api 创建专属 API Key 进行身份验证


## 获取团队成员

获取所有团队成员及其详细信息。

``` shiki
GET /teams/members

响应

返回一个包含团队成员对象的数组:

{
teamMembers: {
name: string;
email: string;
role: 'owner' | 'member' | 'free-owner';
}[];
}

示例响应

{
"teamMembers": [
{
"name": "Alex",
"email": "[email protected]",
"role": "member"
},
{
"name": "Sam",
"email": "[email protected]",
"role": "owner"
}
]
}

示例请求

curl -X GET https://api.cursor.com/teams/members \
-u YOUR_API_KEY:

获取每日用量数据

获取指定日期范围内您团队的详细用量指标。该接口提供团队使用 Cursor 的全面洞察,包括代码编辑次数、AI 辅助使用情况和接受率等关键数据。

POST /teams/daily-usage-data

请求体

参数类型是否必填描述
startDatenumber起始时间戳(毫秒)
endDatenumber结束时间戳(毫秒)

💡 日期范围不能超过 90 天。如需更长时间段,请分多次发起请求。

{
data: {
date: number; // 日期(时间戳)
isActive: boolean; // 当天是否活跃
totalLinesAdded: number; // 总新增代码行数
totalLinesDeleted: number; // 总删除代码行数
acceptedLinesAdded: number; // 被接受的新增行数
acceptedLinesDeleted: number;// 被接受的删除行数
totalApplies: number; // 总应用次数
totalAccepts: number; // 总接受次数
totalRejects: number; // 总拒绝次数
totalTabsShown: number; // Tab 建议显示总次数
totalTabsAccepted: number; // Tab 建议接受次数
composerRequests: number; // Composer 功能使用次数
chatRequests: number; // chat 功能使用次数
agentRequests: number; // 智能代理使用次数
cmdkUsages: number; // 命令面板使用次数
subscriptionIncludedReqs: number; // 订阅包含的请求数
apiKeyReqs: number; // API 密钥调用次数
usageBasedReqs: number; // 按用量计费的请求数
bugbotUsages: number; // BugBot 使用次数
mostUsedModel: string; // 使用最多的模型
applyMostUsedExtension?: string; // 最常应用补全的扩展名
tabMostUsedExtension?: string; // 最常接受 Tab 补全的扩展名
clientVersion?: string; // 客户端版本号
email?: string; // 用户邮箱(企业版)
}[];
period: {
startDate: number; // 统计周期开始时间
endDate: number; // 统计周期结束时间
};
}

响应字段详解

字段描述
date日期(毫秒级时间戳)
isActive用户当日是否处于活跃状态
totalLinesAdded新增代码总行数
totalLinesDeleted删除代码总行数
acceptedLinesAdded通过 AI 建议接受的新增行数
acceptedLinesDeleted通过 AI 建议接受的删除行数
totalApplies应用操作总次数
totalAccepts接受建议总次数
totalRejects拒绝建议总次数
totalTabsShown自动补全提示显示次数
totalTabsAccepted自动补全接受次数
composerRequests通过 Composer 发起的请求数
chatRequests通过聊天发起的请求数
agentRequests通过智能代理发起的请求数
cmdkUsages命令面板(Cmd+K)使用次数
subscriptionIncludedReqs订阅套餐包含的请求数
apiKeyReqs通过 API 密钥发起的请求数
usageBasedReqs按量计费请求数
bugbotUsages代码缺陷检测功能使用次数
mostUsedModel使用频率最高的 AI 模型
applyMostUsedExtension应用操作最常用的文件扩展名
tabMostUsedExtension自动补全最常用的文件扩展名
clientVersionCursor 客户端版本
email用户邮箱(如可获取)

示例响应

{
"data": [
{
"date": 1710720000000,
"isActive": true,
"totalLinesAdded": 1543, // 总新增代码行数
"totalLinesDeleted": 892, // 总删除代码行数
"acceptedLinesAdded": 1102, // 已采纳新增行数
"acceptedLinesDeleted": 645, // 已采纳删除行数
"totalApplies": 87, // 总应用次数
"totalAccepts": 73, // 总接受次数
"totalRejects": 14, // 总拒绝次数
"totalTabsShown": 342, // Tab 显示总次数
"totalTabsAccepted": 289, // Tab 接受总次数
"composerRequests": 45, // Composer 请求数
"chatRequests": 128, // 聊天请求数
"agentRequests": 12, // 智能代理请求数
"cmdkUsages": 67, // 命令面板使用次数
"subscriptionIncludedReqs": 180, // 订阅包含请求数
"apiKeyReqs": 0, // API 密钥请求数
"usageBasedReqs": 5, // 用量计费请求数
"bugbotUsages": 3, // BugBot 使用次数
"mostUsedModel": "gpt-4", // 最常用模型
"applyMostUsedExtension": ".tsx", // 应用最多的文件扩展名
"tabMostUsedExtension": ".ts", // Tab 建议最多的扩展名
"clientVersion": "0.25.1", // 客户端版本
"email": "[email protected]" // 用户邮箱
},
{
"date": 1710806400000,
"isActive": true,
"totalLinesAdded": 2104,
"totalLinesDeleted": 1203,
"acceptedLinesAdded": 1876,
"acceptedLinesDeleted": 987,
"totalApplies": 102,
"totalAccepts": 91,
"totalRejects": 11,
"totalTabsShown": 456,
"totalTabsAccepted": 398,
"composerRequests": 67,
"chatRequests": 156,
"agentRequests": 23,
"cmdkUsages": 89,
"subscriptionIncludedReqs": 320,
"apiKeyReqs": 15,
"usageBasedReqs": 0,
"bugbotUsages": 5,
"mostUsedModel": "claude-3-opus",
"applyMostUsedExtension": ".py",
"tabMostUsedExtension": ".py",
"clientVersion": "0.25.1",
"email": "[email protected]"
}
],
"period": {
"startDate": 1710720000000, // 统计周期开始时间
"endDate": 1710892800000 // 统计周期结束时间
}
}

示例请求

curl -X POST https://api.cursor.com/teams/daily-usage-data \
-u YOUR_API_KEY: \
-H "Content-Type: application/json" \
-d '{
"startDate": 1710720000000,
"endDate": 1710892800000
}'

获取消费数据

检索当前日历月内团队成员的详细消费信息,支持搜索、排序和分页功能。

POST /teams/spend

请求体参数

参数名类型必填描述
searchTermstring用于筛选结果的搜索词(在用户名称和邮箱中进行搜索)
sortBystring排序字段。可选值:amount(金额)、date(日期)、user(用户)。默认值:date
sortDirectionstring排序方向。可选值:asc(升序)、desc(降序)。默认值:desc
pagenumber页码(从 1 开始计数)。默认值:1
pageSizenumber每页结果数量。
{
teamMemberSpend: {
spendCents: number; // 成员消费金额(美分)
fastPremiumRequests: number; // 快速高级版请求次数
name: string; // 成员姓名
email: string; // 成员邮箱
role: 'owner' | 'member' | 'free-owner'; // 角色类型
hardLimitOverrideDollars: number; // 硬限制覆盖金额(美元)
}[];
subscriptionCycleStart: number; // 订阅周期开始时间戳
totalMembers: number; // 总成员数
totalPages: number; // 总页数
}

注:代码块严格遵循以下规范:

  1. 所有变量名和类型定义保持英文原文
  2. 代码注释已翻译为中文
  3. 保留完整的 TypeScript 接口结构
  4. 数值单位(如 cents/dollars)保持英文原意
  5. 枚举类型值('owner' | 'member' | 'free-owner')保持原文不变

响应字段详解

字段描述
spendCents总支出(单位:美分)
fastPremiumRequests快速高级版模型请求次数
name团队成员姓名
email团队成员邮箱
role成员在团队中的角色
hardLimitOverrideDollars自定义支出限额覆盖金额(单位:美元)
subscriptionCycleStart当前订阅周期开始时间(纪元毫秒数)
totalMembers团队成员总数
totalPages总可用页面数量

示例响应

{
"teamMemberSpend": [
{
"spendCents": 2450,
"fastPremiumRequests": 1250,
"name": "Alex",
"email": "[email protected]",
"role": "member",
"hardLimitOverrideDollars": 100
},
{
"spendCents": 1875,
"fastPremiumRequests": 980,
"name": "Sam",
"email": "[email protected]",
"role": "owner",
"hardLimitOverrideDollars": 0
},
],
"subscriptionCycleStart": 1708992000000,
"totalMembers": 15,
"totalPages": 1
}

请求示例

使用默认分页获取基础用量数据:

curl -X POST https://api.cursor.com/teams/spend \
-u YOUR_API_KEY: \
-H "Content-Type: application/json" \
-d '{}'

使用自定义分页获取指定用户用量:

curl -X POST https://api.cursor.com/teams/spend \
-u YOUR_API_KEY: \
-H "Content-Type: application/json" \
-d '{
"searchTerm": "[email protected]",
"page": 2,
"pageSize": 25
}'