Claude Platform Docs
管理Compliance API

チャット、ファイル、プロジェクトの取得と削除

Compliance APIを通じて、claude.ai組織のチャットコンテンツ、ファイル添付、プロジェクトにアクセスします。

このページのエンドポイントは、Claude Enterpriseのチャットコンテンツ、ファイルアップロード、プロジェクト、およびプロジェクト添付ファイルをコンプライアンスレビュー担当者に公開します。これらは「eDiscovery」(電子情報開示)のエクスポート、「data loss prevention」(データ損失防止)、すなわちDLPの適用、およびアカウント削除への対応をサポートします。チャット、ファイル、プロジェクトのコンテンツは、組織の保持ポリシーが許可する期間保持されます。ユーザーがclaude.aiでチャットを削除すると、そのメッセージコンテンツ、添付ファイル、ツール生成ファイル、およびアーティファクトも一緒に削除されます。Compliance APIは引き続きそのチャットを一覧に含めますが、deleted_atが設定され、nameは空になり、メッセージはコンテンツなしで返されます。ハード削除されたチャット(Compliance API自体を通じて、または組織の保持期間が終了した後)は取得できません。

どちらのスコープも、claude.aiで作成されたCompliance Access Key(sk-ant-api01-...)にのみ付与されます。プロビジョニング方法についてはCompliance APIのセットアップを参照してください。read:compliance_user_dataスコープは取得をカバーし、delete:compliance_user_dataは削除エンドポイントにのみ必要です。チャット、ファイル、プロジェクト、添付ファイルのエンドポイントはAdmin APIキー(sk-ant-admin01-...)では利用できません。Admin APIキーで認証された呼び出しは403 Forbiddenを返します。

このページのエンドポイントは2通りの方法でページネーションを行います。完全なリファレンスについては結果のページネーションを参照してください。各セクションで、どちらの方式が適用されるかを記載しています。

チャットとメッセージの取得

チャットの一覧を使用してチャットのメタデータをページ単位で取得し、次にチャットメッセージの取得を使用して1つのチャットの完全なメッセージコンテンツを取得します。

チャット一覧エンドポイントはデフォルトで組織全体のスコープになります。user_ids[]を省略すると、親組織配下のすべてのチャットが含まれます。order_by=updated_atを追加すると、最終更新時刻でソートされます。この組み合わせは、チャットをエクスポートし、エクスポートを最新の状態に保つための推奨方法です。1つのページネーションループで、ユーザーを事前に列挙することなく、すべてのユーザーの新規チャット、変更されたチャット、およびclaude.aiで削除されたチャットを取得できるためです。次のリクエストは、指定した日付以降に更新されたチャットを一覧表示します。

cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/apps/chats" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --data-urlencode "order_by=updated_at" \
  --data-urlencode "updated_at.gte=2025-06-01T00:00:00Z" \
  --data-urlencode "limit=100"
Response
{
  "data": [
    {
      "id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
      "name": "Product Requirements Discussion",
      "created_at": "2026-04-10T08:09:10Z",
      "updated_at": "2026-04-10T09:10:11Z",
      "deleted_at": null,
      "href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",
      "model": "claude-opus-5",
      "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
      "project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq",
      "user": {
        "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
        "email_address": "user@example.com"
      }
    }
  ],
  "has_more": true,
  "first_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9",
  "last_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9"
}

結果はorder_byフィールドの昇順(古いものが先)でソートされ、同値の場合はidで順序が決まります。ページネーションには、結果のページネーションで説明されている標準のfirst_id/last_id/has_moreカーソルフィールドを使用します。新しいチャットに向かって前方に進むには、レスポンスのlast_idを次のリクエストのafter_idとして渡します。

この前方への走査は、実行をまたいでエクスポートを最新に保つ方法でもあります。最終ページのlast_idを永続化し、次回の実行時にそれをafter_idとして再開します。一覧はupdated_at順に並んでいるため、保存したカーソル以降に変更されたチャットはカーソルより先に再び現れます。そのため、各増分実行では、まったく新しいチャットと、その後claude.aiで変更または削除された古いチャットの両方が返されます。これらの再出現に対応するため、チャットのidをキーとして結果を冪等に処理してください。deleted_atが設定された状態で返されるチャットには取得すべきコンテンツが残っていないため、更新ではなく削除として扱ってください。

