Claude Platform Docs
管理合規 API

擷取工作階段逐字稿

列出您的使用者在 Claude 應用程式與代理程式(例如 Claude Cowork 與 Claude Code)中執行的工作階段,並透過 Compliance API 擷取其逐字稿。

本頁的端點會將您的使用者在 Claude 應用程式與代理程式(目前為 Cowork 與 Claude Code)中、於您的 Claude Enterprise 組織內執行之工作階段的逐字稿,提供給合規審查人員。每個「session」(工作階段)都是與 Claude 的單一對話;其「transcript」(逐字稿)是該對話中使用者提示、助理回應,以及工具呼叫與結果的序列。這些端點支援「eDiscovery」(電子蒐證)匯出與「data loss prevention」(資料外洩防護),即 DLP 的執行。

Compliance API 依據工作階段的執行位置,將其分為兩個端點系列:本機工作階段端點用於在使用者機器上執行的工作階段,遠端工作階段端點用於在 Anthropic 管理的環境中於雲端執行的工作階段。兩個系列皆為唯讀,且皆不適用於 Admin API 金鑰(sk-ant-admin01-...):以 Admin API 金鑰驗證的呼叫會傳回 403 Forbidden

下表將每個產品及其執行位置,對應到傳回其工作階段的端點系列,以及在回應中識別它們的 product_surface 值。隨著涵蓋範圍擴大,產品會陸續加入此表。

