Ekibinin depoları için yapay zekâ kaynaklı kod analizlerine eriş. Buna commit başına yapay zekâ kullanımı ve ayrıntı düzeyinde kabul edilen yapay zekâ değişiklikleri dahildir.
API ilk sürümünde. Geri bildirimlere göre yetenekleri genişletiyoruz — hangi endpoint’lere ihtiyacın olduğunu bize söyle!
- Kapsam: Yalnızca kurumsal ekipler için
- Durum: Alfa (yanıt şekilleri ve alanlar değişebilir)
Tüm API istekleri bir API anahtarıyla kimlik doğrulaması gerektirir. Bu API, diğer uç noktalarla aynı Admin API kimlik doğrulamasını kullanır.
Ayrıntılı kimlik doğrulama yönergeleri için bkz. Admin API kimlik doğrulama.
Tüm API uç noktaları şu adresi kullanır:
- Takım ve uç nokta başına dakikada 5 istek
Aşağıdaki tüm uç noktalar, aynı sorgu parametrelerini sorgu dizesi üzerinden kabul eder:
Parametre | Tür | Gerekli | Açıklama | |
---|
startDate | string | date | Hayır | ISO tarih dizesi, “now” ifadesi veya “7d” gibi göreli günler (şu an - 7 gün anlamına gelir). Varsayılan: şu an - 7 gün |
endDate | string | date | Hayır | ISO tarih dizesi, “now” ifadesi veya “0d” gibi göreli günler. Varsayılan: şu an |
page | number | Hayır | Sayfa numarası (1 tabanlı). Varsayılan: 1 | |
pageSize | number | Hayır | Sayfa başına sonuç sayısı. Varsayılan: 100, Maks: 1000 | |
user | string | Hayır | Tek bir kullanıcıya göre isteğe bağlı filtre. E-posta (örn. developer@company.com), kodlanmış ID (örn. user_abc123…) veya sayısal ID (örn. 42) kabul eder | |
Yanıtlar, userId değerini user_ önekli kodlanmış harici bir ID olarak döndürür. Bu, API tüketimi için kararlıdır.
Anlambilim ve Metriklerin Nasıl Hesaplandığı
- Kaynaklar: “TAB”, kabul edilen satır içi tamamlamaları temsil eder; “COMPOSER”, Composer’dan kabul edilen diff’leri temsil eder
- Satır metrikleri: tabLinesAdded/Deleted ve composerLinesAdded/Deleted ayrı ayrı sayılır; nonAiLinesAdded/Deleted, max(0, totalLines - AI lines) olarak türetilir
- Gizlilik modu: İstemcide etkinse bazı meta veriler (fileName gibi) dahil edilmeyebilir
- Branch bilgisi: Mevcut branch repo’nun varsayılan branch’iyle aynıysa isPrimaryBranch true olur; repo bilgisi yoksa undefined olabilir
Commit’lerin ve değişikliklerin nasıl tespit edilip raporlandığını anlamak için o dosyayı inceleyebilirsin.
AI Commit Metriklerini Getir (JSON, sayfalı)
Satırları TAB, COMPOSER ve AI dışı olarak atayan commit başına toplu metrikleri getir.
GET /analytics/ai-code/commits
{
items: AiCommitMetric[];
totalCount: number;
page: number;
pageSize: number;
}
Field | Type | Description | |
---|
commitHash | string | Git commit hash’i | |
userId | string | Encode edilmiş kullanıcı kimliği (örn. user_abc123) | |
userEmail | string | Kullanıcının e-posta adresi | |
repoName | string | null | Depo adı |
branchName | string | null | Dal adı |
isPrimaryBranch | boolean | null | Birincil dal olup olmadığı |
totalLinesAdded | number | Commit’te eklenen toplam satır | |
totalLinesDeleted | number | Commit’te silinen toplam satır | |
tabLinesAdded | number | TAB tamamlamalarıyla eklenen satır sayısı | |
tabLinesDeleted | number | TAB tamamlamalarıyla silinen satır sayısı | |
composerLinesAdded | number | Composer ile eklenen satır sayısı | |
composerLinesDeleted | number | Composer ile silinen satır sayısı | |
nonAiLinesAdded | number | null | AI dışı eklenen satır sayısı |
nonAiLinesDeleted | number | null | AI dışı silinen satır sayısı |
message | string | null | Commit mesajı |
commitTs | string | null | Commit zaman damgası (ISO formatı) |
createdAt | string | Alım zaman damgası (ISO formatı) | |
{
"items": [
{
"commitHash": "a1b2c3d4",
"userId": "user_3k9x8q...",
"userEmail": "developer@company.com",
"repoName": "company/repo",
"branchName": "main",
"isPrimaryBranch": true,
"totalLinesAdded": 120,
"totalLinesDeleted": 30,
"tabLinesAdded": 50,
"tabLinesDeleted": 10,
"composerLinesAdded": 40,
"composerLinesDeleted": 5,
"nonAiLinesAdded": 30,
"nonAiLinesDeleted": 15,
"message": "Refactor: extract analytics client",
"commitTs": "2025-07-30T14:12:03.000Z",
"createdAt": "2025-07-30T14:12:30.000Z"
}
],
"totalCount": 42,
"page": 1,
"pageSize": 100
}
Basit istek:
curl -X GET "https://api.cursor.com/analytics/ai-code/commits?startDate=7d&endDate=now&page=1&pageSize=100" \
-u YOUR_API_KEY:
Kullanıcıya göre filtrele (e-posta):
curl -X GET "https://api.cursor.com/analytics/ai-code/commits?startDate=2025-06-01T00:00:00Z&endDate=now&user=developer@company.com" \
-u YOUR_API_KEY:
AI Commit Metriklerini İndir (CSV, akış)
Büyük veri çıkartımları için commit metrik verilerini CSV formatında indir.
GET /analytics/ai-code/commits.csv
Başlıklar:
- Content-Type: text/csv; charset=utf-8
Sütun | Tür | Açıklama |
---|
commit_hash | string | Git commit karması |
user_id | string | Kodlanmış kullanıcı kimliği |
user_email | string | Kullanıcının e-posta adresi |
repo_name | string | Depo adı |
branch_name | string | Dal adı |
is_primary_branch | boolean | Bunun birincil dal olup olmadığı |
total_lines_added | number | Commit’te eklenen toplam satır |
total_lines_deleted | number | Commit’te silinen toplam satır |
tab_lines_added | number | TAB tamamlamalarıyla eklenen satırlar |
tab_lines_deleted | number | TAB tamamlamalarıyla silinen satırlar |
composer_lines_added | number | Composer ile eklenen satırlar |
composer_lines_deleted | number | Composer ile silinen satırlar |
non_ai_lines_added | number | Yapay zekâ dışı eklenen satırlar |
non_ai_lines_deleted | number | Yapay zekâ dışı silinen satırlar |
message | string | Commit mesajı |
commit_ts | string | Commit zaman damgası (ISO biçimi) |
created_at | string | İçeri alma zaman damgası (ISO biçimi) |
commit_hash,user_id,user_email,repo_name,branch_name,is_primary_branch,total_lines_added,total_lines_deleted,tab_lines_added,tab_lines_deleted,composer_lines_added,composer_lines_deleted,non_ai_lines_added,non_ai_lines_deleted,message,commit_ts,created_at
a1b2c3d4,user_3k9x8q...,developer@company.com,company/repo,main,true,120,30,50,10,40,5,30,15,"Refactor: extract analytics client",2025-07-30T14:12:03.000Z,2025-07-30T14:12:30.000Z
e5f6g7h8,user_3k9x8q...,developer@company.com,company/repo,feature-branch,false,85,15,30,5,25,3,30,7,"Add error handling",2025-07-30T13:45:21.000Z,2025-07-30T13:45:45.000Z
curl -L "https://api.cursor.com/analytics/ai-code/commits.csv?startDate=2025-07-01T00:00:00Z&endDate=now&user=user_3k9x8q..." \
-u YOUR_API_KEY: \
-o commits.csv
AI Kod Değişikliği Metriklerini Al (JSON, sayfalı)
Deterministik changeId ile gruplanmış, ayrıntılı ve kabul edilmiş AI değişikliklerini getir. Commit’lerden bağımsız olarak kabul edilen AI olaylarını analiz etmek için yararlı.
GET /analytics/ai-code/changes
{
items: AiCodeChangeMetric[];
totalCount: number;
page: number;
pageSize: number;
}
AiCodeChangeMetric Alanları
Alan | Tür | Açıklama | |
---|
changeId | string | Değişiklik için deterministik kimlik | |
userId | string | Kodlanmış kullanıcı kimliği (ör. user_abc123) | |
userEmail | string | Kullanıcının e-posta adresi | |
source | ”TAB" | "COMPOSER” | AI değişikliğinin kaynağı |
model | string | null | Kullanılan AI modeli |
totalLinesAdded | number | Eklenen toplam satır | |
totalLinesDeleted | number | Silinen toplam satır | |
createdAt | string | İçeri alma zaman damgası (ISO biçimi) | |
metadata | Array | Dosya üstverisi (gizlilik modunda fileName atlanabilir) | |
{
"items": [
{
"changeId": "749356201",
"userId": "user_3k9x8q...",
"userEmail": "developer@company.com",
"source": "COMPOSER",
"model": null,
"totalLinesAdded": 18,
"totalLinesDeleted": 4,
"createdAt": "2025-07-30T15:10:12.000Z",
"metadata": [
{ "fileName": "src/analytics/report.ts", "fileExtension": "ts", "linesAdded": 12, "linesDeleted": 3 },
{ "fileName": "src/analytics/ui.tsx", "fileExtension": "tsx", "linesAdded": 6, "linesDeleted": 1 }
]
}
],
"totalCount": 128,
"page": 1,
"pageSize": 200
}
Basit istek:
curl -X GET "https://api.cursor.com/analytics/ai-code/changes?startDate=14d&endDate=now&page=1&pageSize=200" \
-u YOUR_API_KEY:
Kullanıcıya göre filtrele (kodlanmış ID):
curl -X GET "https://api.cursor.com/analytics/ai-code/changes?user=user_3k9x8q..." \
-u YOUR_API_KEY:
Kullanıcıya göre filtrele (e‑posta):
curl -X GET "https://api.cursor.com/analytics/ai-code/changes?user=developer@company.com" \
-u YOUR_API_KEY:
AI Kod Değişikliği Metriklerini İndir (CSV, akış)
Büyük veri çekimleri için değişiklik metriklerini CSV formatında indir.
GET /analytics/ai-code/changes.csv
Başlıklar:
- Content-Type: text/csv; charset=utf-8
Column | Type | Description |
---|
change_id | string | Değişiklik için deterministik kimlik |
user_id | string | Kodlanmış kullanıcı kimliği |
user_email | string | Kullanıcının e‑posta adresi |
source | string | AI değişikliğinin kaynağı (TAB veya COMPOSER) |
model | string | Kullanılan AI modeli |
total_lines_added | number | Eklenen toplam satır |
total_lines_deleted | number | Silinen toplam satır |
created_at | string | Alma zaman damgası (ISO biçimi) |
metadata_json | string | JSON olarak dizgeleştirilmiş metadata girdi dizisi |
- metadata_json, metadata girdilerinin JSON olarak dizgeleştirilmiş bir dizisidir (gizlilik modunda fileName atlanabilir)
- CSV tüketirken, tırnak içindeki alanları ayrıştırdığından emin ol
change_id,user_id,user_email,source,model,total_lines_added,total_lines_deleted,created_at,metadata_json
749356201,user_3k9x8q...,developer@company.com,COMPOSER,gpt-4o,18,4,2025-07-30T15:10:12.000Z,"[{""fileName"":""src/analytics/report.ts"",""fileExtension"":""ts"",""linesAdded"":12,""linesDeleted"":3},{""fileName"":""src/analytics/ui.tsx"",""fileExtension"":""tsx"",""linesAdded"":6,""linesDeleted"":1}]"
749356202,user_3k9x8q...,developer@company.com,TAB,,8,2,2025-07-30T15:08:45.000Z,"[{""fileName"":""src/utils/helpers.ts"",""fileExtension"":""ts"",""linesAdded"":8,""linesDeleted"":2}]"
curl -L "https://api.cursor.com/analytics/ai-code/changes.csv?startDate=30d&endDate=now" \
-u YOUR_API_KEY: \
-o changes.csv
- Tüm uç noktalar genelinde tek bir kullanıcıyı hızlıca filtrelemek için
user
parametresini kullan
- Büyük veri çıkarımları için CSV uç noktalarını tercih et — sunucu tarafında 10.000 kayıttan oluşan sayfalar halinde akış sağlarlar
- Varsayılan dal çözülemediyse
isPrimaryBranch
tanımsız olabilir
commitTs
commit zaman damgasıdır; createdAt
sunucularımızda alınma (ingestion) zamanıdır
- İstemcide gizlilik modu etkinleştirildiğinde bazı alanlar olmayabilir
- Alfa sürümü: Commit’ler ve değişiklikler için ilk uç noktalar. Yanıt biçimleri geri bildirimlere göre evrilebilir