これらの組織全体のクエリにはいくつかの制約があります。カーソルは不透明でソートキーに紐付けられているため、あるorder_by値のもとで発行されたafter_idは、別の値のもとでは400エラーで拒否されます。時間フィルターの境界もソートキーと一致させる必要があります。updated_at.*の境界はorder_by=updated_atと、created_at.*の境界はデフォルトのorder_by=created_atと組み合わせてください。before_idによる後方ページネーションはサポートされておらず、project_ids[]フィルターも利用できません。完全なフィルターリファレンスについてはチャットの一覧を参照してください。

代わりに一覧を特定のユーザーに絞り込むには(たとえば、指名されたカストディアンに対するリーガルホールドなど)、1〜10個のuser_ids[]値を渡します。IDは組織ユーザーの一覧から取得します。ユーザーでフィルターしたクエリは常にcreated_atでソートされ(order_by=updated_atを渡すと400エラーが返されます)、after_idbefore_idの両方をサポートします。project_ids[]によるフィルタリングは、このユーザーフィルター形式でのみ利用できます。user_ids[]updated_at.*の境界を組み合わせることは非推奨であり、2026-09-22以降は400エラーで拒否されます。カストディアンのセットを更新時刻で最新に保つには、user_ids[]なしで組織全体のorder_by=updated_at走査を実行し、その結果からカストディアンのチャットを選択してください。ユーザーフィルター付きの一覧はcreated_at順のエクスポート用に使用してください。

cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/apps/chats" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --data-urlencode "user_ids[]=user_01XyDMpzjS89pFZXqSFUBDr6" \
  --data-urlencode "created_at.gte=2025-06-01T00:00:00Z" \
  --data-urlencode "limit=100"

一覧レスポンスにはチャットのメタデータのみが含まれます。実際のチャットコンテンツ、添付ファイル、およびインラインのアーティファクト(Claudeがチャット内で生成する構造化ドキュメント)を取得するには、各チャットIDに対してメッセージエンドポイントを続けて呼び出します。

cURL
chat_id="claude_chat_01H5CWunD7RpVJ5bHa8RCkja"

curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/apps/chats/$chat_id/messages" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"

メッセージエンドポイントは、チャットのメタデータと、created_atでソートされたchat_messages配列を返します。limitを省略すると、メッセージ全体が1つのレスポンスで返されます。非常に長いチャットをページ単位で取得するには、limitafter_id、またはbefore_idを渡します。このエンドポイントは、created_at.*およびupdated_at.*の範囲境界(gtgteltlte)とorderパラメータ(ascまたはdesc)も受け付けます。完全なパラメータ一覧についてはチャットメッセージの取得を参照してください。ユーザーメッセージの場合、created_atはメッセージが送信された時刻です。アシスタントメッセージの場合は、Claudeがメッセージの生成を完了した時刻です。各メッセージにはテキストコンテンツが含まれ、存在する場合は、アップロードされたファイル(通常はユーザーメッセージ)、ツール生成ファイル、およびアシスタントが生成または更新したアーティファクト(通常はアシスタントメッセージ)も含まれます。

