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

# Obtener Analytics de la página de usuario

> Recupera estadísticas de actividad de usuario, incluidos nombres, emails, horas de última actividad y días activos, desde la página de Teams.

<div id="overview">
  ## Descripción general
</div>

Obtén estadísticas de actividad de usuarios que aparecen en la página de Teams, incluidos los nombres de usuario, emails, la hora de la última actividad y los días activos.

<div id="request">
  ## Solicitud
</div>

<ParamField body="service_key" type="string" required>
  Tu clave de servicio con permisos "Teams Read-only"
</ParamField>

<ParamField body="group_name" type="string">
  Filtra los resultados a los usuarios de un grupo específico (opcional)
</ParamField>

<ParamField body="start_timestamp" type="string">
  Hora de inicio en formato RFC 3339 (p. ej., `2023-01-01T00:00:00Z`)
</ParamField>

<ParamField body="end_timestamp" type="string">
  Hora de finalización en formato RFC 3339 (p. ej., `2023-12-31T23:59:59Z`)
</ParamField>

<div id="example-request">
  ### Ejemplo de solicitud
</div>

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

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

<ResponseField name="userTableStats" type="array">
  Array de objetos de estadísticas de usuario

  <Expandable title="Objeto de estadísticas de usuario">
    <ResponseField name="name" type="string">
      Nombre visible del usuario
    </ResponseField>

    <ResponseField name="email" type="string">
      Dirección de correo electrónico del usuario
    </ResponseField>

    <ResponseField name="lastUpdateTime" type="string">
      Marca de tiempo de la última actividad del usuario en formato RFC 3339
    </ResponseField>

    <ResponseField name="apiKey" type="string">
      Versión con hash de la clave de API del usuario
    </ResponseField>

    <ResponseField name="activeDays" type="number">
      Número total de días que el usuario ha estado activo durante el período consultado
    </ResponseField>

    <ResponseField name="disableCodeium" type="boolean">
      Indica si el acceso a Windsurf se ha desactivado para el usuario por un administrador. Este campo solo está presente si el acceso se ha desactivado explícitamente y, en ese caso, siempre tendrá el valor true.
    </ResponseField>

    <ResponseField name="lastAutocompleteUsageTime" type="string">
      La marca de tiempo más reciente en la que se utilizó la modalidad Tab/Autocomplete en formato RFC 3339
    </ResponseField>

    <ResponseField name="lastChatUsageTime" type="string">
      La marca de tiempo más reciente en la que se utilizó la modalidad Cascade en formato RFC 3339
    </ResponseField>

    <ResponseField name="lastCommandUsageTime" type="string">
      La marca de tiempo más reciente en la que se utilizó la modalidad Command en formato RFC 3339
    </ResponseField>

    <ResponseField name="teamStatus" type="string">
      El estado de pertenencia del usuario al equipo. Valores posibles: `USER_TEAM_STATUS_UNSPECIFIED`, `USER_TEAM_STATUS_PENDING`, `USER_TEAM_STATUS_APPROVED`, `USER_TEAM_STATUS_REJECTED`. Ten en cuenta que la API devuelve todos los usuarios independientemente de su estado de equipo, mientras que la interfaz de Manage Members solo muestra a los usuarios aprobados.
    </ResponseField>
  </Expandable>
</ResponseField>

<div id="example-response">
  ### Ejemplo de respuesta
</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">
  ## Respuestas de error
</div>

<ResponseField name="error" type="string">
  Mensaje de error que describe lo que salió mal
</ResponseField>

Escenarios de error comunes:

* Clave de servicio no válida o permisos insuficientes
* Formato de marca de tiempo no válido
* Grupo no encontrado
* Límite de solicitudes superado
