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

# 获取用户页面 Analytics

> 从 Teams 页面获取包含姓名、emails、最近活动时间和活跃天数以及使用的提示额度在内的用户活动统计数据。

<div id="overview">
  ## 概览
</div>

获取 Teams 页面上显示的用户活动统计信息，包括用户名、emails、最近活动时间和活跃天数，以及使用的提示额度。

<div id="request">
  ## 请求
</div>

<ParamField body="service_key" type="string" required>
  具有 "Teams Read-only" 权限的服务密钥
</ParamField>

<ParamField body="group_name" type="string">
  将结果筛选为特定组内的用户（可选）
</ParamField>

<ParamField body="start_timestamp" type="string">
  开始时间，采用 RFC 3339 格式（例如：`2023-01-01T00:00:00Z`）。**仅影响 `activeDays` 计算。** 如果未提供，则默认为 1 年前。
</ParamField>

<ParamField body="end_timestamp" type="string">
  结束时间，采用 RFC 3339 格式（例如：`2023-12-31T23:59:59Z`）。**仅影响 `activeDays` 计算。** 如果未提供，则默认为当前时间。
</ParamField>

<div id="example-request">
  ### 示例请求
</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">
  ## 响应
</div>

<ResponseField name="userTableStats" type="array">
  用户统计对象数组

  <Expandable title="用户统计对象">
    <ResponseField name="name" type="string">
      用户的显示名称
    </ResponseField>

    <ResponseField name="email" type="string">
      用户的电子邮箱地址
    </ResponseField>

    <ResponseField name="lastUpdateTime" type="string">
      用户最近一次活动的时间戳，RFC 3339 格式
    </ResponseField>

    <ResponseField name="apiKey" type="string">
      用户 API key 的哈希版本
    </ResponseField>

    <ResponseField name="activeDays" type="number">
      在查询的时间范围内（由 `start_timestamp` 和 `end_timestamp` 定义）用户处于活跃状态的天数。如果用户在某一天有任意 Tab/Autocomplete 接受、Cascade 使用或 Command 使用，则该天会被计为活跃。
    </ResponseField>

    <ResponseField name="disableCodeium" type="boolean">
      指示管理员是否已为该用户禁用了 Windsurf 的访问权限。只有在访问被显式禁用时才会包含该字段，并且在这种情况下其值始终为 true。
    </ResponseField>

    <ResponseField name="role" type="string">
      用户在团队中的角色（例如：管理员（admin）、成员（member））
    </ResponseField>

    <ResponseField name="signupTime" type="string">
      用户注册时间的时间戳，RFC 3339 格式
    </ResponseField>

    <ResponseField name="lastAutocompleteUsageTime" type="string">
      最近一次使用 Tab/Autocomplete 模式的时间戳，RFC 3339 格式
    </ResponseField>

    <ResponseField name="lastChatUsageTime" type="string">
      最近一次使用 Cascade 模式的时间戳，RFC 3339 格式
    </ResponseField>

    <ResponseField name="lastCommandUsageTime" type="string">
      最近一次使用 Command 模式的时间戳，RFC 3339 格式
    </ResponseField>

    <ResponseField name="promptCreditsUsed" type="number">
      该用户在**当前计费周期**中使用的提示额度总数，返回值以**分（cents）**为单位表示（1 个额度 = 100 分）。要获取实际的额度使用量，请将该值除以 100。此值**不**受 `start_timestamp` 或 `end_timestamp` 请求参数的影响。计费周期窗口由顶层的 `billingCycleStart` 和 `billingCycleEnd` 字段指示。
    </ResponseField>

    <ResponseField name="teamStatus" type="string">
      用户的团队成员状态。可能的取值：`USER_TEAM_STATUS_UNSPECIFIED`、`USER_TEAM_STATUS_PENDING`、`USER_TEAM_STATUS_APPROVED`、`USER_TEAM_STATUS_REJECTED`。请注意，API 无论团队状态如何都会返回所有用户，而 Manage Members 界面仅显示已批准的用户。
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="billingCycleStart" type="string">
  当前计费周期开始时间，RFC 3339 格式。`userTableStats` 中的 `promptCreditsUsed` 数值对应于该计费周期内的使用量。
</ResponseField>

<ResponseField name="billingCycleEnd" type="string">
  当前计费周期结束时间，RFC 3339 格式。`userTableStats` 中的 `promptCreditsUsed` 数值对应于该计费周期内的使用量。
</ResponseField>

<div id="example-response">
  ### 示例响应
</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">
  ## 错误响应
</div>

<ResponseField name="error" type="string">
  描述问题原因的错误信息
</ResponseField>

常见错误情况：

* 服务密钥无效或权限不足
* 时间戳格式无效
* 未找到分组
* 触发速率限制
