Skip to main content

Command Palette

Search for a command to run...

API

API de Seguimiento de Código con IA

La API de Seguimiento de Código con IA te permite hacer un seguimiento de las contribuciones de código generado por IA en los repositorios de tu equipo, incluido el consumo de IA por commit y los cambios de IA aceptados de forma detallada.

  • La API de Seguimiento de Código con IA usa autenticación básica con tu clave de API como nombre de usuario, igual que la Admin API.
  • Para obtener información sobre cómo crear claves de API, métodos de autenticación, límites de uso y mejores prácticas, consulta la API Overview.
  • Disponibilidad: Solo Enterprise; contacta con ventas para obtener acceso
  • Estado: Alpha (las estructuras y los campos de respuesta pueden cambiar)
  • Limitación del espacio de trabajo: Las métricas solo se calculan para el repositorio git ubicado en el nivel superior de la raíz del espacio de trabajo. Actualmente no se admiten los espacios de trabajo multi-root.

Endpoints

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

GET/analytics/ai-code/commits

Obtiene métricas agregadas por commit que atribuyen líneas a TAB, COMPOSER y contenido no generado por IA.

Parámetros

startDate string | date

Cadena de fecha ISO, el literal "now" o días relativos como "7d" (equivale a now - 7 days). Predeterminado: now - 7 days

endDate string | date

Cadena de fecha ISO, el literal "now" o días relativos como "0d". Predeterminado: now

page number

Número de página (empieza en 1). Predeterminado: 1

pageSize number

Resultados por página. Predeterminado: 100, máximo: 1000

user string

Filtro opcional para un único usuario. Acepta correo electrónico (p. ej., [email protected]), ID codificado (p. ej., user_abc123...) o ID numérico (p. ej., 42)

Campos de respuesta

CampoTipoDescripción
commitHashstringHash del commit de Git
userIdstringID de usuario codificado (p. ej., user_abc123)
userEmailstringDirección de correo electrónico del usuario
repoNamestringnullNombre del repositorio
branchNamestringnullNombre de la rama
isPrimaryBranchbooleannullIndica si es la rama principal
commitSource"ide""cli""cloud"Origen del commit.
totalLinesAddednumberTotal de líneas añadidas en el commit
totalLinesDeletednumberTotal de líneas eliminadas en el commit
tabLinesAddednumberLíneas añadidas mediante TAB completions
tabLinesDeletednumberLíneas eliminadas mediante TAB completions
composerLinesAddednumberLíneas añadidas mediante Composer
composerLinesDeletednumberLíneas eliminadas mediante Composer
nonAiLinesAddednumbernullLíneas no generadas por IA añadidas
nonAiLinesDeletednumbernullLíneas no generadas por IA eliminadas
messagestringnullMensaje del commit
commitTsstringnullMarca de tiempo del commit (formato ISO)
createdAtstringMarca de tiempo de ingesta (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:

Respuesta:

{  "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": "Refactorización: extraer el cliente de analítica",      "commitTs": "2025-07-30T14:12:03.000Z",      "createdAt": "2025-07-30T14:12:30.000Z"    }  ],  "totalCount": 42,  "page": 1,  "pageSize": 100}

Descargar métricas de commits de IA (CSV, en streaming)

GET/analytics/ai-code/commits.csv

Descarga datos de métricas de commits en formato CSV para extraer grandes volúmenes de datos.

Parámetros

startDate string | date

Cadena de fecha ISO, el literal "now" o días relativos como "7d" (equivale a now - 7 días). Valor predeterminado: now - 7 días

endDate string | date

Cadena de fecha ISO, el literal "now" o días relativos como "0d". Valor predeterminado: now

user string

Filtro opcional para un único usuario. Acepta correo electrónico (p. ej., [email protected]), ID codificado (p. ej., user_abc123...) o ID numérico (p. ej., 42)

Encabezados de respuesta

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

Columnas CSV