產品及其執行位置端點系列product_surface
Claude Desktop 中的 Cowork,在使用者的機器上執行本機工作階段端點(/v1/compliance/apps/sessions/localcowork
終端機、Claude Desktop 或 IDE 擴充功能中的 Claude Code,在使用者的機器上執行本機工作階段端點claude_code
在 claude.ai 網頁版或行動版上啟動的 Cowork 工作階段,在 Anthropic 管理的環境中於雲端執行遠端工作階段端點(/v1/compliance/apps/sessions/remotecowork_remote

本機工作階段的擷取與您的組織是否已啟用 Compliance API 相關聯,並在使用者以其 Claude Enterprise 帳戶登入時適用。工作階段端點不會傳回下列內容:

  • 以 Claude Console API 金鑰驗證的 Claude Code 工作階段,或透過第三方雲端平台(例如 Amazon Bedrock、Google Cloud 或 Microsoft Foundry)執行的 Claude Code 工作階段。
  • 網頁版 Claude Code。它同樣在 Anthropic 管理的環境中於雲端執行,但它不是遠端工作階段;遠端工作階段端點僅傳回 Cowork 工作階段。
  • 已啟用 HIPAA 就緒之組織中的本機工作階段。不會擷取任何本機工作階段資料,因此本機工作階段端點對這些組織不會傳回任何工作階段。
  • 適用零資料保留(ZDR)的本機工作階段。這些工作階段會從清單結果中排除,且擷取與訊息端點會對其傳回 404。

Anthropic 建議使用 Compliance API 來擷取 Cowork 與 Claude Code 工作階段的內容。下表比較本機工作階段遠端工作階段,以及以 OpenTelemetry 為基礎的替代方案:Cowork 的 OpenTelemetry 記錄Claude Code 監控

本機工作階段(在使用者的機器上)遠端工作階段(在雲端中)OpenTelemetry 記錄
傳遞方式拉取:透過 HTTPS 查詢與匯出拉取:透過 HTTPS 查詢與匯出推送:串流至您的 OTLP 收集器
設定使用您現有的 Compliance Access Key 即可運作使用您現有的 Compliance Access Key 即可運作管理員設定 OTLP 端點與內容擷取設定
基礎設施由 Anthropic 託管由 Anthropic 託管由您執行收集器與儲存
ID 前綴clls_cse_不適用
product_surfacecoworkclaude_codecowork_remote不適用
保留期預設為 6 年,或在設定了有限期間時採用您組織的自訂對話保留期;由 Anthropic 保存6 年,由 Anthropic 保存您的基礎設施,您的政策
使用者提示與助理回應是,取決於內容擷取設定
工具輸入預設每個輸入截斷至 10,000 位元組;可依要求提高至約 1 MiB預設每個輸入截斷至 10,000 位元組;可依要求提高至約 1 MiB截斷的摘要
工具結果內容預設每個文字項目截斷至 10,000 位元組;可依要求提高至約 1 MiB預設每個文字項目截斷至 10,000 位元組;可依要求提高至約 1 MiB大小與成功與否等中繼資料;Claude Code 也可透過選用且有大小上限的設定擷取內容
檔案內容是,透過逐字稿中的工具呼叫(僅限文字;其他內容以預留位置顯示)是,透過逐字稿中的工具呼叫(僅限文字;其他內容會被省略)檔案路徑;Claude Code 也可透過選用且有大小上限的設定擷取內容
主機與裝置中繼資料(終端機類型、工作區路徑)
Token 用量與成本否;可透過 Claude Enterprise Analytics API 取得否;可透過 Claude Enterprise Analytics API 取得

使用者機器上的工作階段(本機工作階段)

本機工作階段在使用者以其 Claude Enterprise 帳戶登入時於其機器上執行:目前包括 Claude Desktop 中的 Cowork,以及終端機、Claude Desktop 或 IDE 擴充功能中的 Claude Code。

Compliance API 透過三個端點提供本機工作階段:GET /v1/compliance/apps/sessions/local 列出工作階段中繼資料,GET /v1/compliance/apps/sessions/local/{session_id} 擷取單一工作階段的中繼資料,而 GET /v1/compliance/apps/sessions/local/{session_id}/messages 傳回單一工作階段的逐字稿。三者皆需要 read:compliance_user_data 範圍,且僅計入共用的 Compliance API 速率限制(rate limit);它們不受適用於遠端工作階段端點的第二個請求預算限制。請參閱 429 Too Many Requests。若您的上層組織無法使用本機工作階段,三個端點皆會傳回 404 並附帶訊息 Local sessions are not available.(請參閱找不到本機工作階段);當工作階段清單或已擷取的內容暫時無法使用時,它們會傳回 503(請參閱本機工作階段暫時無法使用)。

對於本機工作階段,Anthropic 會在每個對話的請求抵達 Claude API 時於伺服器端記錄該對話;裝置上不會安裝任何東西,且除了用戶端原本就會傳送至 Claude API 的請求之外,不會收集任何其他內容。本機工作階段逐字稿顯示的是 Claude 被要求做什麼以及它傳回了什麼,而非裝置上發生了什麼。檔案與網路活動僅能透過逐字稿中的工具呼叫與工具結果看見,因此從未抵達 API 的活動(例如工作階段從未傳送的本機檔案)不會被擷取。

在使用客戶管理加密金鑰的組織中,本機工作階段會照常列出且可擷取,但目前不會傳回逐字稿內容;每則訊息傳回時其內容會標示為無法使用(關於此類訊息的標示方式,請參閱擷取本機工作階段逐字稿)。

清單端點會針對您的金鑰可讀取的每個已連結組織傳回工作階段中繼資料,不含逐字稿內容。與遠端工作階段清單不同,它沒有組織或使用者篩選條件:請使用 created_at.gtecreated_at.lt 參數在時間上限定結果範圍。兩者皆接受帶有必要 UTC 偏移量的 RFC 3339 時間戳記,且當兩者皆提供時,created_at.lt 必須嚴格晚於 created_at.gte,否則請求會傳回 400 Bad Request。第三個時間篩選條件 updated_at.gte 以最後活動而非最初活動來限定範圍:它會傳回最後一次推論呼叫在指定時間或之後的工作階段,並可與 created_at 篩選條件結合使用,而不改變排序或分頁。請使用它來輪詢自上一次處理以來有活動的工作階段,如本節稍後所述。新的工作階段與訊息會在短暫的處理延遲後出現在結果中,通常在數分鐘內;工作階段剛開始後立即查詢時若缺少該工作階段,並不一定表示未被擷取。下列請求列出自指定日期以來建立的工作階段。

cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/apps/sessions/local" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --data-urlencode "created_at.gte=2026-07-01T00:00:00Z" \
  --data-urlencode "limit=100"
Response
{
  "data": [
    {
      "type": "compliance_local_session",
      "id": "clls_01HxKpLmNoPqRsTuVwXyZaBc",
      "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",
      "workspace_id": "wrkspc_01SvYKoWVRVHoEbwESNvzYdR",
      "user": {
        "id": "user_01GpKpLmNoPqRsTuVwXyZaBc",
        "email_address": "engineer@example.com"
      },
      "product_surface": "cowork",
      "created_at": "2026-07-09T14:02:11Z",
      "updated_at": "2026-07-09T14:02:38Z"
    },
    {
      "type": "compliance_local_session",
      "id": "clls_01HyLqMnOpQrStUvWxYzAbCd",
      "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",
      "workspace_id": null,
      "user": {
        "id": "user_01HqRsTuVwXyZaBcDeFgHiJk",
        "email_address": null
      },
      "product_surface": "claude_code",
      "created_at": "2026-07-08T09:15:43Z",
      "updated_at": "2026-07-08T09:52:10Z"
    }
  ],
  "next_page": "page_AAEfQx7mPdLkq9Rt2VwHbZk"
}

結果依 created_at 以反向時間順序排序(最新的在前),相同時間者以固定的伺服器端順序決定先後,且每個回應最多 limit 筆結果(預設 100,最大 500)。此端點僅能以 pagenext_page 權杖向前分頁(請參閱分頁結果):將回應的 next_page 值作為下一個請求的 page 查詢參數傳回,並在 next_pagenull 時停止。回應中沒有 has_more 欄位。請在開始清單走訪後的 24 小時內完成;較舊的清單游標仍會被接受,但會依據目前的保留邊界重新評估,因此其最舊保留活動即將超出保留期的工作階段可能會被略過。

在每個工作階段物件中,user.id 一律會設定,且在帳戶刪除後仍會保留;當使用者的帳戶已被刪除,或使用者不再是您的金鑰可讀取之組織的成員時,user.email_addressnull。當工作階段未與工作區關聯時,workspace_idnull。一個本機工作階段對應一個用戶端工作階段 ID:在用戶端中開始新對話或清除其上下文,都會開始一筆新的工作階段記錄。請將 id 值視為不透明字串;其格式可能在未通知的情況下變更。

本機工作階段帶有 updated_at 但沒有 status:本機工作階段沒有伺服器端生命週期狀態,其可見性改由保留期控管。本機工作階段是以用戶端在工作階段期間所發出的一系列 Claude API 呼叫(推論呼叫)的形式被擷取,而保留期個別適用於每個已擷取的呼叫。created_at 是工作階段最早保留呼叫的時間戳記,updated_at 則是其最後一次呼叫的時間戳記,兩者皆為 UTC。隨著較舊的呼叫超出保留期,created_at 會相應地往後推移,而一旦工作階段中的每個呼叫都已過期,該工作階段便不再傳回;updated_at 追蹤最近一次呼叫,在此之前不受影響。由於 created_at 可能在不同次執行之間變動,當您隨時間重新走訪清單時,請以 id 去除重複。若要在工作階段新增訊息時保持逐字稿為最新,請使用 updated_at.gte 篩選條件輪詢,並讓連續的時間視窗互相重疊。在清單端點上,updated_at 是下限:對於在頁面或 created_at.lt 視窗邊界仍處於活動狀態的工作階段,它可能暫時落後於該工作階段真正的最後活動時間,且新的呼叫僅在前述短暫處理延遲之後才可查詢。由於有這種落後情形,請將每次執行的 updated_at.gte 設定為比上一次執行的開始時間早幾分鐘,而非精確設定為上一次執行的時間。若將界限設定為精確的上一次時間,會無聲且永久地遺漏最後一次呼叫在該時刻仍在建立索引的工作階段,因為一旦界限推進超過該呼叫,之後的任何執行都不會再傳回它。請以 id 對傳回的工作階段去除重複、重新擷取其逐字稿,並以 id 對訊息去除重複。擷取工作階段或其訊息一律會反映精確的最新保留呼叫,因此對較舊視窗進行定期核對處理,是擴大重疊範圍之外的雙重保險替代方案。

清單是根據工作階段活動中繼資料建立的,因此可能包含逐字稿內容未被擷取的工作階段,例如在您的組織開始擷取之前執行的工作階段(可回溯至您的保留期所允許的最早時間);此類工作階段的逐字稿會傳回每則訊息,並將其內容標示為無法使用(請參閱擷取本機工作階段逐字稿)。

已擷取的本機工作階段內容預設自擷取起儲存 6 年。若執行該工作階段的組織已在 claude.ai > Organization settings > Data and privacy 中設定了有限的自訂對話保留期,則改為適用該期間,無論其比預設值短或長;當組織設定了多個自訂保留期時,適用最短者。該設定的變更會以兩種不同方式生效:設定一變更,端點便立即停止傳回早於組織目前期間的活動;而每則已擷取的訊息則依其擷取時生效的期間儲存,因此之後延長期間並不會恢復已過期的內容。

若要直接擷取單一工作階段的中繼資料,請將其 ID 傳遞給 GET /v1/compliance/apps/sessions/local/{session_id}。回應是與清單端點傳回的相同工作階段物件,沒有封套也沒有逐字稿內容。格式錯誤的工作階段 ID 會傳回 400 Bad Request。單一的 404 Not Found 涵蓋回應不加區分的四種情況:工作階段不在您的金鑰可讀取的組織中(包括其他上層組織下的工作階段)、工作階段不存在、零資料保留對其生效,或其中的每個呼叫都已超出保留期。

product_surface(字串或 null)識別建立該工作階段的產品:cowork 代表在 Claude Desktop 中於使用者機器上執行的 Cowork 工作階段,claude_code 代表 Claude Code 工作階段。隨著涵蓋範圍擴大,會出現新的值。

擷取本機工作階段逐字稿

訊息端點會傳回工作階段的逐字稿,由已擷取的 Claude API 呼叫重建而成:使用者提示、助理文字、工具呼叫,以及工具結果的文字部分,除了大小截斷之外,皆依其傳送時的原樣傳回。該內容中的 URL、憑證或個人資料不會被遮罩,因此請將逐字稿視為敏感資料。逐字稿會省略或取代下列內容:

  • 思考區塊一律不包含。
  • 請求的系統提示(system prompt)一律不傳回。會以一則內容為 [system prompt content not shown] 的標記訊息代替(通常每個工作階段一次;沒有已擷取內容的工作階段不帶標記)。
  • 工具定義與 MCP 伺服器設定不屬於逐字稿的一部分。
  • 影像、PDF 及其他二進位或結構化區塊不會傳回。每個都會以內容為 [<block type> content not shown](例如 [image content not shown])且 truncated 設為 truetext 區塊呈現。工具結果內的非文字項目會被一個 [N non-text item(s) not shown] 項目取代,且該工具結果區塊的 truncatedtrue
  • text 區塊上的引用中繼資料會被省略,且受影響的區塊帶有設為 truetruncated

CLAUDE.md 等專案指示檔案會以一般使用者角色內容呈現。技能內容在用戶端將其作為訊息內容傳送時會出現,且不會與其他使用者文字區分。如需涵蓋範圍摘要,請參閱 Compliance API 常見問題;如需比較本機工作階段與遠端工作階段及 OpenTelemetry 記錄的表格,請參閱本頁的簡介。

cURL
session_id="clls_01HxKpLmNoPqRsTuVwXyZaBc"

curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/apps/sessions/local/$session_id/messages" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"
Response
{
  "session": {
    "type": "compliance_local_session",
    "id": "clls_01HxKpLmNoPqRsTuVwXyZaBc",
    "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",
    "workspace_id": "wrkspc_01SvYKoWVRVHoEbwESNvzYdR",
    "user": {
      "id": "user_01GpKpLmNoPqRsTuVwXyZaBc",
      "email_address": null
    },
    "product_surface": "cowork",
    "created_at": "2026-07-09T14:02:11Z",
    "updated_at": "2026-07-09T14:02:38Z"
  },
  "data": [
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBa",
      "role": "user",
      "model": null,
      "created_at": "2026-07-09T14:02:11Z",
      "provenance": {
        "type": "synthetic_marker"
      },
      "content": [
        {
          "type": "text",
          "text": "[system prompt content not shown]",
          "truncated": true
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBc",
      "role": "user",
      "model": null,
      "created_at": "2026-07-09T14:02:11Z",
      "provenance": null,
      "content": [
        {
          "type": "text",
          "text": "Fix the failing test in tests/auth_test.py",
          "truncated": false
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBd",
      "role": "assistant",
      "model": "claude-opus-5",
      "created_at": "2026-07-09T14:02:11Z",
      "provenance": null,
      "content": [
        {
          "type": "text",
          "text": "I'll read the test file first.",
          "truncated": false
        },
        {
          "type": "tool_use",
          "id": "toolu_01AbCdEfGhIjKlMnOpQrSt",
          "name": "Read",
          "input": "{\"file_path\":\"tests/auth_test.py\"}",
          "truncated": false
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBe",
      "role": "user",
      "model": null,
      "created_at": "2026-07-09T14:02:38Z",
      "provenance": null,
      "content": [
        {
          "type": "tool_result",
          "tool_use_id": "toolu_01AbCdEfGhIjKlMnOpQrSt",
          "name": "Read",
          "is_error": false,
          "content": [
            {
              "type": "text",
              "text": "def test_login_expiry():\n    ..."
            }
          ],
          "truncated": false
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBf",
      "role": "assistant",
      "model": "claude-opus-5",
      "created_at": "2026-07-09T14:02:38Z",
      "provenance": null,
      "content": [
        {
          "type": "text",
          "text": "The test was asserting on a stale expiry timestamp. I've updated it.",
          "truncated": false
        }
      ]
    }
  ],
  "next_page": null
}

回應在分頁的 data 陣列旁嵌入一個 session 封套。此範例中的第一筆記錄是代替請求系統提示的標記;其 provenance 將於本節稍後說明。在此端點上,user.email_address 一律為 null:訊息端點不會解析電子郵件地址,因此此處的 null 並不表示使用者的帳戶已被刪除。若要將工作階段歸屬至某個電子郵件地址,請以 user.id清單端點或擷取端點(GET /v1/compliance/apps/sessions/local/{session_id})進行聯結。

訊息預設以最舊的在前傳回;傳遞 order=desc 可反轉順序。分頁使用與清單端點相同的 page/next_page 機制,limit 預設為 100,最大為 1,000。當回應達到其大小限制時,頁面可能提前結束,因此訊息數少於 limit 的頁面並不表示您已到達結尾;請持續分頁直到 next_pagenull。頁面游標綁定於其核發時的工作階段與排序順序,且一次走訪的游標會在其第一頁後 24 小時過期:過期的游標會傳回 400 Bad Request,告知您不帶 page 參數重新開始,而重新開始的走訪會反映目前的保留邊界。為不同工作階段或 order 核發的游標同樣會傳回 400,視為無效游標。

每則訊息帶有一個 roleuserassistant)以及一個由 texttool_usetool_result 區塊組成的 content 陣列。它也帶有一個 model:在從 Claude API 擷取的助理輪次上,這是處理該輪次的模型;在使用者訊息以及任何設定了 provenance 的助理訊息上則為 null,因為用戶端宣稱的歷史記錄與合成標記並非由模型產生,而無法使用之內容是由哪個模型處理則未知。text 區塊帶有 texttruncatedtool_use 區塊帶有 idnameinputtruncated,其中 input 是 JSON 編碼的字串而非物件。tool_result 區塊帶有 tool_use_idnameis_error、一個由 text 項目組成的 content 陣列,以及 truncated。MCP 工具呼叫與結果,以及大多數伺服器工具呼叫與結果,皆會正規化為這些相同的 tool_usetool_result 形式;任何其他區塊類型則以 [<block type> content not shown] 預留位置呈現。訊息 id 在該輪次被保留期間是穩定的。從同一個推論呼叫重建的每則訊息皆帶有該呼叫的時間戳記,因此連續的訊息經常共用一個 created_at 值;請保留傳回的順序,而非依時間戳記重新排序。

每則訊息也帶有一個 provenance 欄位,描述其內容的擷取方式。對於由 Claude API 擷取的已驗證內容(這是常見情況),provenancenull。否則它是一個物件,其 type 標示例外情況:

  • content_unavailable 表示內容無法傳回。content 陣列為空,且 provenance.reason 說明原因。not_captured 表示該輪次沒有可用內容;它並不證明沒有儲存任何記錄,因為被儲存端存取政策扣留的內容會以相同原因回報(例如在使用客戶管理加密金鑰的組織中),且在其他部分已擷取的工作階段中,個別輪次可能因其他資料處理原因而無法使用,並帶有相同原因。client_aborted 表示用戶端在回應完成前關閉了連線或取消了請求,因此該輪次的回應未被擷取;任何已串流至用戶端的部分輸出皆不包含在內,且此原因僅適用於助理角色的輪次。cmek_key_revoked 保留給以您組織的客戶管理金鑰加密、而該金鑰無法使用(例如已撤銷)時的內容;目前不會傳回此值,因此請為向前相容性加以處理。retention_elapsed 表示內容已超出保留期。oversize 表示單一訊息超過每則訊息的大小上限;該訊息仍會傳回,但 content 陣列為空。
  • client_asserted 標示由用戶端作為對話歷史記錄提供、且無法與已擷取回應比對的助理訊息;其作者身分未經驗證。
  • synthetic_marker 標示由端點本身產生的記錄,例如代替系統提示的標記。當用戶端在工作階段中途重寫或壓縮其對話歷史記錄時(例如在上下文壓縮之後),逐字稿會在該處插入一則標記訊息,並以用戶端傳送的新內容繼續;當您的組織設有有限的保留期時,重寫後的歷史記錄本身會被扣留(第二個標記會註明此事),且僅顯示最新的使用者輪次及其後的內容。

標記訊息與用戶端宣稱的訊息以一個帶方括號的說明性 text 區塊開頭,並標示 truncated: true,例如 [system prompt content not shown]。請將這些記錄視為存在但無法使用或未經驗證,而非遺失,並容許無法辨識的 provenance 類型與原因。

有兩個參數限制每個工具區塊傳回的位元組數:tool_use_input_max_bytestool_result_max_bytes,兩者預設皆為 10,000 位元組。傳遞 -1 可取得伺服器最大值(每個字串約 1 MiB);0 會傳回 400 Bad Request,而超過最大值的值會被限制為最大值。被任一上限截斷的字串會在字元邊界處截斷,並附加一個帶內後綴(例如 …[truncated; pass tool_result_max_bytes=-1 for the server max]),且其區塊帶有 "truncated": true。因此,被截斷的 tool_use input 不再是有效的 JSON,所以請僅從未截斷的區塊解析工具輸入(或提高上限並重新擷取)。text 類型的區塊一律以相同的伺服器最大值(約 1 MiB)為上限;沒有參數可提高它,且達到上限的 text 區塊同樣帶有 "truncated": true

逐字稿內容遵循使用者機器上的工作階段下所述的保留期。當工作階段的開頭已超出保留期時,逐字稿會以單一個 reasonretention_elapsedcontent_unavailable 預留位置開頭,其後接著保留的訊息。當工作階段中的每個呼叫都已超出保留期時,訊息端點會傳回 404 Not Found,如同對於您的金鑰無法讀取之組織中的工作階段、不存在的工作階段,以及零資料保留生效的工作階段一樣。格式錯誤的工作階段 ID 會傳回 400 Bad Request

雲端中的工作階段(遠端工作階段)

在 claude.ai 網頁版或行動版上啟動的 Cowork 工作階段,會在 Anthropic 管理的環境中於雲端執行。Compliance API 透過兩個端點提供這些遠端工作階段:GET /v1/compliance/apps/sessions/remote 列出工作階段中繼資料,而 GET /v1/compliance/apps/sessions/remote/{session_id}/messages 傳回單一工作階段的逐字稿。兩者皆需要 read:compliance_user_data 範圍,且兩者皆計入共用的 Compliance API 速率限制,外加這些端點專屬的第二個請求預算;請參閱 429 Too Many Requests

清單端點預設為整個組織範圍:省略 organization_ids[] 可包含您的金鑰可讀取的每個 claude.ai 組織,或傳遞最多 500 個值以縮小範圍。若要改為將清單範圍限定至特定使用者,請傳遞 1–10 個 user_ids[] 值(從列出組織使用者取得 ID);此篩選條件比對工作階段的擁有使用者,因此只要設定了 user_ids[],代理程式擁有的工作階段便會被排除。請使用 created_at 範圍參數(gtegtltlte,RFC 3339 格式)在時間上限定結果範圍。沒有 updated_at 篩選條件。下列請求會列出自指定日期以來建立的工作階段。

cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/apps/sessions/remote" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --data-urlencode "created_at.gte=2026-06-01T00:00:00Z" \
  --data-urlencode "limit=100"
Response
{
  "data": [
    {
      "id": "cse_01WpQrStUvXyZaBcDeFgHjK6",
      "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
      "user": {
        "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
        "email_address": "user@example.com"
      },
      "agent_id": null,
      "started_by_user": null,
      "status": "active",
      "created_at": "2026-07-01T17:04:05Z",
      "updated_at": "2026-07-01T18:00:41Z",
      "product_surface": "cowork_remote",
      "claude_project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq"
    },
    {
      "id": "cse_01TkNpRsUvWxYzAbCdEfGhJ4",
      "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
      "user": null,
      "agent_id": "cagt_01MnPqRsTuVwXyZaBcDeFgH8",
      "started_by_user": {
        "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
        "email_address": "user@example.com"
      },
      "status": "archived",
      "created_at": "2026-06-28T09:15:22Z",
      "updated_at": "2026-06-28T09:47:10Z",
      "product_surface": "cowork_remote",
      "claude_project_id": null
    }
  ],
  "next_page": "page_AAEfMk93cXpYdGxrZXk"
}

結果依 created_at 以反向時間順序排序(最新的在前),且每個回應最多 limit 筆結果(預設 100,最大 500)。此端點以 pagenext_page 權杖分頁(請參閱分頁結果):將回應的 next_page 值作為下一個請求的 page 查詢參數傳回,並在 next_pagenull 時停止。

工作階段由使用者或代理程式其中之一擁有,絕不會兩者皆是。對於使用者擁有的工作階段,user 帶有擁有者的 ID 與電子郵件地址(當使用者不再是您的金鑰可讀取之組織的成員時,email_addressnull),且 agent_idnull。對於代理程式擁有的工作階段(例如排程任務),usernullagent_id 帶有代理程式的 ID(前綴 cagt_),而 started_by_user 識別發起該次執行的人員,例如啟動排程任務者;在使用者擁有的工作階段上,started_by_usernull

claude_project_id 是工作階段所屬之 claude.ai 專案的 ID(前綴 claude_proj_),或在工作階段不屬於任何專案時為 null

statuspendingactivepausedarchivedfailed 其中之一。工作階段在佈建期間為 pendingpending 工作階段尚無逐字稿,且在佈建完成之前,訊息端點會對其傳回 404。已刪除的工作階段一律不會傳回。

product_surface(字串或 null)識別建立該工作階段的產品。此端點目前僅傳回 product_surfacecowork_remote 的工作階段:在 claude.ai 網頁版或行動版上啟動的 Cowork 工作階段。

擷取遠端工作階段逐字稿

訊息端點會傳回工作階段的逐字稿:使用者提示、助理回應,以及工具呼叫與結果。思考區塊與影像不包含在內。如需涵蓋範圍摘要,請參閱 Compliance API 常見問題;如需比較遠端工作階段與本機工作階段及 Cowork 的 OpenTelemetry 記錄的表格,請參閱本頁的簡介。

cURL
session_id="cse_01WpQrStUvXyZaBcDeFgHjK6"

curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/apps/sessions/remote/$session_id/messages" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"
Response
{
  "session": {
    "id": "cse_01WpQrStUvXyZaBcDeFgHjK6",
    "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
    "user": {
      "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
      "email_address": null
    },
    "agent_id": null,
    "started_by_user": null,
    "status": "active",
    "created_at": "2026-07-01T17:04:05Z",
    "updated_at": "2026-07-01T18:00:41Z",
    "product_surface": "cowork_remote",
    "claude_project_id": null
  },
  "data": [
    {
      "id": "csev_01HjKmNpQrStUvWxYzAbCdE2",
      "role": "user",
      "created_at": "2026-07-01T17:04:05Z",
      "content": [
        {
          "type": "text",
          "text": "Summarize the customer feedback in the attached spreadsheet.",
          "truncated": false
        }
      ],
      "sent_by_user_id": null,
      "content_unavailable": false
    },
    {
      "id": "csev_01BcDeFgHjKmNpQrStUvWxY4",
      "role": "assistant",
      "created_at": "2026-07-01T17:04:06Z",
      "content": [
        {
          "type": "text",
          "text": "I'll start by reading the spreadsheet...",
          "truncated": false
        }
      ],
      "sent_by_user_id": null,
      "content_unavailable": false
    }
  ],
  "next_page": null
}

回應在分頁的 data 陣列旁嵌入一個 session 封套。在此端點上,封套的 user.email_addressstarted_by_userclaude_project_id 一律設為 null;請改從清單端點取得這些值。

訊息預設以最舊的在前傳回;傳遞 order=desc 可反轉順序。分頁使用與清單端點相同的 page/next_page 機制,limit 預設為 100,最大為 1,000。當回應達到其大小限制時,頁面可能提前結束,因此訊息數少於 limit 的頁面並不表示您已到達結尾;請持續分頁直到 next_pagenull

每則訊息帶有一個 roleuserassistant)以及一個由 texttool_usetool_result 區塊組成的 content 陣列。訊息的 created_at 值是提交時間戳記:連續的訊息可能共用一個時間戳記或略微倒置,因此請保留傳回的順序,而非依 created_at 重新排序。在代理程式擁有的工作階段上,當某則使用者訊息可歸屬時,sent_by_user_id 會記錄傳送該訊息的使用者;否則為 null,包括所有助理訊息。當訊息的內容完全無法傳回時(例如超過大小上限),該訊息帶有設為 truecontent_unavailable

有兩個參數限制每個工具區塊傳回的位元組數:tool_use_input_max_bytestool_result_max_bytes,兩者預設皆為 10,000 位元組。傳遞 -1 可取得伺服器最大值(每個字串約 1 MiB);0 會傳回 400 Bad Request。被任一上限截斷的區塊帶有 "truncated": true,且被截斷的 tool_use 輸入不再是有效的 JSON,所以請僅從未截斷的區塊解析工具輸入(或提高上限並重新擷取)。

訊息端點會對 pending 工作階段、不存在或已刪除的工作階段,以及您的金鑰無法讀取之組織中的工作階段傳回 404 Not Found

保留與刪除

工作階段端點為唯讀;本機與遠端工作階段無法透過 Compliance API 刪除。本機工作階段逐字稿預設保留 6 年,或在設定了有限期間時採用您組織的自訂對話保留期,如使用者機器上的工作階段下所述。遠端工作階段逐字稿保留 6 年。關於這些期間如何與 Anthropic 的其他保留安排並存,請參閱 API 與資料保留

後續步驟

使用相同的 Compliance Access Key 存取 claude.ai 聊天內容、檔案附件與專案。

逐欄位摘要說明工作階段逐字稿包含的內容,以及其他常見問題。

逐字的錯誤承載內容以及每個錯誤的修正方式。

Compliance API 的端點路徑、參數與回應結構描述。

Was this page helpful?