Response
{
  "id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
  "name": "Product Requirements Discussion",
  "created_at": "2026-04-10T08:09:10Z",
  "updated_at": "2026-04-10T09:10:11Z",
  "deleted_at": null,
  "href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",
  "model": "claude-opus-5",
  "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
  "project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq",
  "user": {
    "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
    "email_address": "user@example.com"
  },
  "chat_messages": [
    {
      "id": "claude_chat_msg_01VnBPkLmtj7YdW5QrXKEA8c",
      "role": "user",
      "created_at": "2026-04-10T08:09:10Z",
      "content": [
        {
          "type": "text",
          "text": "Can you help me draft requirements for our new dashboard feature?"
        }
      ],
      "files": [
        {
          "id": "claude_file_01UaT9wBcDfGhJkLmNpQrSv7",
          "filename": "dashboard_mockup_v1.pdf",
          "mime_type": "application/pdf",
          "size_bytes": 482133,
          "md5": "56367e4d2705cc9c025ad07424e944f0",
          "created_at": "2026-04-10T08:09:10Z"
        }
      ]
    },
    {
      "id": "claude_chat_msg_01M8tFcHwbQ2kY6NpEjRZv4D",
      "role": "assistant",
      "created_at": "2026-04-10T08:09:11Z",
      "content": [
        {
          "type": "text",
          "text": "I'd be happy to help you draft requirements for your dashboard feature..."
        }
      ],
      "generated_files": [
        {
          "id": "claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX",
          "filename": "requirements_summary.csv",
          "mime_type": "text/csv",
          "size_bytes": 2048,
          "md5": "89968669461d95416549937168269d6b"
        }
      ],
      "artifacts": [
        {
          "id": "claude_artifact_01HqRsTuVwXyZa2BcDeFgH4J",
          "version_id": "claude_artifact_version_01KmNpQrSt3UvWxYz5AbCdEfG",
          "title": "Dashboard Requirements Draft",
          "artifact_type": "text/markdown"
        }
      ]
    }
  ],
  "has_more": false,
  "first_id": "eyJtc2dfdXVpZCI6ICIwZjcwYjA2Ni0uLi4ifQ==",
  "last_id": "eyJtc2dfdXVpZCI6ICJhNGUwYjE3Mi0uLi4ifQ=="
}

filesgenerated_filesartifactsは、それぞれ特定のメッセージでnullになる場合があります。filesは、ユーザーがメッセージに添付したファイルおよびテキスト添付(たとえば、PDF、画像、スプレッドシート、ドキュメント、貼り付けられたテキスト)で、claude.aiが保存した形式のものです。generated_filesは、アシスタントが会話中にツール使用を通じて作成したバイナリファイル(たとえば、PDF、スプレッドシート、スライドデッキ)です。artifactsは、アシスタントがレスポンス内で生成または更新したバージョン管理されたドキュメント(たとえば、コードやマークダウン)です。アーティファクトは同じチャット内の複数のアシスタントターンにわたって改訂されることがあり、各改訂は同じアーティファクトidのもとで新しいversion_idとして現れます。各エントリのid(アーティファクトの場合はversion_id)をファイルとアーティファクトの取得の対応するコンテンツエンドポイントに渡してダウンロードします。

ファイルとアーティファクトの取得

ファイルとアーティファクトはIDでダウンロードされ、独立して一覧表示されることはありません。IDは、チャットとメッセージの取得のチャットメッセージエンドポイント(各メッセージのfilesgenerated_filesartifacts配列)から、またはプロジェクトレベルのアップロードの場合はプロジェクト添付ファイルエンドポイントから取得します。

IDの種類と必要なデータに合ったエンドポイントを選択してください。同じファイルコンテンツエンドポイントが、チャットファイルとプロジェクトファイルの両方を提供します。

持っているもの欲しいもの使用するエンドポイント
claude_file_* IDファイルのコンテンツファイルコンテンツのダウンロード
claude_file_* IDファイルのメタデータのみファイルメタデータの取得
claude_gen_file_* IDツール生成ファイルのバイナリコンテンツClaude生成ファイルのダウンロード
claude_gen_file_* IDツール生成ファイルのメタデータのみ生成ファイルメタデータの取得
claude_artifact_version_* ID1つのアーティファクトバージョンのテキストアーティファクトコンテンツのダウンロード
claude_artifact_version_* IDアーティファクトバージョンのメタデータのみアーティファクトメタデータの取得
claude_proj_doc_* IDプロジェクトドキュメントのプレーンテキストコンテンツプロジェクトドキュメントコンテンツの取得
claude_proj_doc_* IDプロジェクトドキュメントのメタデータのみプロジェクトドキュメントメタデータの取得