ColumnaTipoDescripción
commit_hashstringHash del commit de Git
user_idstringID de usuario codificado
user_emailstringDirección de correo electrónico del usuario
repo_namestringNombre del repositorio
branch_namestringNombre de la rama
is_primary_branchbooleanIndica si es la rama principal
commit_sourcestringOrigen del commit (ide, cli o cloud)
total_lines_addednumberTotal de líneas añadidas en el commit
total_lines_deletednumberTotal de líneas eliminadas en el commit
tab_lines_addednumberLíneas añadidas mediante completaciones de TAB
tab_lines_deletednumberLíneas eliminadas mediante completaciones de TAB
composer_lines_addednumberLíneas añadidas mediante Composer
composer_lines_deletednumberLíneas eliminadas mediante Composer
non_ai_lines_addednumberLíneas añadidas no generadas por IA
non_ai_lines_deletednumberLíneas eliminadas no generadas por IA
messagestringMensaje del commit
commit_tsstringMarca de tiempo del commit (formato ISO)
created_atstringMarca de tiempo de ingestión (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

Ejemplo de salida en 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

Obtener métricas de cambios de código de IA (JSON, paginado)

GET/analytics/ai-code/changes

Obtén cambios de IA aceptados detallados, agrupados por changeId determinista. Resulta útil para analizar eventos de IA aceptados independientemente de los commits.

Parámetros

startDate string | date

Cadena de fecha ISO, el literal "now" o días relativos como "7d" (equivale a now - 7 días). Predeterminado: now - 7 días

endDate string | date

Cadena de fecha ISO, el literal "now" o días relativos como "0d". Predeterminado: now

page number

número de página (indexado desde 1). predeterminado: 1

pageSize number

resultados por página. predeterminado: 100; máximo: 1000

user string

Filtro opcional para un solo usuario. Acepta correo electrónico (p. ej., [email protected]), ID codificado (p. ej., user_abc123...) o ID numérico (p. ej., 42)

Campos de respuesta

CampoTipoDescripción
changeIdstringID determinista del cambio
userIdstringID de usuario codificado (p. ej., user_abc123)
userEmailstringDirección de correo electrónico del usuario
source"TAB""COMPOSER"
modelstringnull
totalLinesAddednumberTotal de líneas añadidas
totalLinesDeletednumberTotal de líneas eliminadas
createdAtstringMarca de tiempo de ingesta (formato ISO)
metadataArrayMetadatos del archivo (fileName puede omitirse en modo de privacidad)
curl -X GET "https://api.cursor.com/analytics/ai-code/changes?startDate=14d&endDate=now&page=1&pageSize=200" \  -u YOUR_API_KEY:

Respuesta:

{  "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}

Descargar métricas de cambios de código de IA (CSV, en flujo)

GET/analytics/ai-code/changes.csv

Descarga datos de métricas de cambios en formato CSV para extraer grandes volúmenes de datos.

Parámetros

startDate string | date

Cadena de fecha ISO, el literal "now" o días relativos como "7d" (equivale a now - 7 días). Predeterminado: now - 7 días

endDate string | date

Cadena de fecha ISO, el literal "now" o días relativos como "0d". Predeterminado: now

user string

Filtro opcional para un solo usuario. Acepta correo electrónico (p. ej., [email protected]), ID codificado (p. ej., user_abc123...) o ID numérico (p. ej., 42)

Encabezados de respuesta

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

Columnas CSV

ColumnaTipoDescripción
change_idstringID determinista del cambio
user_idstringID de usuario codificado
user_emailstringDirección de correo electrónico del usuario
sourcestringOrigen del cambio de IA (TAB o COMPOSER)
modelstringModelo de IA utilizado
total_lines_addednumberTotal de líneas añadidas
total_lines_deletednumberTotal de líneas eliminadas
created_atstringMarca de tiempo de ingesta (formato ISO)
metadata_jsonstringArray de entradas de metadatos serializado en JSON
curl -L "https://api.cursor.com/analytics/ai-code/changes.csv?startDate=30d&endDate=now" \  -u YOUR_API_KEY: \  -o changes.csv

Ejemplo de salida 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}]"

Obtener detalles del commit

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

Obtiene información detallada de uno o varios commits, incluidas anotaciones de blame y metadatos de las conversaciones referenciadas.

Parámetros de ruta

commitHash string

Hash de un único commit o lista de hashes separados por comas (p. ej., abc123,def456)

Parámetros de consulta

branch string

Filtro opcional por nombre de rama

