Claude Platform Docs
管理Compliance API

アクティビティフィードをクエリする

組織のCompliance APIアクティビティフィードを取得、フィルタリング、ページネーションします。

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

cURL
curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/activities?limit=1" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"
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リファレンスを参照してください。

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

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"

アクティビティフィードは数百種類の異なるアクティビティタイプを生成します。activity_types[]が受け入れる値の完全なリストについては、APIリファレンスのコンプライアンスアクティビティのクエリを参照してください。

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

アクティビティは新しい順に返され、created_atが同じ場合はアクティビティIDで順序が決まり、各レスポンスはlimit件(デフォルト100、最大5,000)に制限されます。完全なレスポンススキーマについては、APIリファレンスを参照してください。

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

エンドポイントファミリーソート順方式パラメータ
アクティビティ新しい順カーソルafter_idbefore_idfirst_idlast_idとして返される)
チャットとチャットメッセージ古い順カーソルafter_idbefore_idfirst_idlast_idとして返される)
組織、プロジェクト、プロジェクト添付ファイル、ユーザー、ロール、ロール権限、グループ、グループメンバーエンドポイント固有ページトークンpagenext_pageとして返される)
ローカルおよびリモートセッションとセッションメッセージセッションは新しい順、メッセージはデフォルトで古い順ページトークンpagenext_pageとして返される)

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

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

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

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

カーソルパラメータはページの方向を設定し、エンドポイントのソート順は時間の方向を設定します。ここでは同じafter_idパラメータでより古いアクティビティに到達します。チャットは古い順にソートされます。そちらのカーソルのセマンティクスについては、チャット、ファイル、プロジェクトの取得と削除を参照してください。

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" | 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" \
  --data-urlencode "limit=2" \
  --data-urlencode "after_id=${last_id}"

本番環境のバックフィルループは、has_morelast_idに基づいて反復処理を行い、より古いアクティビティをページ送りします。

  1. 保存済みのカーソルから開始します(またはafter_idを省略して最初から開始します)。
  2. has_morefalseになるまでafter_id=<last_id>でページ送りします。
  3. 最終的なlast_idは、それがカバーするすべてのページを保存した後にのみ永続化します。
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です。

フィールド説明
idstringアクティビティの一意の識別子。
created_atRFC 3339文字列アクティビティが発生した日時。
organization_idstringまたはnullアクティビティが発生した組織。組織に紐付かないイベント(サインイン、サインアウト、Compliance API呼び出し)の場合はnull
organization_uuidstringまたはnullorganization_idと同じスコープで、UUIDとして表現されます。
actorActorユニオンアクティビティを実行した人または物。以下のアクター表を参照してください。
typestringアクティビティタイプ。例: claude_chat_created
追加フィールド可変タイプ固有のフィールド。例: チャットイベントのclaude_chat_idやファイルイベントのfilename。タイプごとのフィールドリストについては、APIリファレンスのコンプライアンスアクティビティのクエリを参照してください。

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

actor.type出現する場面主なフィールド
user_actorサインイン済みのclaude.aiまたはClaude Consoleユーザーがアクションを実行した場合。email_addressuser_idip_addressuser_agent
api_actor顧客発行のAPIキーでClaude APIまたはCompliance APIを呼び出したリクエスト。Compliance API呼び出しは、Compliance Access KeyとAdmin APIキーの両方でこのアクタータイプを生成します。api_key_idip_addressuser_agent
admin_api_key_actor組織管理者がAdmin APIキーを使用してユーザー、招待、ワークスペース、またはAPIキーを管理した場合。admin_api_key_idip_addressuser_agent
unauthenticated_user_actorサインイン完了前にアクションが発生した場合。例: sso_login_initiatedunauthenticated_email_addressip_addressuser_agent
anthropic_actorAnthropicが組織に対して操作を行った場合。例: 内部ツール経由。email_address(常にnull。Anthropicのオペレーターは個別のメールアドレスで表現されないため、user_actorとの構造の一貫性のために存在します)
scim_directory_sync_actorIDプロバイダー(Okta、Microsoft Entra ID、JumpCloudなど)がSCIMディレクトリ同期を通じて変更をプッシュした場合。workos_event_iddirectory_ididp_connection_type(null許容。例: OktaSCIMV2AzureSCIMV2

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

次のステップ

サポートされているすべてのactivity_types[]値を含む、GET /v1/compliance/activitiesの完全なリクエストおよびレスポンススキーマ。

フィードで見つけたアクティビティの基となるコンテンツをクエリおよび削除します(Compliance Access Keyが必要)。

ポーリングまたはバッチ消費パターンを選択し、SIEM相関を計画します。

完全なエラーカタログ。

Was this page helpful?