As APIs v2 estão em alpha e podem mudar a qualquer momento.
A Analytics API v2 é a próxima geração da Devin Desktop Analytics API. Ela expõe análises de consumo
(créditos e ACUs) por meio de endpoints REST claros, com filtragem por parâmetros de consulta,
agrupamento flexível, paginação baseada em cursor e cache de respostas.
No momento, os endpoints da v2 são disponibilizados sob o prefixo /api/v2alpha enquanto a API é
finalizada. A URL base é https://server.codeium.com.
A maior mudança em relação à v1 é a autenticação.
| Analytics API v1 | Analytics API v2 |
|---|
| Transporte | POST com um corpo de requisição JSON | GET com parâmetros de consulta |
| Autenticação | Campo service_key no corpo da requisição | cabeçalho Authorization: Bearer <service_key> |
| Permissão | Varia conforme o endpoint | Analytics Read |
| Paginação | Nenhuma | Baseada em cursor (next_page_cursor / page_cursor) |
| Cache | Nenhum | ETag + If-None-Match (304 Not Modified) |
A v2 usa autenticação com token Bearer. Passe sua chave de serviço no cabeçalho Authorization, em vez
de enviá-la no corpo da requisição:
Authorization: Bearer <your_service_key>
A chave de serviço deve ter a permissão Analytics Read.
Criando uma chave de serviço
- Acesse sua página Configurações da equipe
- Vá para a seção “Service Keys”
- Crie uma nova chave de serviço com a permissão Analytics Read
- Use a chave como token Bearer no cabeçalho
Authorization
Mantenha suas chaves de serviço seguras e nunca as exponha em código do lado do cliente ou em repositórios públicos.
Há suporte a chaves de serviço com escopo de grupo — quando uma chave é restrita a um grupo, os resultados são automaticamente
limitados a esse grupo.
| Endpoint | Descrição |
|---|
Obter consumo (GET /api/v2alpha/analytics/consumption) | Consultar o consumo de créditos ou ACUs com filtragem, agrupamento, granularidade e paginação |
Obter usuários ativos (GET /api/v2alpha/analytics/active-users) | Contar usuários ativos distintos, opcionalmente por dia/mês ou por usuário |
Estratégia de faturamento
As respostas se adaptam à estratégia de faturamento da sua equipe, informada em metadata.billing_strategy:
CREDITS — as linhas incluem prompt_credits e flex_credits
ACU — as linhas incluem billed_acus
O campo message_count é sempre retornado, independentemente da estratégia.
As respostas de listagem são paginadas. Quando houver mais dados disponíveis, a resposta incluirá um
pagination.next_page_cursor; passe-o novamente como o parâmetro de consulta page_cursor para obter a próxima
página. Os cursores expiram após 24 horas.
As respostas incluem o cabeçalho ETag. Envie-o de volta no cabeçalho If-None-Match em requisições subsequentes
para receber um 304 Not Modified quando os dados não forem alterados.
Estes endpoints não se destinam ao monitoramento de uso em tempo real. Os dados são agregados
por hora, e o limite de taxa é baixo (10 requisições por hora por equipe). Use-os para relatórios
periódicos e exportações em massa, não para dashboards em tempo real nem acompanhamento por requisição.
Os endpoints v2 estão limitados a 10 requisições por hora por equipe. Exceder o limite retorna
429 Too Many Requests com um cabeçalho Retry-After.
Paginar uma consulta anterior (seguindo um next_page_cursor) não conta para o limite de taxa —
apenas a consulta inicial de cada relatório conta. O limite baixo reflete que esses endpoints se
destinam a relatórios periódicos, não ao monitoramento em tempo real.