> ## Documentation Index
> Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Obter Analytics da página do usuário

> Recupere estatísticas de atividade do usuário, incluindo nomes, emails, horários da última atividade, dias ativos e créditos de prompt usados, na página do Teams.

<div id="overview">
  ## Visão geral
</div>

Obtenha estatísticas de atividade do usuário que aparecem na página do Teams, incluindo nomes de usuário, emails, horários da última atividade, dias ativos e créditos de prompt usados.

<div id="request">
  ## Solicitação
</div>

<ParamField body="service_key" type="string" required>
  Sua Chave de serviço com permissões "Teams somente leitura"
</ParamField>

<ParamField body="group_name" type="string">
  Filtre os resultados para usuários de um grupo específico (opcional)
</ParamField>

<ParamField body="start_timestamp" type="string">
  Horário de início no formato RFC 3339 (por exemplo, `2023-01-01T00:00:00Z`). **Afeta apenas o cálculo de `activeDays`.** Se não for informado, o padrão é 1 ano antes.
</ParamField>

<ParamField body="end_timestamp" type="string">
  Horário de término no formato RFC 3339 (por exemplo, `2023-12-31T23:59:59Z`). **Afeta apenas o cálculo de `activeDays`.** Se não for informado, o padrão é o horário atual.
</ParamField>

<div id="example-request">
  ### Exemplo de solicitação
</div>

```bash theme={null}
curl -X POST --header "Content-Type: application/json" \
--data '{
  "service_key": "sua_chave_de_servico_aqui",
  "group_name": "equipe_engenharia",
  "start_timestamp": "2024-01-01T00:00:00Z",
  "end_timestamp": "2024-12-31T23:59:59Z"
}' \
https://server.codeium.com/api/v1/UserPageAnalytics
```

<div id="response">
  ## Resposta
</div>

<ResponseField name="userTableStats" type="array">
  Array de objetos de estatísticas de usuário

  <Expandable title="User Statistics Object">
    <ResponseField name="name" type="string">
      Nome de exibição do usuário
    </ResponseField>

    <ResponseField name="email" type="string">
      Endereço de e-mail do usuário
    </ResponseField>

    <ResponseField name="lastUpdateTime" type="string">
      Carimbo de data e hora da última atividade do usuário no formato RFC 3339
    </ResponseField>

    <ResponseField name="apiKey" type="string">
      Versão com hash da chave de API do usuário
    </ResponseField>

    <ResponseField name="activeDays" type="number">
      Número de dias em que o usuário ficou ativo dentro do intervalo de tempo consultado (definido por `start_timestamp` e `end_timestamp`). Um dia é contado como ativo se o usuário tiver qualquer aceitação de Autocomplete, uso de Cascade ou uso de Command nesse dia.
    </ResponseField>

    <ResponseField name="disableCodeium" type="boolean">
      Indica se o acesso ao Windsurf foi desativado para o usuário por um administrador. Este campo só estará presente se o acesso tiver sido explicitamente desativado e, nesse caso, sempre terá o valor true.
    </ResponseField>

    <ResponseField name="role" type="string">
      Função do usuário na equipe (por exemplo, admin, membro)
    </ResponseField>

    <ResponseField name="signupTime" type="string">
      Carimbo de data e hora de quando o usuário se cadastrou, no formato RFC 3339
    </ResponseField>

    <ResponseField name="lastAutocompleteUsageTime" type="string">
      Carimbo de data e hora mais recente em que a modalidade Tab/Autocomplete foi usada, no formato RFC 3339
    </ResponseField>

    <ResponseField name="lastChatUsageTime" type="string">
      Carimbo de data e hora mais recente em que a modalidade Cascade foi usada, no formato RFC 3339
    </ResponseField>

    <ResponseField name="lastCommandUsageTime" type="string">
      Carimbo de data e hora mais recente em que a modalidade Command foi usada, no formato RFC 3339
    </ResponseField>

    <ResponseField name="promptCreditsUsed" type="number">
      Número total de créditos de prompt usados por este usuário durante o **ciclo de cobrança atual**, retornado em **centavos** (1 crédito = 100 centavos). Para obter o uso real de créditos, divida esse valor por 100. Esse valor **não** é afetado pelos parâmetros de requisição `start_timestamp` ou `end_timestamp`. A janela do ciclo de cobrança é indicada pelos campos de nível superior `billingCycleStart` e `billingCycleEnd`.
    </ResponseField>

    <ResponseField name="teamStatus" type="string">
      Status de participação do usuário na equipe. Valores possíveis: `USER_TEAM_STATUS_UNSPECIFIED`, `USER_TEAM_STATUS_PENDING`, `USER_TEAM_STATUS_APPROVED`, `USER_TEAM_STATUS_REJECTED`. Observe que a API retorna todos os usuários, independentemente do status na equipe, enquanto a interface "Manage Members" só exibe usuários aprovados.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="billingCycleStart" type="string">
  Início do ciclo de cobrança atual no formato RFC 3339. Os valores de `promptCreditsUsed` em `userTableStats` correspondem ao uso dentro desse ciclo de cobrança.
</ResponseField>

<ResponseField name="billingCycleEnd" type="string">
  Fim do ciclo de cobrança atual no formato RFC 3339. Os valores de `promptCreditsUsed` em `userTableStats` correspondem ao uso dentro desse ciclo de cobrança.
</ResponseField>

<div id="example-response">
  ### Exemplo de resposta
</div>

```json theme={null}
{
  "userTableStats": [
    {
      "name": "Alice",
      "email": "alice@windsurf.com",
      "lastUpdateTime": "2024-10-10T22:56:10.771591Z",
      "apiKey": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
      "activeDays": 178,
      "role": "admin",
      "signupTime": "2024-01-15T08:30:00Z",
      "lastAutocompleteUsageTime": "2024-10-10T22:56:10Z",
      "lastChatUsageTime": "2024-10-10T20:30:00Z",
      "promptCreditsUsed": 12500,
      "teamStatus": "USER_TEAM_STATUS_APPROVED"
    },
    {
      "name": "Bob",
      "email": "bob@windsurf.com",
      "lastUpdateTime": "2024-10-10T18:11:23.980237Z",
      "apiKey": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
      "activeDays": 210,
      "role": "member",
      "signupTime": "2024-02-01T10:00:00Z",
      "lastAutocompleteUsageTime": "2024-10-10T18:11:23Z",
      "lastChatUsageTime": "2024-10-09T14:22:00Z",
      "lastCommandUsageTime": "2024-10-08T09:15:00Z",
      "promptCreditsUsed": 8300,
      "teamStatus": "USER_TEAM_STATUS_APPROVED"
    }
  ],
  "billingCycleStart": "2024-10-01T00:00:00Z",
  "billingCycleEnd": "2024-11-01T00:00:00Z"
}
```

<div id="error-responses">
  ## Respostas de erro
</div>

<ResponseField name="error" type="string">
  Mensagem de erro que descreve o problema
</ResponseField>

Cenários de erro comuns:

* Service Key inválida ou permissões insuficientes
* Formato de timestamp inválido
* Grupo não encontrado
* Limite de requisições excedido
