Skip to main content

Command Palette

Search for a command to run...

API

Analytics API

Analytics API は、AI 支援コーディングのメトリクス、アクティブユーザー、モデルの利用状況など、チームの Cherri Code 利用状況に関する包括的な分析情報を提供します。

  • Analytics API では ベーシック認証 を使用します。ほとんどのエンドポイントには、admin:* スコープを持つ管理者権限の API キーが必要です。Bugbot review の利用分析には read:* スコープが必要です。Cherri Code Dashboard → API キー からキーを作成してください。
  • 認証、レート制限、ベストプラクティスの詳細については、API Overview を参照してください。
  • 利用可能対象: エンタープライズ チームのみ

利用可能なエンドポイント

エージェントによる編集

GET/analytics/team/agent-edits

Cherri Code でチームが受け入れた、AI によるコード編集の提案に関するメトリクスを取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7 日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーに絞り込む (メールアドレスまたはユーザー ID をカンマ区切りで指定。例: [email protected],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 の利用状況

GET/analytics/team/tabs

チーム全体での Tab 自動補完の利用状況に関するメトリクスを取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーにデータを絞り込みます (メールアドレスまたはユーザー ID をカンマ区切りで指定。例: [email protected],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"  }}

1日あたりのアクティブユーザー数 (DAU)

GET/analytics/team/dau

チームの1日あたりのアクティブユーザー数を取得します。DAU は、特定の日に Cherri Code を使用したユニークユーザー数です。 アクティブユーザーとは、Cherri Code の AI 機能を1つ以上使用したユーザーです。

レスポンスには、Cherri Code CLI、Cloud Agents、BugBot の DAU の内訳メトリクスが含まれます。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーにデータを絞り込む (メールアドレスまたはユーザー ID をカンマ区切りで指定。例: [email protected],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"  }}

クライアントバージョン

GET/analytics/team/client-versions

チームで使用されている Cherri Code クライアントバージョンの分布を取得します (デフォルトでは過去 7 日間) 。ユーザーごとに日単位で最新バージョンを報告します (複数のバージョンがインストールされている場合は、最新のバージョンを報告します) 。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7 日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーにデータを絞り込みます (メールアドレスまたはユーザー ID をカンマ区切りで指定。例: [email protected],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"  }}

モデルの利用状況

GET/analytics/team/models

チーム全体のAIモデルの利用に関するメトリクスを取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーに絞り込む (メールアドレスまたはユーザーIDをカンマ区切りで指定。例: [email protected],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"  }}

上位のファイル拡張子

GET/analytics/team/top-file-extensions

Cherri Code でチーム内で最も頻繁に編集されたファイルを取得します。提案数に基づき、日ごとの上位 5 件のファイル拡張子を返します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7 日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーにデータを絞り込みます (カンマ区切りのメールアドレスまたはユーザー ID。例: [email protected],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 の使用状況

GET/analytics/team/mcp

チーム全体での MCP (Model Context Protocol) ツールの使用状況に関するメトリクスを取得します。ツール名と MCP サーバー名ごとの日次使用数を返します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7 日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーに絞り込みます (メールアドレスまたはユーザー ID をカンマ区切りで指定。例: [email protected],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"  }}

コマンドの使用状況

GET/analytics/team/commands

チーム全体での Cherri Code コマンドの利用状況に関するメトリクスを取得します。コマンド名別の日次利用数を返します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7 日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーに絞り込む (メールアドレスまたはユーザー ID をカンマ区切りで指定。例: [email protected],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"  }}

プランの使用状況

GET/analytics/team/plans

チーム全体での Plan モードの利用状況に関するメトリクスを取得します。プラン生成に使用した AI モデル別の日次利用数を返します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7 日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーに絞り込む (カンマ区切りのメールアドレスまたはユーザー ID。例: [email protected],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"  }}

スキルの使用状況

GET/analytics/team/skills

チーム全体におけるスキルの使用状況のメトリクスを取得します。スキル名別の日次使用数を返します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーにデータを絞り込みます (メールアドレスまたはユーザー IDをカンマ区切りで指定。例: [email protected],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 モードの利用状況

GET/analytics/team/ask-mode

チーム全体における Ask モードの利用状況のメトリクスを取得します。Ask モードのクエリで使用された AI モデル別に、日ごとの利用数を返します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7 日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 今日) 。日付形式 を参照してください

users string

特定のユーザーにデータを絞り込みます (メールアドレスまたはユーザー ID をカンマ区切りで指定。例: [email protected],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"  }}

会話インサイト

GET/analytics/team/conversation-insights

ダッシュボードに表示されるものと同じ集計済みの会話インサイトデータを取得します。このエンドポイントは集計済みのインサイトを返します。生の会話エクスポートや会話コンテンツは返しません。

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

任意。会話インサイトを特定のユーザーに絞り込みます。[email protected],user_abc123 のように、カンマ区切りのメールアドレスまたはユーザー ID を渡します。
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&[email protected],[email protected]" \  -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"    ]  }}

リーダーボード

GET/analytics/team/leaderboard

AI利用状況指標に基づくチームメンバーのランキングを取得します。

挙動:

  • ユーザーフィルターなし: 指定したメトリクス (デフォルト: 承認された行数の合計) でランク付けされたユーザーを返します
  • ユーザーフィルターあり: フィルターに一致するユーザーを、実際のチーム全体での順位とともに返します
  • メンバー数の多いチーム向けにページネーションをサポートします

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページネーションのページ番号 (1始まり) 。デフォルト: 1

pageSize number

1ページあたりのユーザー数 (デフォルト: 10、最大: 500)

users string

特定のユーザーでフィルターします (カンマ区切りのメールアドレスまたはユーザーID、例: [email protected],user_abc123)
# リーダーボードの1ページ目を取得(上位10ユーザー)curl -X GET "https://api.cursor.com/analytics/team/leaderboard" \  -u YOUR_API_KEY:
# カスタムのページサイズで2ページ目を取得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/[email protected],[email protected]" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "tab_leaderboard": {      "data": [        {          "email": "[email protected]",          "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": "[email protected]",          "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": "[email protected]",          "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": "[email protected]",          "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 利用分析

GET/analytics/team/bugbot

重要度別の issue 数や解決済みの issue 数を含む、チームの PR ごとの Bugbot review 利用分析を取得します。

請求コストや個別の findings を含む review ごとのデータについては、Bugbot review の利用分析 を参照してください。

パラメータ

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

1 ページあたりの 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 review の利用分析

GET/analytics/team/bugbot-reviews

完了した Bugbot review ごとに、レビュー対象のコミット、検出事項数、請求額、検出事項ごとの解決データを含む項目を 1 件返します。

投稿済みのレビューと dry-run レビューの両方を含みます。投稿済みの検出事項は comment_id と resolution_status で識別されます。SCM には何も投稿されないため、dry-run の検出事項では代わりに title、description、locations が返されます。

read:* スコープを持つ API キーが必要です。

パラメータ

startDate string

利用分析の対象期間の開始日時。デフォルトは 7 日前です。日付形式 を参照してください。

endDate string

利用分析の対象期間の終了日時。デフォルトは now です。日付形式 を参照してください。

repo string

任意のリポジトリフィルター。形式は host/owner/repo です。プロトコルと .git 接尾辞は省略できます。

prNumber number

任意のプルリクエストまたはマージリクエスト番号。

page number

ページネーション用のページ番号 (1 始まり) 。デフォルト: 1。

pageSize number

1 ページあたりのレビュー数。デフォルト: 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  }}

レスポンス (ドライラン確認) :

{  "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にファインディングの内容が含まれます。ドライランのファインディングは、SCMに何も投稿されないためcomment_id: nullおよびresolution_status: nullになります。

dry-run review を実行するには、"dryRun": true を指定して POST /bugbot/review を呼び出します。Bugbot API ドキュメントを参照してください。


ユーザー別エンドポイント

ユーザー別エンドポイントでは、チームレベルのエンドポイントと同じメトリクスを、ページネーション対応でユーザーごとに取得できます。ユーザーごとのレポート生成や、大規模なチームのバッチ処理に最適です。

共通クエリパラメータ

パラメータ型必須説明
startDate日付文字列非対応分析対象期間の開始日 (デフォルト: 7日前)
endDate日付文字列非対応分析対象期間の終了日 (デフォルト: 本日)
pagenumber非対応ページ番号 (デフォルト: 1)
pageSizenumber非対応1ページあたりのユーザー数 (デフォルト: 100、最大: 500)
usersstring非対応特定のユーザーにページネーションを限定 (メールアドレスまたはIDをカンマ区切りで指定。例: [email protected],user_abc123)

ユーザーフィルタリング: ユーザー別エンドポイントで users パラメータを指定すると:

  • ページネーションもフィルタリングされます: 指定したユーザーのみが結果セットとページネーションの件数に含まれます
  • 役立つ用途: すべてのユーザーをページネーションせずに、特定のチームメンバーの詳細データを取得する場合
  • 例: ユーザーが500人いても、特定の3人のデータだけが必要な場合は、そのメールアドレスでフィルタリングすると、1ページですべてのデータを取得できます

注: ユーザー別エンドポイントは、チームレベルのエンドポイントと同じ日付形式とショートカットをサポートします。上記の日付形式セクションを参照してください。

レスポンス形式

すべてのユーザー別エンドポイントは、以下の形式でデータを返します。

{  "data": {    "[email protected]": [ /* ユーザーデータ */ ],    "[email protected]": [ /* ユーザーデータ */ ]  },  "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

レスポンス形式:

  • 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 mode使用状況

ユーザー別エージェント編集

GET/analytics/by-user/agent-edits

ユーザーごとのエージェント編集メトリクスを、ページネーション対応で取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページ番号 (1始まり) 。デフォルト: 1

pageSize number

ページあたりのユーザー数 (デフォルト: 100、最大: 500)

users string

ページネーションの対象を特定のユーザーに限定します (カンマ区切りのメールアドレスまたはユーザーID。例: [email protected],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/[email protected],[email protected],[email protected]" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "[email protected]": [      {        "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      }    ],    "[email protected]": [      {        "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

ユーザー別 Tab 利用状況

GET/analytics/by-user/tabs

ユーザーごとの Tab 自動補完メトリクスをページネーション対応で取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページ番号 (1始まり) 。デフォルト: 1

pageSize number

ページあたりのユーザー数 (デフォルト: 100、最大: 500)

users string

特定のユーザーに絞り込みます (カンマ区切りのメールアドレスまたはユーザー ID。例: [email protected],user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/tabs?page=1&pageSize=50" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "[email protected]": [      {        "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      }    ],    "[email protected]": [      {        "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

ユーザー別モデル利用状況

GET/analytics/by-user/models

ユーザー別のモデル利用状況指標を、ページネーション対応で取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページ番号 (1始まり) 。デフォルト: 1

pageSize number

ページあたりのユーザー数 (デフォルト: 100、最大: 500)

users string

特定のユーザーに結果を絞り込みます (カンマ区切りのメールアドレスまたはユーザーID、例: [email protected],user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/models?page=1&pageSize=50" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "[email protected]": [      {        "date": "2025-01-15",        "model_breakdown": {          "claude-sonnet-4.5": {            "messages": 85,            "users": 1          },          "gpt-4o": {            "messages": 32,            "users": 1          }        }      }    ],    "[email protected]": [      {        "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

ユーザー別の主要ファイル拡張子

GET/analytics/by-user/top-file-extensions

ユーザー別の主要なファイル拡張子メトリクスを、ページネーション対応で取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページ番号 (1始まり) 。デフォルト: 1

pageSize number

1ページあたりのユーザー数 (デフォルト: 100、最大: 500)

users string

ページネーションの対象を特定のユーザーに限定します (カンマ区切りのメールアドレスまたはユーザー ID。例: [email protected],user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/top-file-extensions?page=1&pageSize=50" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "[email protected]": [      {        "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      }    ],    "[email protected]": [      {        "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

ユーザー別クライアントバージョン

GET/analytics/by-user/client-versions

ユーザーごとに集計したクライアントバージョンのメトリクスを、ページネーション対応で取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページ番号 (1始まり) 。デフォルト: 1

pageSize number

ページあたりのユーザー数 (デフォルト: 100、最大: 500)

users string

特定のユーザーに結果を限定します (カンマ区切りのメールアドレスまたはユーザーID。例: [email protected],user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/client-versions?page=1&pageSize=50" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "[email protected]": [      {        "event_date": "2025-01-15",        "client_version": "0.42.3",        "user_count": 1,        "percentage": 1.0      }    ],    "[email protected]": [      {        "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

ユーザー別 MCP 使用状況

GET/analytics/by-user/mcp

ユーザー別の MCP ツール使用状況メトリクスを、ページネーション対応で取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7 日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページ番号 (1 始まり) 。デフォルト: 1

pageSize number

ページあたりのユーザー数 (デフォルト: 100、最大: 500)

users string

対象ユーザーを指定してページネーションを絞り込みます (カンマ区切りのメールアドレスまたはユーザー ID、例: [email protected],user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/mcp?page=1&pageSize=50" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "[email protected]": [      {        "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      }    ],    "[email protected]": [      {        "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

ユーザー別コマンド使用状況

GET/analytics/by-user/commands

ユーザーごとのコマンド使用状況メトリクスを、ページネーション対応で取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページ番号 (1始まり) 。デフォルト: 1

pageSize number

ページあたりのユーザー数 (デフォルト: 100、最大: 500)

users string

ページネーションの対象を特定のユーザーに限定します (カンマ区切りのメールアドレスまたはユーザーID。例: [email protected],user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/commands?page=1&pageSize=50" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "[email protected]": [      {        "event_date": "2025-01-15",        "command_name": "explain",        "usage": 12      },      {        "event_date": "2025-01-16",        "command_name": "explain",        "usage": 15      }    ],    "[email protected]": [      {        "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

ユーザー別プラン使用状況

GET/analytics/by-user/plans

Plan モードの使用状況メトリクスを、ユーザーごとにページネーション対応で取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7 日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページ番号 (1 始まり) 。デフォルト: 1

pageSize number

ページあたりのユーザー数 (デフォルト: 100、最大: 500)

users string

特定のユーザーにページネーション対象を限定します (カンマ区切りのメールアドレスまたはユーザー ID、例: [email protected],user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/plans?page=1&pageSize=50" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "[email protected]": [      {        "event_date": "2025-01-15",        "model": "claude-sonnet-4.5",        "usage": 23      },      {        "event_date": "2025-01-16",        "model": "claude-sonnet-4.5",        "usage": 19      }    ],    "[email protected]": [      {        "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

ユーザー別スキル使用状況

GET/analytics/by-user/skills

個々のユーザーのスキル使用状況メトリクスを、ページネーション対応で取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページ番号 (1始まり) 。デフォルト: 1

pageSize number

ページあたりのユーザー数 (デフォルト: 100、最大: 500)

users string

特定のユーザーに結果を限定します (カンマ区切りのメールアドレスまたはユーザーID。例: [email protected],user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/skills?page=1&pageSize=50" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "[email protected]": [      {        "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      }    ],    "[email protected]": [      {        "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

ユーザー別 Ask モード使用状況

GET/analytics/by-user/ask-mode

ユーザー別に集計した Ask モードの使用状況メトリクスを、ページネーション対応で取得します。

パラメータ

startDate string

分析対象期間の開始日 (デフォルト: 7日前) 。日付形式 を参照してください

endDate string

分析対象期間の終了日 (デフォルト: 本日) 。日付形式 を参照してください

page number

ページ番号 (1始まり) 。デフォルト: 1

pageSize number

ページあたりのユーザー数 (デフォルト: 100、最大: 500)

users string

特定のユーザーに結果を絞り込みます (カンマ区切りのメールアドレスまたはユーザー ID。例: [email protected],user_abc123)
curl -X GET "https://api.cursor.com/analytics/by-user/ask-mode?page=1&pageSize=50" \  -u YOUR_API_KEY:

レスポンス:

{  "data": {    "[email protected]": [      {        "event_date": "2025-01-15",        "model": "claude-sonnet-4.5",        "usage": 34      },      {        "event_date": "2025-01-16",        "model": "claude-sonnet-4.5",        "usage": 28      }    ],    "[email protected]": [      {        "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": "[email protected]" },      { "id": "user_def456", "email": "[email protected]" }    ]  }}

チームレベルのエンドポイント

チームレベルのエンドポイントでは、チーム全体または絞り込んだユーザーグループの集計メトリクスを取得できます。すべてのエンドポイントで、日付範囲やユーザーによる任意のフィルタリングをサポートしています。

共通クエリパラメータ

パラメータ型必須説明
startDate日付文字列非対応分析対象期間の開始日 (デフォルト: 7日前)
endDate日付文字列非対応分析対象期間の終了日 (デフォルト: 本日)
usersstring非対応特定のユーザーにデータを絞り込みます (カンマ区切り) 。各値にはメールアドレス (例: [email protected]) または公開ユーザーID (例: user_abc123) を指定できます。両方の形式を混在させることもできます。

ユーザーのフィルタリング: users パラメータには、カンマ区切りの識別子リストを指定できます。各識別子には次のいずれかを指定できます。

  • メールアドレス (例: [email protected]) - @ の有無で自動検出されます
  • 公開ユーザーID (例: user_abc123) - user_ プレフィックスで自動検出されます
  • 混在形式 - 同じリクエスト内でメールアドレスとIDを組み合わせることができます

例:

# メールアドレスのみで絞り込む[email protected],[email protected],[email protected]# 公開ユーザーIDのみで絞り込む?users=user_abc123,user_def456,user_ghi789# メールアドレスとIDを混在させる[email protected],user_def456,[email protected]

ユーザーでフィルタリングすると、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 - n日前 (例: 7d = 7日前、30d = 30日前)

重要な注意事項:

  • 時刻は無視されます: すべての日付は日単位 (00:00:00 UTC) に処理されます。2025-01-15T14:30:00Z を送信しても、2025-01-15 と同じです。
  • 推奨形式を使用する: HTTP キャッシュを効率的に利用するには、YYYY-MM-DD またはショートカットを使用してください。同じ日に処理される場合でも、異なる時刻値 (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

レート制限

レート制限はチームごとに適用され、1分ごとにリセットされます。

  • チームレベルのエンドポイント: チームあたり毎分100リクエスト
  • ユーザー別エンドポイント: チームあたり毎分50リクエスト

レート制限を超えるとどうなりますか?

レート制限を超えると、429 Too Many Requestsレスポンスが返されます。

{  "error": "Too Many Requests",  "message": "Rate limit exceeded. Please try again later."}

ベストプラクティス

指数バックオフ、キャッシュ戦略、エラー処理など、API の一般的なベストプラクティスについては、API Overview のベストプラクティスを参照してください。

  1. 大規模なチームではページネーションを使用する: チームに 100 人を超えるユーザーがいる場合は、タイムアウトを回避するために、ページネーションを使用したユーザー別エンドポイントを使用してください。
  2. キャッシュを活用する: チームレベルとユーザーレベルのエンドポイントはどちらも ETag をサポートしています。ETag を保存し、If-None-Match ヘッダーを使用して不要なデータ転送を減らしてください。
  3. 可能な場合はユーザーでフィルタリングする: 特定のユーザーのデータだけが必要な場合は、users パラメータを使用してクエリ時間を短縮してください。
  4. 日付範囲: 最適なパフォーマンスを得るため、日付範囲は適切な範囲 (例: 1~3 か月) にしてください。