管理员 API(Admin API)
Admin API 允许您通过编程方式访问团队数据,包括成员信息、用量指标和支出明细。该接口非常适合构建自定义控制面板、监控工具或与现有工作流集成。
信息
当前 API 处于首个发布版本。我们正根据用户反馈积极扩展功能,请随时告知我们您希望新增的端点!
认证机制
所有 API 请求均需使用 API 密钥进行认证。仅团队管理员可创建和管理 API 密钥。
创建 API 密钥
- 访问 cursor.com/dashboard → 设置 Tab → Cursor 管理 API 密钥
- 点击创建新的 API 密钥
- 为密钥设置描述性名称(例如 "用量看板集成")
- 立即复制生成的密钥 - 后续将无法再次查看!
密钥格式为: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)
获取团队成员
获取所有团队成员及其详细信息。
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
请求体
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
startDate | number | 是 | 起始时间戳(毫秒) |
endDate | number | 是 | 结束时间戳(毫秒) |
信息
日期范围不能超过 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 | 自动补全最常用的文件扩展名 |
clientVersion | Cursor 客户端版本 |
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
请求体参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
searchTerm | string | 否 | 用于筛选结果的搜索词(在用户名称和邮箱中进行搜索) |
sortBy | string | 否 | 排序字段。可选值:amount (金额)、date (日期)、user (用户)。默认值:date |
sortDirection | string | 否 | 排序方向。可选值:asc (升序)、desc (降序)。默认值:desc |
page | number | 否 | 页码(从 1 开始计数)。默认值:1 |
pageSize | number | 否 | 每页结果数量。 |
{
teamMemberSpend: {
spendCents: number; // 成员消费金额(美分)
fastPremiumRequests: number; // 快速高级版请求次数
name: string; // 成员姓名
email: string; // 成员邮箱
role: 'owner' | 'member' | 'free-owner'; // 角色类型
hardLimitOverrideDollars: number; // 硬限制覆盖金额(美元)
}[];
subscriptionCycleStart: number; // 订阅周期开始时间戳
totalMembers: number; // 总成员数
totalPages: number; // 总页数
}
响应字段详解
字段 | 描述 |
---|---|
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
}'