---
title: アクティビティフィードをクエリする
url: https://platform.claude.com/docs/ja/manage-claude/compliance-activity-feed
description: 組織のCompliance APIアクティビティフィードを取得、フィルタリング、ページネーションします。
---

<Note>
  Compliance APIを有効にするには、[Compliance APIのセットアップ](https://platform.claude.com/docs/ja/manage-claude/compliance-api-access)を参照してください。
</Note>

<Check>
  **必要なスコープ：** Compliance Access KeyまたはAdmin APIキーに`read:compliance_activities`が付与されていること。

  このスコープを持つCompliance Access Key（`sk-ant-api01-...`）とAdmin APIキー（`sk-ant-admin01-...`）のどちらでも、「Activity Feed」（アクティビティフィード）を呼び出せます。各キータイプがこのスコープを持つ条件については、[Compliance APIのセットアップ](https://platform.claude.com/docs/ja/manage-claude/compliance-api-access)を参照してください。
</Check>

アクティビティフィードは、組織全体の認証、チャット、ファイル、プロジェクト、管理、およびプラットフォームのアクティビティを記録し、新しい順に返します。アクティビティは発生から1分以内にクエリ可能になり、6年間保持されます。記録は遡及しません。記録は組織でCompliance APIが最初に有効化された時点から開始され、有効化以前のアクティビティは遡って補完されません。

```bash cURL
curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/activities?limit=1" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01"
```

```json Response
{
  "data": [
    {
      "id": "activity_01XyDMpzjS89pFZXqSFUBDr6",
      "created_at": "2026-04-10T08:09:10Z",
      "organization_id": "org_01Wv6QeBcDfGhJkLmNpQrSt8",
      "organization_uuid": "abcdef01-2345-6789-abcd-ef0123456789",
      "actor": {
        "type": "user_actor",
        "email_address": "user@example.com",
        "user_id": "user_01TuVwXyZaBcDeFgH2JkLmN4",
        "ip_address": "192.0.2.34",
        "user_agent": "Mozilla/5.0..."
      },
      "type": "claude_chat_created",
      "claude_chat_id": "claude_chat_01XyDMpzjS89pFZXqSFUBDr6",
      "claude_project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq"
    }
  ],
  "has_more": true,
  "first_id": "activity_01XyDMpzjS89pFZXqSFUBDr6",
  "last_id": "activity_01XyDMpzjS89pFZXqSFUBDr6"
}
```

## アクティビティをフィルタリングする

組織、アクター、アクティビティタイプ、またはドット区切りのサブパラメータ`created_at.gte`、`.gt`、`.lte`、`.lt`を使用した`created_at`の時間範囲でフィルタリングできます。各パラメータの型と受け付けられる値については、[APIリファレンス](https://platform.claude.com/docs/ja/api/compliance/activities/list)を参照してください。

繰り返し指定可能なパラメータには、配列ブラケット形式のクエリ構文を使用します。値ごとに`activity_types[]=...`、`actor_ids[]=...`、または`organization_ids[]=...`を1回ずつ渡してください。

```bash cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/activities" \
  --data-urlencode "activity_types[]=claude_file_uploaded" \
  --data-urlencode "activity_types[]=claude_chat_created" \
  --data-urlencode "created_at.gte=2026-04-01T00:00:00Z" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01"
```

アクティビティフィードは数百種類の異なるアクティビティタイプを生成します。`activity_types[]`が受け付ける値の完全なリストについては、APIリファレンスの[コンプライアンスアクティビティのクエリ](https://platform.claude.com/docs/ja/api/compliance/activities/list)を参照してください。

## 結果をページネーションする

アクティビティは新しい順に返され、`created_at`が同じ場合はアクティビティIDで順序が決まります。各レスポンスの結果数は`limit`件が上限です（デフォルト100、最大5,000）。完全なレスポンススキーマについては、[APIリファレンス](https://platform.claude.com/docs/ja/api/compliance/activities/list)を参照してください。

Compliance APIは、エンドポイントファミリーに応じて2種類の「pagination」（ページネーション）方式を使用します。

| エンドポイントファミリー                                        | ソート順                       | 方式      | パラメータ                                               |
| --------------------------------------------------- | -------------------------- | ------- | --------------------------------------------------- |
| アクティビティ                                             | 新しい順                       | カーソル    | `after_id`、`before_id`（`first_id`、`last_id`として返される） |
| チャットとチャットメッセージ                                      | 古い順                        | カーソル    | `after_id`、`before_id`（`first_id`、`last_id`として返される） |
| 組織、プロジェクト、プロジェクト添付ファイル、ユーザー、ロール、ロール権限、グループ、グループメンバー | エンドポイントごとに異なる              | ページトークン | `page`（`next_page`として返される）                          |
| ローカルおよびリモートのセッションとセッションメッセージ                        | セッションは新しい順、メッセージはデフォルトで古い順 | ページトークン | `page`（`next_page`として返される）                          |

ファイルはページネーションされません。ファイルはIDで個別に取得します。

ページネーションの「cursor」（カーソル）とページトークンは不透明な文字列です。変更せずにそのまま渡し返してください。内部形式は安定しておらず、解析すると予告なく動作しなくなります。各リクエストで設定できるのは`after_id`または`before_id`のいずれか一方のみで、どちらの方式も`has_more`を返すため、いつ停止すべきかがわかります。セッションエンドポイント（ローカルおよびリモート）は例外で、`has_more`なしで`next_page`を返すため、`next_page`が`null`になった時点で停止してください。

アクティビティをページ送りするには：

* レスポンスの`last_id`を`after_id`として渡すと、結果順で次のページに進みます。アクティビティは新しい順にソートされているため、次のページにはより古いエントリが含まれます。
* `first_id`を`before_id`として渡すと、前のページに戻ります。
* `has_more`が`false`になったら停止します。

カーソルパラメータはページの方向を決め、エンドポイントのソート順は時間の方向を決めます。ここでは同じ`after_id`パラメータでより古いアクティビティに到達します。チャットは古い順にソートされます。そちらでのカーソルのセマンティクスについては、[チャット、ファイル、プロジェクトの取得と削除](https://platform.claude.com/docs/ja/manage-claude/compliance-content-data)を参照してください。

<Note>
  **カーソルはリトライ時に安全に再利用できます。** 正常に返されたページの カーソルまたはページトークンは有効なままです。失敗したリクエスト（5xx、タイムアウト、 ネットワークエラー）では位置は進みません。同じカーソルで同じリクエストを リトライしてください。次のカーソルに進むのは、そのカーソルが指す先より前の ページを保存した後にしてください。

  ローカルセッションエンドポイントのページトークンは、長時間の中断に関しては例外です。[ローカルセッションメッセージエンドポイント](https://platform.claude.com/docs/ja/manage-claude/compliance-sessions#retrieve-a-local-session-transcript)では、ウォーク（ページを一通りたどる1回の処理）の`page`トークンは最初のページから24時間後に失効するため、その期間内に完了または再開するか、`page`パラメータなしで最初からやり直してください。[ローカルセッション一覧](https://platform.claude.com/docs/ja/manage-claude/compliance-sessions#retrieve-local-sessions)では、古い`page`トークンも引き続き受け付けられますが、現在の保持期間の境界に照らして再評価されるため、セッションがスキップされる可能性があります。そのため、一覧のウォークも24時間以内に完了してください。
</Note>

```bash cURL
# 最初のページ（新しいアクティビティ順）を取得し、末尾のカーソルを保持します。
last_id=$(curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/activities?limit=2" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01" | jq -er '.last_id')

# 次の（より古い）ページを取得するには、カーソルをそのまま渡します。
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/activities" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --data-urlencode "limit=2" \
  --data-urlencode "after_id=${last_id}"
```

本番環境の「backfill」（バックフィル）ループは、`has_more`と`last_id`に基づいて反復処理を行い、より古いアクティビティをページ送りします。

1. 保存済みのカーソルから開始します（または`after_id`を省略して先頭から開始します）。
2. `has_more`が`false`になるまで、`after_id=<last_id>`でページ送りします。
3. 最後の`last_id`は、それが対象とするすべてのページを保存した後にのみ永続化します。

```text
cursor = stored_cursor
loop:
  if cursor is not null:
    page = GET /v1/compliance/activities?after_id={cursor}&limit=100
  else:
    page = GET /v1/compliance/activities?limit=100
  store(page.data)
  if page.last_id is not null:
    cursor = page.last_id
  if not page.has_more: break
persist(cursor)
```

## Activityオブジェクトを理解する

`data`内の各エントリは、次のトップレベル構造を持つActivityです。

| フィールド               | 型               | 説明                                                                                                                                                                                                 |
| ------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                | string          | アクティビティの一意の識別子。                                                                                                                                                                                    |
| `created_at`        | RFC 3339 string | アクティビティが発生した日時。                                                                                                                                                                                    |
| `organization_id`   | string または null | アクティビティが発生した組織。組織に紐づかないイベント（サインイン、サインアウト、Compliance API呼び出し）の場合は`null`。                                                                                                                            |
| `organization_uuid` | string または null | `organization_id`と同じスコープをUUIDで表したもの。                                                                                                                                                               |
| `actor`             | Actorユニオン型      | アクティビティを実行した主体。後述のアクターの表を参照してください。                                                                                                                                                                 |
| `type`              | string          | アクティビティタイプ。例：`claude_chat_created`。                                                                                                                                                                |
| *追加フィールド*           | 可変              | タイプ固有のフィールド。例：チャットイベントの`claude_chat_id`やファイルイベントの`claude_file_id`。タイプごとのフィールド一覧については、APIリファレンスの[コンプライアンスアクティビティのクエリ](https://platform.claude.com/docs/ja/api/compliance/activities/list)を参照してください。 |

`actor`フィールドは「discriminated union」（判別共用体）です。`type`判別子によって、他にどのフィールドが存在するかがわかります。

| `actor.type`                 | 出現するタイミング                                                                                                                                   | 主なフィールド                                                                                     |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `user_actor`                 | サインイン済みのclaude.aiまたはClaude Consoleユーザーがアクションを実行した場合、またはAnthropicがそのユーザーに代わって実行するプロセスがアクションを実行した場合（この表の後の段落を参照）。                             | `email_address`、`user_id`、`ip_address`、`user_agent`                                         |
| `api_actor`                  | 顧客が発行したAPIキーを使用して、リクエストがClaude APIまたはCompliance APIを呼び出した場合。Compliance API呼び出しでは、Compliance Access KeyとAdmin APIキーのどちらの場合もこのアクタータイプが生成されます。 | `api_key_id`、`ip_address`、`user_agent`                                                      |
| `admin_api_key_actor`        | 組織の管理者がAdmin APIキーを使用して、ユーザー、招待、ワークスペース、またはAPIキーを管理した場合。                                                                                    | `admin_api_key_id`、`ip_address`、`user_agent`                                                |
| `unauthenticated_user_actor` | サインインが完了する前にアクションが発生した場合。例：`sso_login_initiated`。                                                                                           | `unauthenticated_email_address`、`ip_address`、`user_agent`                                   |
| `anthropic_actor`            | Anthropicが組織に対してアクションを実行した場合。例：内部ツールを通じた操作。                                                                                                 | `email_address`（常に`null`。Anthropicのオペレーターは個別のメールアドレスで表されないため、`user_actor`との構造の一貫性のために存在します） |
| `system_actor`               | ユーザーや顧客の認証情報なしで動作する、Anthropicのシステムによって実行された自動バックグラウンド処理。                                                                                    | `service`（null許容。判明している場合は、アクションを実行した自動プロセスの名前）                                             |
| `scim_directory_sync_actor`  | IDプロバイダー（Okta、Microsoft Entra ID、JumpCloudなど）がSCIMディレクトリ同期を通じて変更をプッシュした場合。                                                                  | `workos_event_id`、`directory_id`、`idp_connection_type`（null許容。例：`OktaSCIMV2`、`AzureSCIMV2`） |

`user_actor`のアクティビティは、必ずしもユーザー自身がアクションを実行したことを意味するわけではありません。Anthropicがユーザーに代わって実行するプロセスは、現在`system_actor`ではなく対象ユーザーの`user_actor`として表示される場合があり、この帰属は変更される可能性があります。たとえば、移行によるメモリアクティビティ（`platform_memory_store_created`、`platform_memory_created`、`platform_memory_deleted`など）はこのように帰属されます。メモリアクティビティは実行者に関係なく`ip_address`が`0.0.0.0`と表示される場合があるため、この値だけではプラットフォームプロセスによるアクティビティを識別できません。

`claude_*_viewed`アクティビティは、Claudeアプリがコンテンツを読み込んだことを意味し、人がそれを閲覧したことを意味するものではありません。`claude_chat_viewed`、`claude_file_viewed`、`claude_project_viewed`などのタイプは、ClaudeアプリがAnthropicのサーバーからチャット、ファイル、またはプロジェクトを読み込むたびに記録されます。繰り返しの読み込みは重複排除されません。Web、デスクトップ、モバイルの各アプリはそれぞれ異なるタイミングで（場合によってはバックグラウンドで）コンテンツを読み込み、読み込まずにキャッシュされたコピーを表示することもあります。その結果、これらのアクティビティの件数はプラットフォームによって異なり、送信されたメッセージ数や閲覧された画面数とは一致しません。

ファイル、プロジェクトドキュメント、またはアーティファクトに関するアクティビティには、その名前やタイトルは含まれません。2026年9月24日以降、これらのアクティビティの`filename`および`title`フィールドは、その日付より前に記録されたアクティビティも含め、常に`null`または空文字列になるか、省略されます。名前やタイトルを調べるには、`read:compliance_user_data`スコープを持つCompliance Access Keyを使用して、アクティビティの`claude_file_*`、`claude_proj_doc_*`、または`claude_artifact_version_*` IDを、[ファイルとアーティファクトの取得](https://platform.claude.com/docs/ja/manage-claude/compliance-content-data#retrieve-files-and-artifacts)にある対応するメタデータエンドポイントに渡してください。ファイル、ドキュメント、またはアーティファクトが削除された後や、アクティビティにそのようなIDがない場合は、名前やタイトルを調べることはできません。

<Note>
  **前方互換性のあるハンドラーを構築してください。** 認識できない`type`および `actor.type`の値はそのまま通過させ、ハンドラーが想定していないフィールドは無視してください。 そうすることで、新しいアクティビティタイプがリリースされても統合が動作し続けます。
</Note>

## 次のステップ

<CardGroup cols={2}>
  <Card title="APIリファレンス" href="https://platform.claude.com/docs/ja/api/compliance/activities/list">
    サポートされているすべての`activity_types[]`値を含む、`GET /v1/compliance/activities`の完全なリクエストおよびレスポンススキーマ。
  </Card>

  <Card title="チャット、ファイル、プロジェクトの取得と削除" href="https://platform.claude.com/docs/ja/manage-claude/compliance-content-data">
    フィードで見つけたアクティビティの基となるコンテンツをクエリおよび削除します（Compliance Access Keyが必要）。
  </Card>

  <Card title="コンプライアンス統合を設計する" href="https://platform.claude.com/docs/ja/manage-claude/compliance-integration-patterns">
    ポーリングまたはバッチの取り込みパターンを選択し、SIEMとの相関付けを計画します。
  </Card>

  <Card title="Compliance APIのエラーを処理する" href="https://platform.claude.com/docs/ja/manage-claude/compliance-errors">
    完全なエラーカタログ。
  </Card>
</CardGroup>
