> ## 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 キーをハッシュ化した値
    </ResponseField>

    <ResponseField name="activeDays" type="number">
      クエリされた期間（`start_timestamp` と `end_timestamp` で定義）内で、ユーザーがアクティブだった日数。ある日にユーザーが 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">
      **現在の請求サイクル**中にこのユーザーが使用したプロンプトクレジットの合計数で、**セント単位**（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」UI には承認済みユーザーのみが表示されます。
    </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>

代表的なエラー例:

* 無効なサービスキーまたは権限不足
* 無効なタイムスタンプ形式
* グループが見つからない
* レート制限を超過した場合
