Skip to main content

Command Palette

Search for a command to run...

API

API de Rastreamento de Código com IA

A API de Rastreamento de Código com IA permite rastrear contribuições de código geradas por IA nos repositórios da sua equipe, incluindo o uso de IA por commit e alterações de IA aceitas em nível granular.

  • A API de Rastreamento de Código com IA usa Autenticação Básica, com sua chave de API como nome de usuário, assim como a API de administração.
  • Para saber como criar chaves de API e obter detalhes sobre métodos de autenticação, limites de taxa e boas práticas, consulte a Visão geral da API.
  • Disponibilidade: somente para Enterprise; entre em contato com vendas para obter acesso
  • Status: Alpha (os formatos de resposta e os campos podem mudar)
  • Limitação do espaço de trabalho: as métricas são calculadas apenas para o repositório git no nível superior da raiz do espaço de trabalho. Espaços de trabalho com várias raízes não são compatíveis no momento.

Endpoints

Obter métricas de commits de IA (JSON, paginadas)

GET/analytics/ai-code/commits

Recupera métricas agregadas por commit que atribuem linhas ao TAB, ao COMPOSER e a recursos sem IA.

Parâmetros

startDate string | date

String de data ISO, o literal "now" ou dias relativos como "7d" (equivale a now - 7 days). Padrão: now - 7 days

endDate string | date

String de data ISO, o literal "now" ou dias relativos como "0d". Padrão: now

page number

Número da página (começa em 1). Padrão: 1

pageSize number

Resultados por página. Padrão: 100, Máx.: 1000

user string

Filtro opcional para um único usuário. Aceita email (por exemplo, [email protected]), ID codificado (por exemplo, user_abc123...) ou ID numérico (por exemplo, 42)

Campos de resposta

CampoTipoDescrição
commitHashstringHash do commit Git
userIdstringID de usuário codificado (por exemplo, user_abc123)
userEmailstringEndereço de email do usuário
repoNamestringnullNome do repositório
branchNamestringnullNome da branch
isPrimaryBranchbooleannullIndica se esta é a branch principal
commitSource"ide""cli""cloud"Origem do commit.
totalLinesAddednumberTotal de linhas adicionadas no commit
totalLinesDeletednumberTotal de linhas excluídas no commit
tabLinesAddednumberLinhas adicionadas por conclusões do TAB
tabLinesDeletednumberLinhas excluídas por conclusões do TAB
composerLinesAddednumberLinhas adicionadas pelo Composer
composerLinesDeletednumberLinhas excluídas pelo Composer
nonAiLinesAddednumbernullLinhas adicionadas sem IA
nonAiLinesDeletednumbernullLinhas excluídas sem IA
messagestringnullMensagem do commit
commitTsstringnullTimestamp do commit (formato ISO)
createdAtstringTimestamp de ingestão (formato ISO)
curl -X GET "https://api.cursor.com/analytics/ai-code/commits?startDate=7d&endDate=now&page=1&pageSize=100" \  -u YOUR_API_KEY:

Resposta:

