Skip to main content
GET
Obtenir les analyses des appels d’outils des agents
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 la surveillance de l’utilisation en temps réel. Sa 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 exportations en masse.

Authentification

Cet endpoint utilise l’authentification par jeton Bearer. Incluez votre token dans l’en-tête Authorization :
Utilisez soit une clé API d’utilisateur de service Devin disposant de l’autorisation Utiliser l’API d’analyse locale, 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. Contrairement à la source de données v1 cascade_tool_usage, cet endpoint accepte les clés API d’utilisateur de service Devin : les Teams de la plateforme Cognition peuvent donc suivre l’utilisation des outils sans clé de service Windsurf.

Métriques

Le paramètre de requête metric est obligatoire et n’accepte actuellement que calls, soit le nombre d’appels d’outils effectués par l’agent. Il figure sous la forme d’un champ entier calls dans chaque ligne. Les requêtes sans metric, ou qui spécifient une autre métrique, échouent avec une erreur 400. Les appels d’outils sont comptabilisés chaque fois que l’agent invoque un outil dans Devin Desktop ou dans la Devin CLI (y compris lorsque la CLI s’exécute en tant qu’agent dans d’autres éditeurs), quel que soit le modèle utilisé. Le paramètre product est également obligatoire et n’accepte actuellement que agent.

Outils

Regroupez par tool pour ventiler les appels par catégorie d’outil. Chaque ligne comporte alors un champ tool contenant l’une des valeurs suivantes : Toutes les catégories ne s’appliquent pas à tous les clients : LIST_DIRECTORY, MEMORY, PROPOSE_CODE, PROXY_WEB_SERVER, DEPLOY_WEB_APP et MQUERY sont enregistrés pour l’agent Devin Desktop, tandis que les nouveaux outils Devin CLI auxquels aucune catégorie n’a encore été attribuée sont comptabilisés dans OTHER.

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=tool — chaque ligne inclut un tool (voir Outils ci-dessus)
  • group_by=user — chaque ligne inclut un user_id, ainsi qu’un user_email lorsqu’une adresse est enregistrée pour cet utilisateur
  • 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 nécessite d’inclure également ide)
  • group_by=os — chaque ligne inclut un os, par exemple darwin (macOS), windows ou linux
Les dimensions peuvent être combinées : par exemple, group_by=user,tool indique combien de fois chaque utilisateur a invoqué chaque outil. Les dimensions session et source de Get Output ne sont pas prises en charge ici. Les mêmes filtres models, group_id et user_id que pour Get Consumption s’appliquent, ainsi qu’un filtre tool qui limite le décompte à une seule catégorie d’outil (par exemple tool=SEARCH_WEB). tool n’est accepté que par cet endpoint ; le transmettre à un autre endpoint de l’API d’analyse v2 provoque une erreur 400.

Exemple

Compter les recherches Web par utilisateur sur une semaine :
Chaque ligne correspond au nombre de SEARCH_WEB d’un utilisateur. Pour afficher plutôt toutes les catégories par utilisateur, supprimez le filtre tool et ajoutez group_by=user,tool.

Pagination

Les résultats sont paginés, avec une taille de page par défaut de 1 000 lignes (10 000 au maximum). Lorsque d’autres résultats sont disponibles, la réponse contient un next_page_cursor dans l’objet pagination. Transmettez-le dans le paramètre de requête page_cursor d’une requête qui reprend, pour le reste, les paramètres de requête d’origine. Les curseurs sont liés à l’endpoint qui les a émis ; un curseur provenant de /consumption ou de /output est rejeté avec une erreur 400. Les curseurs de pagination expirent au bout de 24 heures. La requête d’une page suivante n’est pas décomptée comme une nouvelle requête de votre limite de débit.

Limites de débit

Cet endpoint est soumis à une limite de débit de 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 antérieure (via un next_page_cursor) n’est pas décomptée de cette limite — seule la requête initiale de chaque rapport l’est. Cette limite volontairement basse s’explique par le fait que cet endpoint est destiné aux rapports périodiques, et non à 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

Métrique à renvoyer, présentée sous forme de champ sur chaque ligne. Métriques prises en charge :

  • calls — nombre d’appels d’outils effectués par l’agent
start_date
string<date>
requis

Début de la plage de dates (inclus) au format YYYY-MM-DD.

end_date
string<date>
requis

Fin de la plage de dates (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 d’appels d’outils.

Options disponibles:
agent
granularity
enum<string>

Granularité temporelle du regroupement des résultats. Lorsqu’elle est spécifiée, chaque ligne inclut un champ timestamp. Si elle est omise, 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 selon lesquelles regrouper les résultats, séparées par des virgules. Dimensions prises en charge :

  • tool — inclut tool dans chaque ligne (la catégorie d’outil, comme SEARCH_WEB ou RUN_COMMAND)
  • user — inclut user_id dans chaque ligne, ainsi que user_email lorsqu’une adresse e-mail est enregistrée pour l’utilisateur
  • 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
models
string

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

tool
string

Limiter le décompte à une seule catégorie d’outil, comme SEARCH_WEB ou RUN_COMMAND (correspondance exacte). Accepté uniquement par cet endpoint.

group_id
string

Limiter les résultats aux utilisateurs d’un groupe spécifique. La clé de service doit avoir accès à ce groupe. Non pris en charge avec les clés API d’utilisateur 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 valeur pour metric que dans la requête ayant généré ce curseur ; les curseurs générés par d’autres endpoints sont rejetés.

Réponse

Données d’appels d’outils renvoyées avec succès.

data
object[]
requis

Tableau de lignes de données sur les appels d’outils.

pagination
object
requis
metadata
object
requis