Analytics API 可全面洞察團隊的 Cursor 用量,包括 AI 輔助編碼指標、活躍用戶、模型用量等。
- Analytics API 使用 Basic 認證。大多數端點需要具有
admin:*權限範圍的管理員 API 密鑰。Bugbot 評審分析需要read:*權限範圍。可在 Cursor Dashboard → API Keys 中生成密鑰。 - 有關身份驗證、速率限制和最佳實踐的詳情,請參閱 API Overview。
- 可用性:僅限企業版團隊使用
可用端點¶
智能體編輯¶
/analytics/team/agent-edits
獲取你的團隊在 Cursor 中接受 AI 建議代碼編輯的相關指標。
參數¶
startDate string
分析時段的起始日期 (默認值:7 天前) 。請參閱 日期格式
endDate string
分析時段的結束日期 (默認值:今日) 。請參閱 日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/agent-edits" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"event_date": "2025-01-15",
"total_suggested_diffs": 145,
"total_accepted_diffs": 98,
"total_rejected_diffs": 47,
"total_green_lines_accepted": 820,
"total_red_lines_accepted": 160,
"total_green_lines_rejected": 210,
"total_red_lines_rejected": 60,
"total_green_lines_suggested": 1030,
"total_red_lines_suggested": 220,
"total_lines_suggested": 1250,
"total_lines_accepted": 980
},
{
"event_date": "2025-01-16",
"total_suggested_diffs": 132,
"total_accepted_diffs": 89,
"total_rejected_diffs": 43,
"total_green_lines_accepted": 740,
"total_red_lines_accepted": 150,
"total_green_lines_rejected": 185,
"total_red_lines_rejected": 55,
"total_green_lines_suggested": 925,
"total_red_lines_suggested": 175,
"total_lines_suggested": 1100,
"total_lines_accepted": 890
}
],
"params": {
"metric": "agent-edits",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
Tab 用量¶
/analytics/team/tabs
獲取團隊 Tab 自動補全用量指標。
參數¶
startDate string
分析時段的起始日期 (默認:7 天前) 。參見 日期格式
endDate string
分析時段的結束日期 (默認:今天) 。參見 日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/tabs" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"event_date": "2025-01-15",
"total_suggestions": 5420,
"total_accepts": 3210,
"total_rejects": 2210,
"total_green_lines_accepted": 4120,
"total_red_lines_accepted": 2000,
"total_green_lines_rejected": 1480,
"total_red_lines_rejected": 730,
"total_green_lines_suggested": 5600,
"total_red_lines_suggested": 2740,
"total_lines_suggested": 8340,
"total_lines_accepted": 6120
},
{
"event_date": "2025-01-16",
"total_suggestions": 4980,
"total_accepts": 3050,
"total_rejects": 1930,
"total_green_lines_accepted": 3890,
"total_red_lines_accepted": 1890,
"total_green_lines_rejected": 1350,
"total_red_lines_rejected": 580,
"total_green_lines_suggested": 5240,
"total_red_lines_suggested": 2650,
"total_lines_suggested": 7890,
"total_lines_accepted": 5780
}
],
"params": {
"metric": "tabs",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
每日活躍用戶 (DAU)¶
/analytics/team/dau
獲取團隊的每日活躍用戶數。DAU 是指某一天內使用過 Cursor 的唯一用戶數。
活躍用戶是指在 Cursor 中至少使用過一項 AI 功能的用戶。
響應包含 Cursor 命令行界面、Cloud Agents 和 BugBot 的 DAU 細分指標。
參數¶
startDate string
分析時段的起始日期 (默認:7 天前) 。參見 日期格式
endDate string
分析時段的結束日期 (默認:今天) 。參見 日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/dau?startDate=14d&endDate=today" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"date": "2025-01-15",
"dau": 42,
"cli_dau": 5,
"cloud_agent_dau": 37,
"bugbot_dau": 10
},
{
"date": "2025-01-16",
"dau": 38,
"cli_dau": 4,
"cloud_agent_dau": 34,
"bugbot_dau": 12
}
],
"params": {
"metric": "dau",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
客戶端版本¶
/analytics/team/client-versions
獲取團隊所使用的 Cursor 客戶端版本分佈 (默認統計過去 7 天) 。對於每位用戶,我們會報告其每天使用的最新版本 (如果用戶安裝了多個版本,則報告最新安裝的版本) 。
參數¶
startDate string
分析時段的起始日期 (默認:7 天前) 。參見 日期格式
endDate string
分析時段的結束日期 (默認:今天) 。參見 日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/client-versions" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"event_date": "2025-01-01",
"client_version": "0.42.3",
"user_count": 35,
"percentage": 0.833
},
{
"event_date": "2025-01-01",
"client_version": "0.42.2",
"user_count": 7,
"percentage": 0.167
}
],
"params": {
"metric": "client-versions",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
模型用量¶
/analytics/team/models
獲取團隊中 AI 模型用量的指標。
參數¶
startDate string
分析時段的起始日期 (默認值:7 天前) 。請參閱 日期格式
endDate string
分析時段的結束日期 (默認值:今日) 。請參閱 日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/models" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"date": "2025-01-15",
"model_breakdown": {
"claude-sonnet-4.5": {
"messages": 1250,
"users": 28
},
"gpt-4o": {
"messages": 450,
"users": 15
},
"claude-opus-4.5": {
"messages": 320,
"users": 12
}
}
},
{
"date": "2025-01-16",
"model_breakdown": {
"claude-sonnet-4.5": {
"messages": 1180,
"users": 26
},
"gpt-4o": {
"messages": 420,
"users": 14
}
}
}
],
"params": {
"metric": "models",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
熱門文件擴展名¶
/analytics/team/top-file-extensions
獲取團隊在 Cursor 中編輯最頻繁的文件。按建議數量返回每天排名前 5 的文件擴展名。
參數¶
startDate string
分析時段的起始日期 (默認值:7 天前) 。參閱 日期格式
endDate string
分析時段的結束日期 (默認值:今日) 。參閱 日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/top-file-extensions?startDate=30d&endDate=today" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"event_date": "2025-01-15",
"file_extension": "tsx",
"total_files": 156,
"total_accepts": 98,
"total_rejects": 45,
"total_lines_suggested": 3230,
"total_lines_accepted": 2340,
"total_lines_rejected": 890
},
{
"event_date": "2025-01-15",
"file_extension": "ts",
"total_files": 142,
"total_accepts": 89,
"total_rejects": 38,
"total_lines_suggested": 2850,
"total_lines_accepted": 2100,
"total_lines_rejected": 750
}
],
"params": {
"metric": "top-files",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
MCP 採用率¶
/analytics/team/mcp
獲取團隊 MCP (模型上下文協議) 工具採用情況的指標。返回按工具名稱和 MCP 服務器名稱細分的每日採用數量。
參數¶
startDate string
分析時段的起始日期 (默認值:7 天前) 。參閱 日期格式
endDate string
分析時段的結束日期 (默認值:今日) 。參閱 日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如:alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/mcp" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"event_date": "2025-01-15",
"tool_name": "read_file",
"mcp_server_name": "filesystem",
"usage": 245
},
{
"event_date": "2025-01-15",
"tool_name": "search_web",
"mcp_server_name": "brave-search",
"usage": 128
},
{
"event_date": "2025-01-16",
"tool_name": "read_file",
"mcp_server_name": "filesystem",
"usage": 231
}
],
"params": {
"metric": "mcp",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
命令採用率¶
/analytics/team/commands
獲取團隊中 Cursor 命令採用情況的指標。返回按命令名稱細分的每日採用數量。
參數¶
startDate string
分析時段的起始日期 (默認值:7 天前) 。參閱 日期格式
endDate string
分析時段的結束日期 (默認值:今日) 。參閱 日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件地址或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/commands" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"event_date": "2025-01-15",
"command_name": "explain",
"usage": 89
},
{
"event_date": "2025-01-15",
"command_name": "refactor",
"usage": 45
},
{
"event_date": "2025-01-16",
"command_name": "explain",
"usage": 92
}
],
"params": {
"metric": "commands",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
方案模式採用率¶
/analytics/team/plans
獲取團隊中 Plan 模式採用情況的指標。返回按生成方案所用 AI 模型細分的每日採用數量。
當用戶啓用 Auto model selection 時,API 會返回 default 作爲模型名稱。這對應於用戶在 Cursor 界面中看到的“Auto”。
參數¶
startDate string
分析時段的起始日期 (默認值:7 天前) 。參閱 日期格式
endDate string
分析時段的結束日期 (默認值:今日) 。參閱 日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/plans" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"event_date": "2025-01-15",
"model": "claude-sonnet-4.5",
"usage": 156
},
{
"event_date": "2025-01-15",
"model": "default",
"usage": 42
},
{
"event_date": "2025-01-16",
"model": "claude-sonnet-4.5",
"usage": 148
}
],
"params": {
"metric": "plans",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
技能採用率¶
/analytics/team/skills
獲取整個團隊的技能採用率指標。返回按技能名稱細分的每日採用數量。
參數¶
startDate string
分析時段的起始日期 (默認值:7 天前) 。請參閱日期格式
endDate string
分析時段的結束日期 (默認值:今日) 。請參閱日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/skills" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"event_date": "2025-01-15",
"skill_name": "react-best-practices",
"usage": 53
},
{
"event_date": "2025-01-15",
"skill_name": "usage-billing",
"usage": 41
},
{
"event_date": "2025-01-16",
"skill_name": "react-best-practices",
"usage": 48
}
],
"params": {
"metric": "skills",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
Ask 模式採用率¶
/analytics/team/ask-mode
獲取團隊 Ask 模式採用率指標。返回按用於 Ask 模式查詢的 AI 模型細分的每日採用數量。
參數¶
startDate string
分析時段的起始日期 (默認:7 天前) 。參見 日期格式
endDate string
分析時段的結束日期 (默認:今天) 。參見 日期格式
users string
將數據篩選爲指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/team/ask-mode" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"event_date": "2025-01-15",
"model": "claude-sonnet-4.5",
"usage": 203
},
{
"event_date": "2025-01-15",
"model": "gpt-4o",
"usage": 67
},
{
"event_date": "2025-01-16",
"model": "claude-sonnet-4.5",
"usage": 198
}
],
"params": {
"metric": "ask-mode",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31"
}
}
對話洞察¶
/analytics/team/conversation-insights
獲取儀表盤中顯示的彙總對話洞察數據。此端點返回彙總洞察,不返回原始對話導出數據或原始對話內容。
僅適用於已啓用對話洞察的企業版團隊。如果在團隊設置中開啓了 禁用對話洞察,此端點將返回 401。
如需按用戶篩選,請使用團隊級端點中介紹的通用 users 查詢參數。SCIM 羣組篩選僅在儀表盤 UI 中可用,Analytics API 不支持。
intents 和 complexity 描述完整對話。
categories、guidanceLevels 和 workTypes 描述對話各片段中的工作內容。
參數¶
startDate string
分析週期的開始日期 (默認值:7 天前) 。參見日期格式
endDate string
分析週期的結束日期 (默認值:今日) 。參見日期格式
include string | string[]
必填。選擇要返回的對話洞察維度。支持的值包括:intents、complexity、categories、guidanceLevels 和 workTypes。可將 include 作爲以逗號分隔的列表傳入,例如 include=intents,complexity;也可重複傳入,例如 include=intents&include=workTypes。
users string
可選。將對話洞察篩選爲特定用戶。傳入以逗號分隔的電子郵件地址或用戶 ID,例如 users=alice@example.com,user_abc123。
curl -X GET "https://api.cursor.com/analytics/team/conversation-insights?startDate=2026-03-01&endDate=2026-03-07&include=intents,complexity,categories,guidanceLevels,workTypes&users=alice@example.com,bob@example.com" \
-u YOUR_API_KEY:
響應:
{
"data": {
"intents": {
"distribution": [
{
"intent": "Write Code",
"count": 18
},
{
"intent": "Ask",
"count": 7
},
{
"intent": "Plan",
"count": 3
}
],
"topValues": [
{
"intent": "Write Code",
"count": 18
},
{
"intent": "Ask",
"count": 7
}
],
"timeSeries": [
{
"date": "2026-03-01",
"intent": "Ask",
"count": 2
},
{
"date": "2026-03-02",
"intent": "Write Code",
"count": 6
}
],
"subcategories": {
"askMode": [
{
"subcategory": "error_fix",
"count": 4
}
],
"planMode": [
{
"subcategory": "implementation",
"count": 3
}
],
"writeCode": [
{
"subcategory": "feature",
"count": 11
}
]
}
},
"complexity": {
"distribution": [
{
"complexity": "high",
"count": 12
},
{
"complexity": "medium",
"count": 10
}
],
"timeSeries": [
{
"date": "2026-03-01",
"complexity": "medium",
"count": 4
},
{
"date": "2026-03-02",
"complexity": "high",
"count": 5
}
]
},
"categories": {
"distribution": [
{
"category": "New Features",
"count": 9
},
{
"category": "Bug Fixing & Debugging",
"count": 6
}
],
"timeSeries": [
{
"date": "2026-03-01",
"category": "Bug Fixing & Debugging",
"count": 2
},
{
"date": "2026-03-02",
"category": "New Features",
"count": 4
}
]
},
"guidanceLevels": {
"distribution": [
{
"guidanceLevel": "high",
"count": 8
},
{
"guidanceLevel": "medium",
"count": 7
}
],
"timeSeries": [
{
"date": "2026-03-01",
"guidanceLevel": "medium",
"count": 3
},
{
"date": "2026-03-02",
"guidanceLevel": "high",
"count": 4
}
]
},
"workTypes": {
"distribution": [
{
"workType": "new_feature",
"count": 9
},
{
"workType": "bug",
"count": 6
}
],
"timeSeries": [
{
"date": "2026-03-01",
"workType": "bug",
"count": 2
},
{
"date": "2026-03-02",
"workType": "new_feature",
"count": 4
}
]
}
},
"params": {
"metric": "conversation-insights",
"teamId": 12345,
"startDate": "2026-03-01",
"endDate": "2026-03-07",
"include": [
"intents",
"complexity",
"categories",
"guidanceLevels",
"workTypes"
]
}
}
排行榜¶
/analytics/team/leaderboard
獲取按 AI 用量指標排名的團隊成員排行榜。
行爲:
- 不篩選用戶:返回按指定指標排名的用戶 (默認值:已接受代碼行數總計)
- 篩選用戶:返回符合篩選條件的用戶 (並顯示其實際的團隊總排名)
- 支持對成員較多的團隊進行分頁
參數¶
startDate string
分析週期的起始日期 (默認值:7 天前) 。參閱 日期格式
endDate string
分析週期的結束日期 (默認值:今日) 。參閱 日期格式
page number
分頁頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:10,最大值:500)
users string
篩選指定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
Tab 自動補全和智能體編輯分別返回各自的排行榜。按用戶篩選時,這些用戶會顯示其實際的團隊總排名,而非篩選後的排名。例如,如果請求的用戶總排名爲第 45 名,則會顯示爲 rank: 45。
# 獲取排行榜第 1 頁(前 10 名用戶)
curl -X GET "https://api.cursor.com/analytics/team/leaderboard" \
-u YOUR_API_KEY:
# 使用自定義頁面大小獲取第二頁
curl -X GET "https://api.cursor.com/analytics/team/leaderboard?page=2&pageSize=20" \
-u YOUR_API_KEY:
# 按指定用戶篩選
curl -X GET "https://api.cursor.com/analytics/team/leaderboard?users=alice@example.com,bob@example.com" \
-u YOUR_API_KEY:
響應:
{
"data": {
"tab_leaderboard": {
"data": [
{
"email": "alice@example.com",
"user_id": "user_abc123",
"profile_picture_url": "https://example.com/avatars/alice.jpg",
"total_accepts": 1334,
"total_lines_accepted": 3455,
"total_lines_suggested": 15307,
"line_acceptance_ratio": 0.2256519892590384,
"accept_ratio": 0.2330827067669173,
"rank": 1
},
{
"email": "bob@example.com",
"user_id": "user_def789",
"profile_picture_url": "https://example.com/avatars/bob.jpg",
"total_accepts": 796,
"total_lines_accepted": 2090,
"total_lines_suggested": 7689,
"line_acceptance_ratio": 0.2718168812589414,
"accept_ratio": 0.2731256599787746,
"rank": 2
}
],
"total_users": 142
},
"agent_leaderboard": {
"data": [
{
"email": "alice@example.com",
"user_id": "user_abc123",
"profile_picture_url": "https://example.com/avatars/alice.jpg",
"total_accepts": 914,
"total_lines_accepted": 65947,
"total_lines_suggested": 201467,
"line_acceptance_ratio": 0.3273465219182842,
"rank": 1
},
{
"email": "bob@example.com",
"user_id": "user_def789",
"profile_picture_url": "https://example.com/avatars/bob.jpg",
"total_accepts": 843,
"total_lines_accepted": 61709,
"total_lines_suggested": 51092,
"line_acceptance_ratio": 1.2077924536684573,
"rank": 2
}
],
"total_users": 142
}
},
"pagination": {
"page": 1,
"pageSize": 10,
"totalUsers": 142,
"totalPages": 15,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "leaderboard",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 10
}
}
Bugbot 使用分析¶
/analytics/team/bugbot
獲取團隊中每個 PR 的 Bugbot 評審分析數據,包括按嚴重程度統計的問題數量以及已解決的問題數量。
如需獲取包含計費成本和各項發現的單次評審數據,請使用 Bugbot 評審分析。
參數¶
startDate string
分析週期的起始日期 (默認:7 天前) 。詳見 日期格式
endDate string
分析週期的結束日期 (默認:今天) 。詳見 日期格式
prState string
PR 狀態篩選條件。允許值:merged 或 all。默認值:merged。僅查看已合併 PR 的分析數據時使用 merged;查看所有 PR 狀態的分析數據時使用 all。
repo string
可選的代碼倉庫篩選條件。接受完整 URL 或 host/path 格式 (例如 https://github.com/org/repo.git 或 github.com/org/repo) 。將規範化爲 host/owner/repo。
page number
分頁頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁 PR 數量 (默認值:100,最大值:250)
# 獲取過去 7 天的 Bugbot PR 使用分析(默認時間窗口)
curl -X GET "https://api.cursor.com/analytics/team/bugbot" \
-u YOUR_API_KEY:
# 按代碼倉庫和日期範圍篩選
curl -X GET "https://api.cursor.com/analytics/team/bugbot?repo=github.com/acme/app&startDate=2025-01-01&endDate=2025-01-31" \
-u YOUR_API_KEY:
# 對結果進行分頁
curl -X GET "https://api.cursor.com/analytics/team/bugbot?page=2&pageSize=50" \
-u YOUR_API_KEY:
響應:
{
"data": [
{
"repo": "github.com/acme/app",
"pr_number": 42,
"timestamp": "2025-01-21T00:00:00.000Z",
"reviews": 3,
"issues": {
"total": 5,
"by_severity": {
"high": 1,
"medium": 2,
"low": 2
}
},
"issues_resolved": {
"total": 2,
"by_severity": {
"high": 1,
"medium": 1,
"low": 0
}
}
}
],
"pagination": {
"page": 1,
"pageSize": 100,
"totalItems": 1,
"totalPages": 1,
"hasNextPage": false,
"hasPreviousPage": false
},
"params": {
"metric": "bugbot",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"repo": "github.com/acme/app",
"prState": "merged",
"page": 1,
"pageSize": 100
}
}
Bugbot 評審使用分析¶
/analytics/team/bugbot-reviews
每個已完成的 Bugbot 評審返回一條記錄,包括已評審的 commit、finding 數量、計費費用以及每個 finding 的解決數據。
包括已發佈的評審和 Dry-run 評審。已發佈的 finding 通過 comment_id 和 resolution_status 標識。Dry-run finding 則返回 title、description 和 locations,因爲不會向 SCM 發佈任何內容。
需要具有 read:* 範圍的 API 密鑰。
參數¶
startDate string
使用分析範圍的開始時間。默認值爲 7 天前。參閱 日期格式。
endDate string
使用分析範圍的結束時間。默認值爲 now。參閱 日期格式。
repo string
可選的代碼倉庫篩選條件,格式爲 host/owner/repo。協議和 .git 後綴均可省略。
prNumber number
可選的 PR 或合併請求編號。
page number
分頁頁碼 (從 1 開始) 。默認值:1。
pageSize number
每頁評審數量。默認值:100,最大值:250。
dryRun boolean
可選篩選條件,僅篩選 Dry-run (true) 或已發佈 (false) 的評審。
curl --get https://api.cursor.com/analytics/team/bugbot-reviews \
-u YOUR_API_KEY: \
--data-urlencode 'startDate=2026-06-01' \
--data-urlencode 'endDate=2026-06-29' \
--data-urlencode 'repo=github.com/your-org/your-repo' \
--data-urlencode 'prNumber=42' \
--data-urlencode 'page=1' \
--data-urlencode 'pageSize=100'
curl --get https://api.cursor.com/analytics/team/bugbot-reviews \
-u YOUR_API_KEY: \
--data-urlencode 'dryRun=true' \
--data-urlencode 'repo=github.com/your-org/your-repo' \
--data-urlencode 'prNumber=42'
響應 (已發佈的評審) :
{
"data": [
{
"request_id": "6e0d261c-86a2-4383-89f0-9162c1c10662",
"timestamp": "2026-06-29T19:42:18.000Z",
"repo": "github.com/your-org/your-repo",
"repo_node_id": "R_kgDOABCDEF",
"pr_number": 42,
"commit_sha": "9f3c2a1b7d8e4f5061728394a5b6c7d8e9f0a1b2",
"bugs_found": 2,
"cost_cents": 42.5,
"dry_run": false,
"publication_status": "posted",
"bugs": [
{
"comment_id": "2147483999",
"resolution_status": "resolved",
"severity": "high"
},
{
"comment_id": "2147484000",
"resolution_status": "unresolved",
"severity": "medium"
}
]
}
],
"pagination": {
"page": 1,
"pageSize": 100,
"totalItems": 1,
"totalPages": 1,
"hasNextPage": false,
"hasPreviousPage": false
},
"params": {
"metric": "bugbot-reviews",
"teamId": 12345,
"startDate": "2026-06-01",
"endDate": "2026-06-29",
"repo": "github.com/your-org/your-repo",
"prNumber": 42,
"page": 1,
"pageSize": 100
}
}
響應 (Dry-run 評審) :
{
"data": [
{
"request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "2026-06-29T20:15:03.000Z",
"repo": "github.com/your-org/your-repo",
"repo_node_id": "R_kgDOABCDEF",
"pr_number": 42,
"commit_sha": "9f3c2a1b7d8e4f5061728394a5b6c7d8e9f0a1b2",
"bugs_found": 1,
"cost_cents": null,
"dry_run": true,
"publication_status": "dry_run",
"bugs": [
{
"comment_id": null,
"resolution_status": null,
"severity": "medium",
"title": "Unbounded retry loop",
"description": "retry() recurses without a ceiling.",
"locations": [
{ "file": "src/net.ts", "start_line": 5, "end_line": 9 }
]
}
]
}
],
"pagination": {
"page": 1,
"pageSize": 100,
"totalItems": 1,
"totalPages": 1,
"hasNextPage": false,
"hasPreviousPage": false
},
"params": {
"metric": "bugbot-reviews",
"teamId": 12345,
"startDate": "2026-06-01",
"endDate": "2026-06-29",
"repo": "github.com/your-org/your-repo",
"prNumber": 42,
"dryRun": true,
"page": 1,
"pageSize": 100
}
}
repo_node_id、pr_number、commit_sha、cost_cents、bugs[].comment_id、bugs[].resolution_status 和 bugs[].severity 在不可用時可能爲 null。如果審覈未單獨計費,cost_cents 爲 null。對於 dry-run 審覈,bugs[].title、bugs[].description 和 bugs[].locations 包含檢測結果內容。dry-run 的檢測結果其 comment_id 和 resolution_status 均爲 null,因爲不會向 SCM 發佈任何內容。
要觸發 Dry-run 評審,請調用 POST /bugbot/review,並將 "dryRun" 設爲 true。請參閱 Bugbot API 文檔。
按用戶劃分的端點¶
按用戶劃分的端點提供與團隊級端點相同的指標,並按用戶彙總數據,支持分頁。它們非常適合生成按用戶統計的報告,或分批處理大型團隊。
常用查詢參數¶
| 參數 | 類型 | 必填 | 描述 |
|---|---|---|---|
startDate |
日期 string | 否 | 分析時段的開始日期 (默認值:7 天前) |
endDate |
日期 string | 否 | 分析週期的結束日期 (默認值:今日) |
page |
number | 否 | 頁碼 (默認值:1) |
pageSize |
number | 否 | 每頁用戶數 (默認值:100,最大值:500) |
users |
string | 否 | 將分頁限定爲特定用戶 (以逗號分隔的電子郵件或 ID,例如 alice@example.com,user_abc123) |
用戶篩選:
向按用戶端點傳入 users 參數時:
- 分頁結果會被篩選:結果集和分頁計數僅包含指定用戶
- 適用於:無需遍歷所有用戶的分頁即可獲取特定團隊成員的詳細數據
- 示例:如果有 500 名用戶,但只需獲取其中 3 名特定用戶的數據,可按其電子郵件篩選,在單頁中獲取這 3 名用戶的全部數據
**注意:**按用戶端點支持與團隊級端點相同的日期格式和快捷方式。請參閱上方的日期格式部分。
響應格式¶
所有按用戶劃分的端點均按以下格式返回數據:
{
"data": {
"user1@example.com": [ /* 用戶數據 */ ],
"user2@example.com": [ /* 用戶數據 */ ]
},
"pagination": {
"page": 1,
"pageSize": 100,
"totalUsers": 250,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "agent-edits",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 100,
"userMappings": [
{ "id": "user_abc123", "email": "user1@example.com" },
{ "id": "user_def456", "email": "user2@example.com" }
]
}
}
響應結構:
data- 以用戶電子郵件地址爲鍵的對象,每個鍵對應一個包含該用戶指標的數組pagination- 分頁信息params- 回顯的請求參數userMappings- 將電子郵件地址映射到本頁公開用戶 ID 的數組。可用於與其他 API 交叉參照,或創建指向用戶個人資料的鏈接。
可用端點¶
所有按用戶劃分的端點均遵循以下模式:/analytics/by-user/{metric}
GET /analytics/by-user/agent-edits- 用戶的智能體編輯GET /analytics/by-user/tabs- 用戶的 Tab 用量GET /analytics/by-user/models- 用戶的模型用量GET /analytics/by-user/top-file-extensions- 用戶使用最多的文件GET /analytics/by-user/client-versions- 用戶的客戶端版本GET /analytics/by-user/mcp- 用戶的 MCP 採用率GET /analytics/by-user/commands- 用戶的命令採用率GET /analytics/by-user/plans- 用戶的方案採用率GET /analytics/by-user/skills- 用戶的技能採用率GET /analytics/by-user/ask-mode- 用戶的 Ask 模式採用率
按用戶劃分的智能體編輯¶
/analytics/by-user/agent-edits
獲取按用戶彙總且支持分頁的智能體編輯指標。
參數¶
startDate string
分析時段的起始日期 (默認值:7 天前) 。參閱 日期格式
endDate string
分析時段的結束日期 (默認值:今日) 。參閱 日期格式
page number
頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:100,最大值:500)
users string
將分頁結果限定爲特定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/agent-edits?page=1&pageSize=50" \
-u YOUR_API_KEY:
curl -X GET "https://api.cursor.com/analytics/by-user/agent-edits?users=alice@example.com,bob@example.com,carol@example.com" \
-u YOUR_API_KEY:
響應:
{
"data": {
"alice@example.com": [
{
"event_date": "2025-01-15",
"total_suggested_diffs": 145,
"total_accepted_diffs": 98,
"total_rejected_diffs": 47,
"total_green_lines_accepted": 820,
"total_red_lines_accepted": 160,
"total_green_lines_rejected": 210,
"total_red_lines_rejected": 60,
"total_green_lines_suggested": 1030,
"total_red_lines_suggested": 220,
"total_lines_suggested": 1250,
"total_lines_accepted": 980
},
{
"event_date": "2025-01-16",
"total_suggested_diffs": 132,
"total_accepted_diffs": 89,
"total_rejected_diffs": 43,
"total_green_lines_accepted": 740,
"total_red_lines_accepted": 150,
"total_green_lines_rejected": 185,
"total_red_lines_rejected": 55,
"total_green_lines_suggested": 925,
"total_red_lines_suggested": 175,
"total_lines_suggested": 1100,
"total_lines_accepted": 890
}
],
"bob@example.com": [
{
"event_date": "2025-01-15",
"total_suggested_diffs": 95,
"total_accepted_diffs": 72,
"total_rejected_diffs": 23,
"total_green_lines_accepted": 450,
"total_red_lines_accepted": 90,
"total_green_lines_rejected": 120,
"total_red_lines_rejected": 35,
"total_green_lines_suggested": 570,
"total_red_lines_suggested": 125,
"total_lines_suggested": 695,
"total_lines_accepted": 540
}
]
},
"pagination": {
"page": 1,
"pageSize": 50,
"totalUsers": 120,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "agent-edits",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 50,
"userMappings": [
{ "id": "user_abc123", "email": "alice@example.com" },
{ "id": "user_def456", "email": "bob@example.com" }
]
}
}
按用戶劃分的 Tab 用量¶
/analytics/by-user/tabs
獲取按用戶彙總、支持分頁的 Tab 自動補全指標。
參數¶
startDate string
分析週期的起始日期 (默認值:7 天前) 。參閱 日期格式
endDate string
分析週期的結束日期 (默認值:今日) 。參閱 日期格式
page number
頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:100,最大值:500)
users string
將分頁限定爲特定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/tabs?page=1&pageSize=50" \
-u YOUR_API_KEY:
響應:
{
"data": {
"alice@example.com": [
{
"event_date": "2025-01-15",
"total_suggestions": 320,
"total_accepts": 210,
"total_rejects": 110,
"total_green_lines_accepted": 280,
"total_red_lines_accepted": 120,
"total_green_lines_rejected": 90,
"total_red_lines_rejected": 45,
"total_green_lines_suggested": 370,
"total_red_lines_suggested": 165,
"total_lines_suggested": 535,
"total_lines_accepted": 400
}
],
"bob@example.com": [
{
"event_date": "2025-01-15",
"total_suggestions": 180,
"total_accepts": 120,
"total_rejects": 60,
"total_green_lines_accepted": 150,
"total_red_lines_accepted": 70,
"total_green_lines_rejected": 50,
"total_red_lines_rejected": 25,
"total_green_lines_suggested": 200,
"total_red_lines_suggested": 95,
"total_lines_suggested": 295,
"total_lines_accepted": 220
}
]
},
"pagination": {
"page": 1,
"pageSize": 50,
"totalUsers": 120,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "tabs",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 50,
"userMappings": [
{ "id": "user_abc123", "email": "alice@example.com" },
{ "id": "user_def456", "email": "bob@example.com" }
]
}
}
按用戶劃分的模型用量¶
/analytics/by-user/models
獲取按用戶彙總、支持分頁的模型用量指標。
參數¶
startDate string
分析週期的起始日期 (默認值:7 天前) 。參閱 日期格式
endDate string
分析週期的結束日期 (默認值:今日) 。參閱 日期格式
page number
頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:100,最大值:500)
users string
將分頁限定爲特定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/models?page=1&pageSize=50" \
-u YOUR_API_KEY:
響應:
{
"data": {
"alice@example.com": [
{
"date": "2025-01-15",
"model_breakdown": {
"claude-sonnet-4.5": {
"messages": 85,
"users": 1
},
"gpt-4o": {
"messages": 32,
"users": 1
}
}
}
],
"bob@example.com": [
{
"date": "2025-01-15",
"model_breakdown": {
"claude-sonnet-4.5": {
"messages": 64,
"users": 1
}
}
}
]
},
"pagination": {
"page": 1,
"pageSize": 50,
"totalUsers": 120,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "models",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 50,
"userMappings": [
{ "id": "user_abc123", "email": "alice@example.com" },
{ "id": "user_def456", "email": "bob@example.com" }
]
}
}
按用戶劃分的熱門文件擴展名¶
/analytics/by-user/top-file-extensions
獲取按用戶彙總的熱門文件擴展名指標,支持分頁。
參數¶
startDate string
分析週期的起始日期 (默認值:7 天前) 。參閱 日期格式
endDate string
分析週期的結束日期 (默認值:今日) 。參閱 日期格式
page number
頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:100,最大值:500)
users string
將分頁限定爲特定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/top-file-extensions?page=1&pageSize=50" \
-u YOUR_API_KEY:
響應:
{
"data": {
"alice@example.com": [
{
"event_date": "2025-01-15",
"file_extension": "tsx",
"total_files": 45,
"total_accepts": 32,
"total_rejects": 10,
"total_lines_suggested": 890,
"total_lines_accepted": 650,
"total_lines_rejected": 240
},
{
"event_date": "2025-01-15",
"file_extension": "ts",
"total_files": 38,
"total_accepts": 28,
"total_rejects": 8,
"total_lines_suggested": 720,
"total_lines_accepted": 540,
"total_lines_rejected": 180
}
],
"bob@example.com": [
{
"event_date": "2025-01-15",
"file_extension": "py",
"total_files": 22,
"total_accepts": 18,
"total_rejects": 4,
"total_lines_suggested": 410,
"total_lines_accepted": 340,
"total_lines_rejected": 70
}
]
},
"pagination": {
"page": 1,
"pageSize": 50,
"totalUsers": 120,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "top-files",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 50,
"userMappings": [
{ "id": "user_abc123", "email": "alice@example.com" },
{ "id": "user_def456", "email": "bob@example.com" }
]
}
}
按用戶劃分的客戶端版本¶
/analytics/by-user/client-versions
獲取按用戶彙總的客戶端版本指標,支持分頁。
參數¶
startDate string
分析週期的起始日期 (默認:7 天前) 。參見 日期格式
endDate string
分析週期的結束日期 (默認:今天) 。參見 日期格式
page number
頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:100,最大值:500)
users string
將分頁限定爲特定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/client-versions?page=1&pageSize=50" \
-u YOUR_API_KEY:
響應:
{
"data": {
"alice@example.com": [
{
"event_date": "2025-01-15",
"client_version": "0.42.3",
"user_count": 1,
"percentage": 1.0
}
],
"bob@example.com": [
{
"event_date": "2025-01-15",
"client_version": "0.42.2",
"user_count": 1,
"percentage": 1.0
}
]
},
"pagination": {
"page": 1,
"pageSize": 50,
"totalUsers": 120,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "client-versions",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 50,
"userMappings": [
{ "id": "user_abc123", "email": "alice@example.com" },
{ "id": "user_def456", "email": "bob@example.com" }
]
}
}
按用戶劃分的 MCP 採用率¶
/analytics/by-user/mcp
獲取按用戶彙總並支持分頁的 MCP 工具採用率指標。
參數¶
startDate string
分析週期的起始日期 (默認:7 天前) 。參見 日期格式
endDate string
分析週期的結束日期 (默認:今天) 。參見 日期格式
page number
頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:100,最大值:500)
users string
將分頁限定爲特定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/mcp?page=1&pageSize=50" \
-u YOUR_API_KEY:
響應:
{
"data": {
"alice@example.com": [
{
"event_date": "2025-01-15",
"tool_name": "read_file",
"mcp_server_name": "filesystem",
"usage": 45
},
{
"event_date": "2025-01-16",
"tool_name": "read_file",
"mcp_server_name": "filesystem",
"usage": 38
}
],
"bob@example.com": [
{
"event_date": "2025-01-15",
"tool_name": "search_web",
"mcp_server_name": "brave-search",
"usage": 23
}
]
},
"pagination": {
"page": 1,
"pageSize": 50,
"totalUsers": 120,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "mcp",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 50,
"userMappings": [
{ "id": "user_abc123", "email": "alice@example.com" },
{ "id": "user_def456", "email": "bob@example.com" }
]
}
}
按用戶劃分的命令採用率¶
/analytics/by-user/commands
獲取按用戶彙總、支持分頁的命令採用率指標。
參數¶
startDate string
分析週期的起始日期 (默認值:7 天前) 。參見 日期格式
endDate string
分析週期的結束日期 (默認值:今日) 。參見 日期格式
page number
頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:100,最大值:500)
users string
將分頁限定爲特定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/commands?page=1&pageSize=50" \
-u YOUR_API_KEY:
響應:
{
"data": {
"alice@example.com": [
{
"event_date": "2025-01-15",
"command_name": "explain",
"usage": 12
},
{
"event_date": "2025-01-16",
"command_name": "explain",
"usage": 15
}
],
"bob@example.com": [
{
"event_date": "2025-01-15",
"command_name": "refactor",
"usage": 8
}
]
},
"pagination": {
"page": 1,
"pageSize": 50,
"totalUsers": 120,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "commands",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 50,
"userMappings": [
{ "id": "user_abc123", "email": "alice@example.com" },
{ "id": "user_def456", "email": "bob@example.com" }
]
}
}
按用戶劃分的方案採用率¶
/analytics/by-user/plans
獲取按用戶彙總、支持分頁的 Plan 模式採用率指標。
參數¶
startDate string
分析時段的起始日期 (默認值:7 天前) 。請參閱 日期格式
endDate string
分析時段的結束日期 (默認值:今日) 。請參閱 日期格式
page number
頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:100,最大值:500)
users string
將分頁限定爲特定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/plans?page=1&pageSize=50" \
-u YOUR_API_KEY:
響應:
{
"data": {
"alice@example.com": [
{
"event_date": "2025-01-15",
"model": "claude-sonnet-4.5",
"usage": 23
},
{
"event_date": "2025-01-16",
"model": "claude-sonnet-4.5",
"usage": 19
}
],
"bob@example.com": [
{
"event_date": "2025-01-15",
"model": "gpt-4o",
"usage": 12
}
]
},
"pagination": {
"page": 1,
"pageSize": 50,
"totalUsers": 120,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "plans",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 50,
"userMappings": [
{ "id": "user_abc123", "email": "alice@example.com" },
{ "id": "user_def456", "email": "bob@example.com" }
]
}
}
按用戶劃分的技能採用率¶
/analytics/by-user/skills
獲取按用戶彙總、支持分頁的技能採用率指標。
參數¶
startDate string
分析週期的起始日期 (默認值:7 天前) 。參見 日期格式
endDate string
分析週期的結束日期 (默認值:今日) 。參見 日期格式
page number
頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:100,最大值:500)
users string
將分頁限定爲特定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/skills?page=1&pageSize=50" \
-u YOUR_API_KEY:
響應:
{
"data": {
"alice@example.com": [
{
"event_date": "2025-01-15",
"skill_name": "react-best-practices",
"usage": 8
},
{
"event_date": "2025-01-15",
"skill_name": "create-rule",
"usage": 3
},
{
"event_date": "2025-01-16",
"skill_name": "react-best-practices",
"usage": 5
}
],
"bob@example.com": [
{
"event_date": "2025-01-15",
"skill_name": "commit-message-helper",
"usage": 5
},
{
"event_date": "2025-01-15",
"skill_name": "create-skill",
"usage": 2
}
]
},
"pagination": {
"page": 1,
"pageSize": 50,
"totalUsers": 120,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "skills",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 50,
"userMappings": [
{ "id": "user_abc123", "email": "alice@example.com" },
{ "id": "user_def456", "email": "bob@example.com" }
]
}
}
按用戶劃分的 Ask 模式採用率¶
/analytics/by-user/ask-mode
獲取按用戶彙總、支持分頁的 Ask 模式採用率指標。
參數¶
startDate string
分析時段的起始日期 (默認值:7 天前) 。參閱 日期格式
endDate string
分析時段的結束日期 (默認值:今日) 。參閱 日期格式
page number
頁碼 (從 1 開始) 。默認值:1
pageSize number
每頁用戶數 (默認值:100,最大值:500)
users string
將分頁限定爲特定用戶 (以逗號分隔的電子郵件或用戶 ID,例如 alice@example.com,user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/ask-mode?page=1&pageSize=50" \
-u YOUR_API_KEY:
響應:
{
"data": {
"alice@example.com": [
{
"event_date": "2025-01-15",
"model": "claude-sonnet-4.5",
"usage": 34
},
{
"event_date": "2025-01-16",
"model": "claude-sonnet-4.5",
"usage": 28
}
],
"bob@example.com": [
{
"event_date": "2025-01-15",
"model": "gpt-4o",
"usage": 15
}
]
},
"pagination": {
"page": 1,
"pageSize": 50,
"totalUsers": 120,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
},
"params": {
"metric": "ask-mode",
"teamId": 12345,
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"page": 1,
"pageSize": 50,
"userMappings": [
{ "id": "user_abc123", "email": "alice@example.com" },
{ "id": "user_def456", "email": "bob@example.com" }
]
}
}
團隊級端點¶
團隊級端點提供整個團隊或篩選後的用戶子集的彙總指標。所有端點均支持按日期範圍篩選,並可選擇按用戶篩選。
通用查詢參數¶
| 參數 | 類型 | 必填 | 描述 |
|---|---|---|---|
startDate |
日期 string | 否 | 分析時段的開始日期 (默認值:7 天前) |
endDate |
日期 string | 否 | 分析時段的結束日期 (默認值:今日) |
users |
string | 否 | 按指定用戶篩選數據 (以逗號分隔) 。每個值可以是電子郵件地址 (例如,alice@example.com) 或公開用戶 ID (例如,user_abc123) 。兩種格式可混用。 |
用戶篩選:
users 參數接受以逗號分隔的標識符列表。每個標識符可以是:
- 電子郵件地址 (例如,
alice@example.com) - 根據是否包含@自動識別 - 公開用戶 ID (例如,
user_abc123) - 根據user_前綴自動識別 - 混合格式 - 可在同一請求中同時使用電子郵件地址和 ID
示例:
# 僅按電子郵件篩選
?users=alice@example.com,bob@example.com,carol@example.com
# 僅按公開用戶 ID 篩選
?users=user_abc123,user_def456,user_ghi789
# 混合使用電子郵件和 ID
?users=alice@example.com,user_def456,bob@example.com
按用戶篩選時,API 僅返回指定用戶的數據。適用於:
- 分析特定團隊成員或羣組 (例如工程負責人、特定項目團隊)
- 爲部分用戶生成報告
- 比較所選個人用戶的指標
日期格式¶
默認行爲:
如果省略 startDate 和 endDate,API 默認返回過去 7 天的數據 (從 7 天前到今日) 。這非常適合無需指定日期的快速查詢。
標準格式:
YYYY-MM-DD- 簡單日期格式 (例如2025-01-15) ← 推薦- ISO 8601 時間戳 (例如
2025-01-15T00:00:00Z)
快捷方式:
now或today- 當前日期 (00:00:00)yesterday- 昨日日期 (00:00:00)<number>d- 若干天前 (例如7d= 7 天前,30d= 30 天前)
重要說明:
- 忽略時間:所有日期都會解析到天級別 (00:00:00 UTC) 。發送
2025-01-15T14:30:00Z與發送2025-01-15的效果相同。 - 使用推薦格式:使用
YYYY-MM-DD或快捷方式可獲得更好的 HTTP 緩存效果。即使解析爲同一天,不同的時間值 (如T14:30:00Z和T08:00:00Z) 也會導致緩存未命中。 - 日期範圍:最多 30 天。
示例:
# 省略日期,獲取最近 7 天的數據(最簡單且最利於緩存)
curl "https://api.cursor.com/analytics/team/agent-edits"
# 指定日期範圍時使用 YYYY-MM-DD 格式(推薦)
?startDate=2025-01-01&endDate=2025-01-31
# 使用快捷日期表示最近 30 天
?startDate=30d&endDate=today
# 使用快捷日期表示最近 14 天
?startDate=14d&endDate=now
# ❌ 請勿使用時間戳:會影響緩存,且時間部分本來也會被忽略
?startDate=2025-01-15T14:30:00Z&endDate=2025-01-31T23:59:59Z
速率限制¶
速率限制按團隊實施,每分鐘重置:
- 團隊級端點:每個團隊每分鐘 100 次請求
- 按用戶劃分的端點:每個團隊每分鐘 50 次請求
超出速率限制後會怎樣?
超出速率限制後,您將收到 429 Too Many Requests 響應:
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Please try again later."
}
最佳實踐¶
有關 API 通用最佳實踐,包括指數退避、緩存策略和錯誤處理,請參閱 API Overview 最佳實踐。
- 大型團隊使用分頁:如果團隊用戶超過 100 人,請使用支持分頁的按用戶劃分的端點,避免超時。
- 利用緩存:團隊級和用戶級端點均支持 ETag。存儲 ETag,並使用
If-None-Match請求頭,減少不必要的數據傳輸。 - 儘可能按用戶篩選:如果只需獲取特定用戶的數據,請使用
users參數縮短查詢時間。 - 日期範圍:爲獲得最佳性能,請將日期範圍控制在合理範圍內 (例如 1–3 個月) 。