ファイルコンテンツエンドポイントは、claude.aiがそのファイルについて保存したコンテンツを、チャンク化されたバイナリレスポンスとしてストリーミングします。そのコンテンツは、ユーザーがアップロードしたファイルと常に同一であるとは限りません。画像は、アップロードされたバイトではなく処理済みのコピーとして提供される場合があります。チャットに添付された一部のドキュメント(たとえば、Wordファイル、PowerPointファイル、一部のPDF)は、claude.aiがそこから抽出したテキストとして保存されます。これらのドキュメントについては、エンドポイントは抽出されたテキストを元のファイル名で返し、元のドキュメントはCompliance APIを通じては利用できません。size_bytesおよびmd5フィールドは、アップロードされたファイルではなく保存されたコンテンツを表します。ファイル名とmime_typeは、引き続きアップロードされたドキュメントの形式を示す場合があります。ファイルの形式は、名前や宣言された型ではなく、返されたバイトから識別してください。

レスポンスには次のヘッダーが含まれます。

  • Content-Disposition: attachment; filename*=utf-8''<percent-encoded filename>は、元のアップロードファイル名をRFC 5987拡張形式で保持します。拡張形式は、非ASCIIのファイル名だけでなく、すべてのファイル名に使用されます。
  • Content-Typeは、保存されたコンテンツに記録されたMIMEタイプを保持します。抽出テキストとして保存されたドキュメントの場合、元のドキュメント形式を示すことがあります。
  • Content-MD5は、提供されたバイトのMD5ダイジェストを、RFC 1864で規定されているとおりbase64エンコードして保持します。
  • Transfer-Encoding: chunkedは常に設定されます。
cURL
file_id="claude_file_01UaT9wBcDfGhJkLmNpQrSv7"

curl --fail-with-body -sS -OJ \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  "https://api.anthropic.com/v1/compliance/apps/chats/files/$file_id/content"

-OJフラグは、Content-Dispositionのファイル名(ユーザーがアップロードした元のファイル名)でレスポンスを保存するようcurlに指示します。

アーティファクトコンテンツエンドポイントは、1つのアーティファクトバージョンのテキスト本文を返します。アーティファクトの固定のidではなく、アシスタントメッセージのartifacts配列内のエントリの1つから取得したversion_idを渡してください。アーティファクトの新しいバージョンにはそれぞれ独自のversion_idがあり、Compliance APIはそのバージョンの正確なバイトを提供します。

プロジェクトと添付ファイルの取得

プロジェクトは、関連するチャットを、カスタム指示、ナレッジベースコンテンツ、および添付されたファイルやテキストドキュメントとともにまとめます。Compliance APIは、プロジェクトのメタデータ、プロジェクトの詳細、およびプロジェクトに属する添付ファイルの一覧を公開します。

プロジェクトの結果は作成日の昇順でソートされます。添付ファイルの結果はcreated_atの昇順でソートされ、同値の場合はidで順序が決まります。プロジェクト一覧と添付ファイル一覧のレスポンスは、チャットやActivity Feedで使用されるfirst_id/last_idカーソルの代わりに、不透明なnext_pageページトークンでページネーションを行います。次のリクエストでは、このトークンをpageクエリパラメータとして渡してください。

プロジェクトファイルとプロジェクトドキュメントの違い

プロジェクト添付ファイルは、各エントリのtype識別子によって区別される、2つの異なる形式のいずれかです。

typeproject_fileのエントリは、IDがclaude_file_で始まるファイルアップロード(PDF、画像、スプレッドシート)です。ファイルコンテンツのダウンロードでダウンロードします。typeproject_docのエントリは、IDがclaude_proj_doc_で始まるプレーンテキストドキュメント(常にtext/plain)で、プロジェクトに追加された際にclaude.aiがテキストに変換するWordファイルなどのドキュメントも含まれます。プロジェクトドキュメントコンテンツの取得で取得します。

