Skip to main content
GET
Ottieni analytics sull'output dell'agente (righe di codice)
Questo è un endpoint v2 che usa l’authentication con token Bearer e i parametri di query, a differenza dell’API di analisi v1, che usa le chiavi di servizio nel corpo della richiesta. Consulta la sezione Authentication più avanti.
Questo endpoint non è pensato per il monitoraggio dell’utilizzo in tempo reale. I dati sono aggregati su base oraria e il limite di frequenza è basso (10 richieste all’ora per team). Usalo per report periodici ed esportazioni in blocco.

Authentication

Questo endpoint utilizza l’authentication con token Bearer. Includi il tuo token nell’header Authorization:
Usa una API key dell’utente di servizio Devin con l’autorizzazione Use Local Analytics API oppure una chiave di servizio Windsurf con l’autorizzazione Lettura analytics. Per sapere come crearle, consulta Authentication.

Metriche

Il parametro di query metric è obbligatorio e accetta un elenco, separato da virgole, delle metriche da restituire. Ogni metrica richiesta compare come campo di tipo intero in ogni riga: Ad esempio, ?metric=loc_inserted,loc_deleted restituisce entrambe le metriche, mentre ?metric=loc_inserted restituisce solo loc_inserted. Le richieste prive di metric o che specificano una metrica sconosciuta non vanno a buon fine e restituiscono 400. Le righe vengono conteggiate quando un utente accetta una modifica dell’agente in Devin Desktop o nella Devin CLI, indipendentemente dal modello utilizzato. Anche il parametro product è obbligatorio e al momento accetta solo agent.

Raggruppamento e granularità

Usa granularity e group_by per controllare la struttura dei dati restituiti:
  • Nessuna granularità o raggruppamento — restituisce un’unica riga aggregata per l’intero intervallo di date
  • granularity=daily — ogni riga include un timestamp in formato YYYY-MM-DD
  • granularity=monthly — ogni riga include un timestamp in formato YYYY-MM
  • group_by=user — ogni riga include user_id e user_email
  • group_by=session — ogni riga include un session_id (la conversazione di Devin Desktop o la sessione della CLI in cui sono state accettate le righe)
  • group_by=model_uid — ogni riga include un model_uid
  • group_by=ide — ogni riga include un ide
  • group_by=ide,ide_version — ogni riga include ide e ide_version (per raggruppare per ide_version è necessario includere anche ide)
  • group_by=os — ogni riga include un os, ad esempio darwin (macOS), windows o linux
  • group_by=source — ogni riga include un campo source: CASCADE_CLIENT per le righe accettate in Devin Desktop, CHISEL per le righe accettate nella Devin CLI (inclusa la CLI eseguita come agente all’interno di altri editor)
Le dimensioni possono essere combinate, ad esempio group_by=user,source,model_uid. Si applicano gli stessi filtri models, group_id e user_id di Get Consumption.

Paginazione

I risultati sono paginati con una dimensione di pagina predefinita di 1.000 righe (massimo 10.000). Quando sono disponibili altri risultati, la risposta include un next_page_cursor nell’oggetto pagination. Passalo come parametro di query page_cursor per recuperare la pagina successiva, insieme allo stesso elenco metric della richiesta originale. I cursori sono legati all’endpoint e alle metriche che li hanno generati: un cursore proveniente da /consumption, o generato per un elenco metric diverso, viene rifiutato con 400. I cursori di pagina scadono dopo 24 ore. Le richieste delle pagine successive non vengono conteggiate come nuove query ai fini del limite di frequenza.

Limiti di frequenza

Questo endpoint ha un limite di frequenza di 10 richieste all’ora per team. Se superi questo limite, il server restituisce 429 Too Many Requests con un header Retry-After. La paginazione di una query precedente (tramite un next_page_cursor) non viene conteggiata ai fini di questo limite: conta solo la query iniziale di ciascun report. Il limite così basso si spiega con il fatto che questo endpoint è pensato per la reportistica periodica, non per il monitoraggio dell’utilizzo in tempo reale.

Autorizzazioni

Authorization
string
header
obbligatorio

Una chiave di servizio con autorizzazione Analisi Read, passata come token Bearer nell'header Authorization.

Crea una chiave di servizio nelle impostazioni del team, nella sezione "Service Keys".

Parametri della query

metric
string
obbligatorio

Elenco delle metriche di output da restituire, separate da virgole; ciascuna compare come campo in ogni riga. Metriche supportate:

  • loc_inserted — righe inserite dall'agente e accettate dall'utente
  • loc_deleted — righe eliminate dall'agente e accettate dall'utente
start_date
string<date>
obbligatorio

Data iniziale dell'intervallo (inclusa) nel formato YYYY-MM-DD.

end_date
string<date>
obbligatorio

Data finale dell'intervallo (inclusa) nel formato YYYY-MM-DD. L'intervallo non deve superare 90 giorni.

product
enum<string>
obbligatorio

Prodotto per cui recuperare l'output.

Opzioni disponibili:
agent
granularity
enum<string>

Granularità temporale per raggruppare i risultati. Se specificata, ogni riga include un campo timestamp. Se omessa, i risultati vengono aggregati sull'intero intervallo di date.

Opzioni disponibili:
daily,
monthly
group_by
string

Elenco delle dimensioni in base alle quali raggruppare i risultati, separate da virgole. Dimensioni supportate:

  • user — include user_id e user_email in ogni riga
  • session — include session_id in ogni riga
  • model_uid — include model_uid in ogni riga
  • ide — include ide in ogni riga
  • ide_version — include ide_version in ogni riga; richiede che sia incluso anche ide
  • os — include os in ogni riga
  • source — include source in ogni riga (CASCADE_CLIENT per Devin Desktop, CHISEL per Devin CLI)
models
string

Elenco degli UID dei modelli a cui limitare i risultati, separati da virgole.

group_id
string

Limita i risultati agli utenti di un gruppo specifico. La chiave di servizio deve avere accesso a questo gruppo. Non supportato con le API key dell'utente di servizio Devin.

user_id
string

Limita i risultati a un utente specifico (UID auth).

page_size
integer
predefinito:1000

Numero massimo di righe da restituire per pagina.

Intervallo richiesto: 1 <= x <= 10000
page_cursor
string

Cursore opaco ottenuto da pagination.next_page_cursor di una risposta precedente per recuperare la pagina successiva. Passare lo stesso elenco metric usato nella richiesta che ha generato il cursore; i cursori generati da altri endpoint o per un elenco metric diverso vengono rifiutati.

Risposta

Dati di output restituiti correttamente.

data
object[]
obbligatorio

Array di righe di dati restituiti.

pagination
object
obbligatorio
metadata
object
obbligatorio