Skip to main content
GET
Obtenir les analyses de production de l’agent (lignes de code)
Il s’agit d’un endpoint v2 qui utilise l’authentification par jeton Bearer et des paramètres de requête, contrairement à l’API d’analyse v1, qui utilise des clés de service dans le corps de la requête. Consultez la section Authentification ci-dessous.
Cet endpoint n’est pas conçu pour suivre l’utilisation en temps réel. Les données sont agrégées par heure et la limite de débit est faible (10 requêtes par heure et par Team). Utilisez-le plutôt pour des rapports périodiques et des exports en masse.

Authentification

Cet endpoint utilise l’authentification par jeton Bearer. Ajoutez votre token dans l’en-tête Authorization :
Utilisez soit une API key d’utilisateur de service Devin disposant de l’autorisation Use Local Analytics API, soit une clé de service Windsurf disposant de l’autorisation Analytics Read. Consultez la section Authentification pour savoir comment créer l’une ou l’autre.

Métriques

Le paramètre de requête metric est obligatoire et accepte la liste des métriques à renvoyer, séparées par des virgules. Chaque métrique demandée apparaît sous forme de champ entier dans chaque ligne : Par exemple, ?metric=loc_inserted,loc_deleted renvoie les deux ; ?metric=loc_inserted renvoie uniquement loc_inserted. Les requêtes sans metric ou indiquant une métrique inconnue échouent avec une erreur 400. Les lignes sont comptabilisées lorsqu’un utilisateur accepte une modification de l’agent dans Devin Desktop ou dans Devin CLI, quel que soit le modèle utilisé. Le paramètre product est également obligatoire et n’accepte actuellement que la valeur agent.

Regroupement et granularité

Utilisez granularity et group_by pour contrôler la structure des données renvoyées :
  • Sans granularité ni regroupement — renvoie une seule ligne agrégée pour l’ensemble de la plage de dates
  • granularity=daily — chaque ligne inclut un timestamp au format YYYY-MM-DD
  • granularity=monthly — chaque ligne inclut un timestamp au format YYYY-MM
  • group_by=user — chaque ligne inclut un user_id et un user_email
  • group_by=session — chaque ligne inclut un session_id (la conversation Devin Desktop ou la session CLI dans laquelle les lignes ont été acceptées)
  • group_by=model_uid — chaque ligne inclut un model_uid
  • group_by=ide — chaque ligne inclut un ide
  • group_by=ide,ide_version — chaque ligne inclut ide et ide_version (le regroupement par ide_version exige d’inclure également ide)
  • group_by=os — chaque ligne inclut un os, par exemple darwin (macOS), windows ou linux
  • group_by=source — chaque ligne inclut une source : CASCADE_CLIENT pour les lignes acceptées dans Devin Desktop, CHISEL pour les lignes acceptées dans la Devin CLI (y compris lorsque la CLI s’exécute en tant qu’agent dans d’autres éditeurs)
Les dimensions peuvent être combinées, par exemple group_by=user,source,model_uid. Les filtres models, group_id et user_id s’appliquent de la même manière que pour Get Consumption.

Pagination

Les résultats sont paginés avec une taille de page par défaut de 1 000 lignes (maximum 10 000). Lorsque d’autres résultats sont disponibles, la réponse inclut un next_page_cursor dans l’objet pagination. Transmettez-le dans le paramètre de requête page_cursor pour récupérer la page suivante, avec la même liste metric que dans la requête initiale. Les curseurs sont liés à l’endpoint et aux métriques pour lesquels ils ont été émis ; un curseur provenant de /consumption, ou émis pour une autre liste metric, est rejeté avec une erreur 400. Les curseurs de page expirent au bout de 24 heures. Une requête de page suivante n’est pas comptabilisée comme une nouvelle requête dans votre limite de débit.

Limites de débit

Cet endpoint est limité à 10 requêtes par heure par team. En cas de dépassement de cette limite, le serveur renvoie 429 Too Many Requests avec un en-tête Retry-After. La pagination d’une requête précédente (en suivant un next_page_cursor) n’est pas prise en compte dans cette limite — seule la requête initiale de chaque rapport l’est. Cette limite basse s’explique par le fait que cet endpoint est conçu pour des rapports périodiques, et non pour la surveillance de l’utilisation en temps réel.

Autorisations

Authorization
string
header
requis

Une clé de service disposant de l’autorisation Analytics Read, transmise comme jeton Bearer dans l’en-tête Authorization.

Créez une clé de service dans les paramètres de votre Team, à l’adresse team settings, dans la section "Service Keys".

Paramètres de requête

metric
string
requis

Liste des métriques de production à renvoyer, séparées par des virgules ; chaque métrique apparaît sous forme de champ dans chaque ligne. Métriques prises en charge :

  • loc_inserted — lignes insérées par l’agent et acceptées par l’utilisateur
  • loc_deleted — lignes supprimées par l’agent et dont la suppression a été acceptée par l’utilisateur
start_date
string<date>
requis

Date de début de la plage (incluse) au format YYYY-MM-DD.

end_date
string<date>
requis

Date de fin de la plage (incluse) au format YYYY-MM-DD. La plage ne doit pas dépasser 90 jours.

product
enum<string>
requis

Produit pour lequel récupérer les données de production.

Options disponibles:
agent
granularity
enum<string>

Granularité temporelle utilisée pour regrouper les résultats. Si elle est spécifiée, chaque ligne inclut un champ timestamp. Sinon, les résultats sont agrégés sur l’ensemble de la plage de dates.

Options disponibles:
daily,
monthly
group_by
string

Liste des dimensions de regroupement des résultats, séparées par des virgules. Dimensions prises en charge :

  • user — inclut user_id et user_email dans chaque ligne
  • session — inclut session_id dans chaque ligne
  • model_uid — inclut model_uid dans chaque ligne
  • ide — inclut ide dans chaque ligne
  • ide_version — inclut ide_version dans chaque ligne ; nécessite que ide soit également inclus
  • os — inclut os dans chaque ligne
  • source — inclut source dans chaque ligne (CASCADE_CLIENT pour Devin Desktop, CHISEL pour Devin CLI)
models
string

Liste des UID de modèles, séparés par des virgules, auxquels limiter les résultats.

group_id
string

Limiter les résultats aux utilisateurs d’un groupe spécifique. La clé de service doit avoir accès à ce groupe. Ce filtre n’est pas pris en charge avec les API keys d’utilisateurs de service Devin.

user_id
string

Limiter les résultats à un utilisateur spécifique (UID d’authentification).

page_size
integer
défaut:1000

Nombre maximal de lignes à renvoyer par page.

Plage requise: 1 <= x <= 10000
page_cursor
string

Curseur opaque issu du champ pagination.next_page_cursor d’une réponse précédente, permettant de récupérer la page suivante. Transmettez la même liste metric que dans la requête ayant généré ce curseur ; les curseurs générés par d’autres endpoints ou pour une liste metric différente sont rejetés.

Réponse

Données de production renvoyées avec succès.

data
object[]
requis

Liste des lignes de données de production.

pagination
object
requis
metadata
object
requis