Campos de respuesta

Devuelve un objeto con los arrays commits y conversations.

CampoTipoDescripción
commitsarrayArray de objetos de commit con anotaciones de blame
commits[].commitSource"ide""cli""cloud"Origen del commit.
commits[].rangeAnnotationsarrayDatos de blame del commit a nivel de archivo
commits[].rangeAnnotations[].filePathstringRuta del archivo dentro del repositorio
commits[].rangeAnnotations[].groupsarrayArray de grupos de anotaciones
commits[].rangeAnnotations[].groups[].conversationIdstringnullID de la conversación que generó este código
commits[].rangeAnnotations[].groups[].modelstringnullModelo de IA utilizado para generar el código
commits[].rangeAnnotations[].groups[].operationTypestringTipo de operación realizada
commits[].rangeAnnotations[].groups[].rangesarrayArray de rangos de líneas afectados por esta anotación
commits[].rangeAnnotations[].groups[].ranges[].startnumberNúmero de línea inicial
commits[].rangeAnnotations[].groups[].ranges[].endnumberNúmero de línea final
conversationsarrayMetadatos de todas las conversaciones referenciadas
conversations[].idstringIdentificador único de la conversación
conversations[].titlestringnullTítulo de la conversación
conversations[].tldrstringnullResumen breve
conversations[].overviewstringnullDescripción detallada
conversations[].summaryBulletsarraynullArray de puntos del resumen

Un solo commit:

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

Varios commits:

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

Respuesta:

{  "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": "Refactor analytics module",      "tldr": "Extracted report generation into separate functions",      "overview": "Refactored the analytics module to improve maintainability by extracting report generation logic.",      "summaryBullets": [        "Created dedicated report generator class",        "Added unit tests for new functions",        "Updated imports across affected files"      ]    }  ]}

Parámetros de consulta comunes

Todos los endpoints aceptan los mismos parámetros de consulta en la cadena de consulta:

ParámetroTipoObligatorioDescripción
startDatestringdateNo
endDatestringdateNo
pagenumberNonúmero de página (indexado desde 1). predeterminado: 1
pageSizenumberNoresultados por página. predeterminado: 100; máximo: 1000
userstringNoFiltro opcional por un único usuario. Acepta correo electrónico (p. ej., [email protected]), ID codificado (p. ej., user_abc123...) o ID numérico (p. ej., 42)

Semántica y cálculo de métricas

  • Fuentes: "TAB" representa las completaciones en línea aceptadas; "COMPOSER" representa los diffs aceptados de las ediciones del Agente
  • Métricas de líneas: tabLinesAdded/Deleted y composerLinesAdded/Deleted se contabilizan por separado; nonAiLinesAdded/Deleted se genera automáticamente como max(0, totalLines - líneas de IA)
  • Modo de privacidad: Si está activado en el cliente, es posible que se omitan algunos metadatos (como fileName)
  • Información de la rama: isPrimaryBranch es true cuando la rama actual coincide con la rama predeterminada del repositorio; puede ser undefined si la información del repositorio no está disponible

Puedes revisar ese archivo para entender cómo se detectan y notifican los commits y cambios.

Consejos

  • Usa el parámetro user para filtrar rápidamente por un único usuario en todos los endpoints
  • Para extraer grandes volúmenes de datos, usa preferentemente los endpoints CSV: transmiten páginas de 10.000 registros desde el servidor
  • isPrimaryBranch puede no estar definido si el cliente no pudo resolver la rama predeterminada
  • commitTs es la marca de tiempo del commit; createdAt es la hora de ingestión en nuestros servidores
  • Es posible que falten algunos campos cuando el modo de privacidad está activado en el cliente
  • Los hashes de commit no son únicos ni inmutables. Por ejemplo, podrías ver el mismo commit dos veces si modificas commits con información adicional.
  • Las marcas de tiempo de los commits no cambian aunque se modifique el commit.

Registro de cambios

  • Versión alfa: Endpoints iniciales para commits y cambios. Las estructuras de respuesta pueden evolucionar según los comentarios recibidos

AI Code Tracking está disponible en el plan Enterprise

Contacta con nuestro equipo para acceder a métricas detalladas de consumo de IA.

Contact Sales