添付ファイル一覧を走査するコンシューマーは、typeで分岐し、各エントリに対応するコンテンツエンドポイントを呼び出す必要があります。次のリクエストは添付ファイルの1ページを一覧表示します。has_morefalseになるまで、next_pagepageパラメータとして渡してページネーションを行ってください。

cURL
project_id="claude_proj_01KGp4eZNug9ri4kE35RSppq"

curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/apps/projects/$project_id/attachments" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"
Response
{
  "data": [
    {
      "id": "claude_file_01UaT9wBcDfGhJkLmNpQrSv7",
      "created_at": "2026-04-10T08:09:10Z",
      "filename": "dashboard_mockup_v1.pdf",
      "mime_type": "application/pdf",
      "size_bytes": 482133,
      "md5": "56367e4d2705cc9c025ad07424e944f0",
      "type": "project_file"
    },
    {
      "id": "claude_proj_doc_01YnT8sBcWvUtXzQpMkRfDgH",
      "created_at": "2026-04-10T08:09:11Z",
      "filename": "requirements.md",
      "mime_type": "text/plain",
      "type": "project_doc"
    }
  ],
  "has_more": false,
  "next_page": null
}

コンテンツの削除

Compliance APIは、チャット、ファイル、プロジェクトドキュメント、およびプロジェクト全体に対するハード削除エンドポイントを公開します。ハード削除されたチャットは復元できず、以降は一覧レスポンスに表示されなくなります。

4つのエンドポイントすべてにdelete:compliance_user_dataスコープが必要です。このスコープは、Compliance Access Keyの作成時に読み取りスコープとは別に付与されます。

次のリクエストは1つのチャットを削除します。他の削除エンドポイントにも同じパターンが適用され、URLのみが変わります。

cURL
# 警告: この操作はチャット、そのすべてのメッセージ、
# および添付ファイルを完全に削除します。削除は即時に行われ、元に戻せません。
# この操作には `delete:compliance_user_data` スコープが必要です。これはCompliance Access Keyの作成時に
# `read:compliance_user_data` とは別に付与されます。
# 実行する前に、明示的な承認を得ていることを確認してください。

chat_id="claude_chat_01H5CWunD7RpVJ5bHa8RCkja"

curl --fail-with-body -sS -X DELETE \
  "https://api.anthropic.com/v1/compliance/apps/chats/$chat_id" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"
Response
{
  "id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
  "type": "claude_chat_deleted"
}

成功した削除はそれぞれ、idtype識別子を含む小さな確認エンベロープを返します。チャットエンドポイントはclaude_chat_deletedを返します。削除が確認されたものとして扱う前に、typeフィールドを確認してください。他のエンドポイントが返す正確なtype値については、各削除エンドポイントのAPIリファレンスページのレスポンススキーマを参照してください。

プロジェクトを削除する前にチャットを切り離す

プロジェクトにチャットが1つでも紐付いている間は、そのプロジェクトを削除できません。APIは次の本文とともに409を返します。

{
  "error": {
    "type": "conflict_error",
    "message": "The \"claude_proj_01KGp4eZNug9ri4kE35RSppq\" project cannot be deleted as it has chats attached to it. Delete or detach all chats, and try deleting the project again."
  }
}

解決するには、GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id}でプロジェクトのチャットを一覧表示し(project_ids[]フィルターには少なくとも1つのuser_ids[]値が必要です。IDは組織ユーザーの一覧で列挙してください)、それぞれをDELETE /v1/compliance/apps/chats/{claude_chat_id}で削除し(またはclaude.aiからプロジェクトの外に移動し)、その後プロジェクトの削除を再試行してください。

次のステップ

すべてのチャット、ファイル、プロジェクト、アーティファクトエンドポイントの完全なリクエストおよびレスポンススキーマ。

CoworkやClaude Codeなど、Claudeのアプリやエージェントでユーザーが実行するセッションを一覧表示し、そのトランスクリプトを取得します。

このページのチャットやプロジェクトに関連する人やチームを列挙します。

Was this page helpful?