> ## 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

> Recuperar estatísticas de atividade do usuário, incluindo nomes, emails, horários da última atividade e dias ativos, na página de Teams.

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

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

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

<ParamField body="service_key" type="string" required>
  Sua Service Key com permissões "Teams Read-only"
</ParamField>

<ParamField body="group_name" type="string">
  Filtra 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`)
</ParamField>

<ParamField body="end_timestamp" type="string">
  Horário de término no formato RFC 3339 (por exemplo, `2023-12-31T23:59:59Z`)
</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ários

  <Expandable title="Objeto de estatísticas do usuário">
    <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">
      Timestamp 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 total de dias em que o usuário esteve ativo durante o período consultado
    </ResponseField>

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

    <ResponseField name="lastAutocompleteUsageTime" type="string">
      O timestamp mais recente em que a modalidade Tab/Autocomplete foi usada, no formato RFC 3339
    </ResponseField>

    <ResponseField name="lastChatUsageTime" type="string">
      O timestamp mais recente em que a modalidade Cascade foi usada, no formato RFC 3339
    </ResponseField>

    <ResponseField name="lastCommandUsageTime" type="string">
      O timestamp mais recente em que a modalidade Command foi usada, no formato RFC 3339
    </ResponseField>

    <ResponseField name="teamStatus" type="string">
      O status de associação do usuário à 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 exibe apenas usuários aprovados.
    </ResponseField>
  </Expandable>
</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,
      "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": 462,
      "teamStatus": "USER_TEAM_STATUS_APPROVED"
    },
    {
      "name": "Charlie",
      "email": "charlie@windsurf.com",
      "lastUpdateTime": "2024-10-10T16:43:46.117870Z",
      "apiKey": "cccccccc-cccc-cccc-cccc-cccccccccccc",
      "activeDays": 237,
      "teamStatus": "USER_TEAM_STATUS_PENDING"
    }
  ]
}
```

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

<ResponseField name="error" type="string">
  Mensagem de erro descrevendo 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