{  "items": [    {      "commitHash": "a1b2c3d4",      "userId": "user_3k9x8q...",      "userEmail": "[email protected]",      "repoName": "company/repo",      "branchName": "main",      "isPrimaryBranch": true,      "commitSource": "ide",      "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}

Baixar métricas de commits de IA (CSV, streaming)

GET/analytics/ai-code/commits.csv

Baixe dados de métricas de commits em formato CSV para grandes extrações de dados.

Parâmetros

startDate string | date

String de data ISO, o literal "now" ou dias relativos como "7d" (equivale a now - 7 days). Padrão: now - 7 days

endDate string | date

String de data ISO, o literal "now" ou dias relativos como "0d". Padrão: now

user string

Filtro opcional por um único usuário. Aceita e-mail (por exemplo, [email protected]), ID codificado (por exemplo, user_abc123...) ou ID numérico (por exemplo, 42)

Cabeçalhos da resposta

  • Content-Type: text/csv; charset=utf-8

Colunas CSV

ColunaTipoDescrição
commit_hashstringHash do commit Git
user_idstringID de usuário codificado
user_emailstringEndereço de e-mail do usuário
repo_namestringNome do repositório
branch_namestringNome da branch
is_primary_branchbooleanIndica se é a branch principal
commit_sourcestringOrigem do commit (ide, cli ou cloud)
total_lines_addednumberTotal de linhas adicionadas no commit
total_lines_deletednumberTotal de linhas removidas no commit
tab_lines_addednumberLinhas adicionadas por meio das conclusões do TAB
tab_lines_deletednumberLinhas removidas por meio das conclusões do TAB
composer_lines_addednumberLinhas adicionadas pelo Composer
composer_lines_deletednumberLinhas removidas pelo Composer
non_ai_lines_addednumberLinhas não geradas por IA adicionadas
non_ai_lines_deletednumberLinhas não geradas por IA removidas
messagestringMensagem do commit
commit_tsstringTimestamp do commit (formato ISO)
created_atstringTimestamp de ingestão (formato ISO)
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

Exemplo de saída em CSV:

commit_hash,commit_source,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_ata1b2c3d4,ide,user_3k9x8q...,[email protected],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.000Ze5f6g7h8,cloud,user_3k9x8q...,[email protected],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

Obter métricas de alterações de código com IA (JSON paginado)

GET/analytics/ai-code/changes

Recupera alterações detalhadas aceitas de IA, agrupadas por changeId determinístico. Útil para analisar eventos de IA aceitos independentemente dos commits.

Parâmetros

startDate string | date

String de data ISO, o literal "now" ou dias relativos, como "7d" (equivale a now - 7 days). Padrão: now - 7 days

endDate string | date

String de data ISO, o literal "now" ou dias relativos, como "0d". Padrão: now

page number

Número da página (começando em 1). Padrão: 1

pageSize number

Resultados por página. Padrão: 100. Máximo: 1000

user string

Filtro opcional para um único usuário. Aceita e-mail (por exemplo, [email protected]), ID codificado (por exemplo, user_abc123...) ou ID numérico (por exemplo, 42)

Campos da resposta

CampoTipoDescrição
changeIdstringID determinístico da alteração
userIdstringID de usuário codificado (por exemplo, user_abc123)
userEmailstringEndereço de e-mail do usuário
source"TAB""COMPOSER"
modelstringnull
totalLinesAddednumberTotal de linhas adicionadas
totalLinesDeletednumberTotal de linhas excluídas
createdAtstringTimestamp de ingestão (formato ISO)
metadataArrayMetadados do arquivo (fileName pode ser omitido no modo de privacidade)
curl -X GET "https://api.cursor.com/analytics/ai-code/changes?startDate=14d&endDate=now&page=1&pageSize=200" \  -u YOUR_API_KEY:

Resposta:

{  "items": [    {      "changeId": "749356201",      "userId": "user_3k9x8q...",      "userEmail": "[email protected]",      "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}

Baixar métricas de alterações de código com IA (CSV, streaming)

GET/analytics/ai-code/changes.csv

Baixe dados de métricas de alterações em formato CSV para grandes extrações de dados.

Parâmetros

startDate string | date

String de data ISO, o literal "now" ou dias relativos como "7d" (equivale a agora - 7 dias). Padrão: agora - 7 dias

endDate string | date

String de data ISO, o literal "now" ou dias relativos como "0d". Padrão: agora

user string

Filtro opcional para um único usuário. Aceita e-mail (por exemplo, [email protected]), ID codificado (por exemplo, user_abc123...) ou ID numérico (por exemplo, 42)

Cabeçalhos da resposta

  • Content-Type: text/csv; charset=utf-8

Colunas do CSV

ColunaTipoDescrição
change_idstringID determinístico da alteração
user_idstringID de usuário codificado
user_emailstringEndereço de e-mail do usuário
sourcestringOrigem da alteração de IA (TAB ou COMPOSER)
modelstringModelo de IA usado
total_lines_addednumberTotal de linhas adicionadas
total_lines_deletednumberTotal de linhas excluídas
created_atstringtimestamp de ingestão (formato ISO)
metadata_jsonstringArray de entradas de metadados serializado como string JSON
curl -L "https://api.cursor.com/analytics/ai-code/changes.csv?startDate=30d&endDate=now" \  -u YOUR_API_KEY: \  -o changes.csv

Exemplo de saída CSV:

change_id,user_id,user_email,source,model,total_lines_added,total_lines_deleted,created_at,metadata_json749356201,user_3k9x8q...,[email protected],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...,[email protected],TAB,,8,2,2025-07-30T15:08:45.000Z,"[{""fileName"":""src/utils/helpers.ts"",""fileExtension"":""ts"",""linesAdded"":8,""linesDeleted"":2}]"

Obter detalhes do commit

GET/analytics/ai-code/commits/:commitHash

Recupera informações detalhadas de um ou mais commits, incluindo anotações de blame e metadados das conversas referenciadas.

Parâmetros de caminho

commitHash string

Hash de um único commit ou lista de hashes separados por vírgulas (por exemplo, abc123,def456)

Parâmetros de consulta

branch string

Filtro opcional por nome da branch

Campos de resposta

Retorna um objeto contendo as matrizes commits e conversations.

CampoTipoDescrição
commitsmatrizMatriz de objetos de commit com anotações de blame
commits[].commitSource"ide""cli""cloud"Origem do commit.
commits[].rangeAnnotationsmatrizDados de blame por arquivo para o commit
commits[].rangeAnnotations[].filePathstringCaminho do arquivo no repositório
commits[].rangeAnnotations[].groupsmatrizMatriz de grupos de anotações
commits[].rangeAnnotations[].groups[].conversationIdstringnullID da conversa que gerou este código
commits[].rangeAnnotations[].groups[].modelstringnullModelo de IA usado para gerar o código
commits[].rangeAnnotations[].groups[].operationTypestringTipo de operação realizada
commits[].rangeAnnotations[].groups[].rangesmatrizMatriz de intervalos de linhas afetados por esta anotação
commits[].rangeAnnotations[].groups[].ranges[].startnumberNúmero da linha inicial
commits[].rangeAnnotations[].groups[].ranges[].endnumberNúmero da linha final
conversationsmatrizMetadados de todas as conversas referenciadas
conversations[].idstringIdentificador único da conversa
conversations[].titlestringnullTítulo da conversa
conversations[].tldrstringnullResumo breve
conversations[].overviewstringnullVisão geral detalhada
conversations[].summaryBulletsmatriznullMatriz de tópicos do resumo

Um único commit:

curl -X GET "https://api.cursor.com/analytics/ai-code/commits/0aabf603dc906e05bf5e4d9fd423fdd517f2e43f?branch=main" \  -u YOUR_API_KEY:

Vários commits:

curl -X GET "https://api.cursor.com/analytics/ai-code/commits/abc123,def456,ghi789" \  -u YOUR_API_KEY:

Resposta:

{  "commits": [    {      "commitHash": "0aabf603dc906e05bf5e4d9fd423fdd517f2e43f",      "commitSource": "ide",      "rangeAnnotations": [        {          "filePath": "src/analytics/report.ts",          "groups": [            {              "conversationId": "conv_abc123",              "model": "gpt-4o",              "operationType": "insert",              "ranges": [                { "start": 10, "end": 25 },                { "start": 42, "end": 58 }              ]            }          ]        }      ]    }  ],  "conversations": [    {      "id": "conv_abc123",      "title": "Refatorar módulo de analytics",      "tldr": "Extraída a geração de relatórios para funções separadas",      "overview": "O módulo de analytics foi refatorado para melhorar a manutenção, extraindo a lógica de geração de relatórios.",      "summaryBullets": [        "Criada uma classe dedicada para gerar relatórios",        "Adicionados testes unitários para as novas funções",        "Atualizadas as importações nos arquivos afetados"      ]    }  ]}

Parâmetros de consulta comuns

Todos os endpoints aceitam os mesmos parâmetros de consulta na string de consulta:

ParâmetroTipoObrigatórioDescrição
startDatestringdateNo
endDatestringdateNo
pagenumberNoNúmero da página (a partir de 1). Padrão: 1
pageSizenumberNoResultados por página. Padrão: 100, máx.: 1000
userstringNoFiltro opcional por um único usuário. Aceita e-mail (por exemplo, [email protected]), ID codificado (por exemplo, user_abc123...) ou ID numérico (por exemplo, 42)

Semântica e cálculo das métricas

  • Fontes: "TAB" representa sugestões inline aceitas; "COMPOSER" representa diffs aceitos de edições do agente
  • Métricas de linhas: tabLinesAdded/Deleted e composerLinesAdded/Deleted são contados separadamente; nonAiLinesAdded/Deleted é derivado como max(0, totalLines - linhas de IA)
  • Modo de privacidade: se habilitado no cliente, alguns metadados (como fileName) podem ser omitidos
  • Informações da branch: isPrimaryBranch é verdadeiro quando a branch atual é igual à branch padrão do repositório; pode ser indefinido se as informações do repositório não estiverem disponíveis

Você pode examinar esse arquivo para entender como commits e alterações são detectados e relatados.

Dicas

  • Use o parâmetro user para filtrar rapidamente um único usuário em todos os endpoints
  • Para grandes extrações de dados, prefira endpoints CSV — eles transmitem páginas de 10.000 registros no servidor
  • isPrimaryBranch pode ser indefinido se o cliente não conseguir resolver a branch padrão
  • commitTs é o timestamp do commit; createdAt é o momento da ingestão em nossos servidores
  • Alguns campos podem estar ausentes quando o modo de privacidade está habilitado no cliente
  • Os hashes de commit não são únicos nem imutáveis. Por exemplo, você pode ver o mesmo commit duas vezes se complementar commits com informações adicionais.
  • Os timestamps dos commits permanecerão inalterados mesmo que o commit seja complementado.

Registro de alterações

  • Versão alfa: Endpoints iniciais para commits e alterações. Os formatos de resposta podem evoluir com base no feedback.

O Rastreamento de Código com IA está disponível no plano Enterprise

Entre em contato com nossa equipe para acessar métricas detalhadas de uso de IA.

Contact Sales