SPB Git

Repository Public

apps.md 89.1 KB 3,123 lines markdown

1---2title: Apps3url: https://platform.claude.com/docs/en/api/compliance/apps4---56# Apps78## Apps › Chats910### List chats1112**GET** `/v1/compliance/apps/chats`1314Lists chat metadata with filtering capabilities for targeted15compliance review. Results are sorted chronologically (time ascending)16by the `order_by` key, with ties broken by id.1718**Deprecation notice:** Combining `user_ids[]` with any `updated_at.*`19filter is deprecated and will be rejected with HTTP 400 after202026-09-22. For incremental polling by update time, omit `user_ids[]`21and set `order_by=updated_at` with `after_id` cursor pagination —22this returns the same chats across the whole organization in a single23request stream. For per-user listing, use `created_at.*` filters (or24no time filter) with the default `order_by`. `user_ids[]` with25`order_by=updated_at` is already rejected.2627#### Query parameters2829- `after_id: optional string`3031  Pagination cursor for retrieving the next page of results. To paginate, pass the `last_id` value from the most recent response. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.3233- `before_id: optional string`3435  Pagination cursor for retrieving the previous page of results. To paginate, pass the `first_id` value from the most recent response. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.3637- `created_at: optional object`3839  - `gt: optional string`4041    Filter chats created after this time (RFC 3339 format)4243    format: date-time4445  - `gte: optional string`4647    Filter chats created at or after this time (RFC 3339 format)4849    format: date-time5051  - `lt: optional string`5253    Filter chats created before this time (RFC 3339 format)5455    format: date-time5657  - `lte: optional string`5859    Filter chats created at or before this time (RFC 3339 format)6061    format: date-time6263- `limit: optional number`6465  Maximum results (default: 100, max: 1000)6667  default: 100, maximum: 1000, minimum: 16869- `order_by: optional "created_at" or "updated_at"`7071  Sort key for results. `created_at` (default) sorts by chat creation time. `updated_at` sorts by last update time and is only supported for org-wide queries (omit user_ids[]). For org-wide queries, any time filter must match the sort key: `created_at.*` filters require `order_by=created_at`, and `updated_at.*` filters require `order_by=updated_at`.7273  default: created_at7475  - `"created_at"`7677  - `"updated_at"`7879- `organization_ids: optional array of string`8081  Filter by organization IDs (accepts `org_...` or organization UUID). Enumerate IDs via `GET /v1/compliance/organizations`.8283- `project_ids: optional array of string`8485  Filter by project IDs (accepts `claude_proj_...`). Enumerate IDs via `GET /v1/compliance/apps/projects`. Requires user_ids[]; not supported for org-wide queries.8687- `updated_at: optional object`8889  - `gt: optional string`9091    Filter chats updated after this time (RFC 3339 format). Combining updated_at filters with `user_ids[]` is deprecated and will be rejected after 2026-09-22; for updated_at-windowed polling, omit `user_ids[]` and use `order_by=updated_at` with `after_id` pagination.9293    format: date-time9495  - `gte: optional string`9697    Filter chats updated at or after this time (RFC 3339 format). Combining updated_at filters with `user_ids[]` is deprecated and will be rejected after 2026-09-22; for updated_at-windowed polling, omit `user_ids[]` and use `order_by=updated_at` with `after_id` pagination.9899    format: date-time100101  - `lt: optional string`102103    Filter chats updated before this time (RFC 3339 format). Combining updated_at filters with `user_ids[]` is deprecated and will be rejected after 2026-09-22; for updated_at-windowed polling, omit `user_ids[]` and use `order_by=updated_at` with `after_id` pagination.104105    format: date-time106107  - `lte: optional string`108109    Filter chats updated at or before this time (RFC 3339 format). Combining updated_at filters with `user_ids[]` is deprecated and will be rejected after 2026-09-22; for updated_at-windowed polling, omit `user_ids[]` and use `order_by=updated_at` with `after_id` pagination.110111    format: date-time112113- `user_ids: optional array of string`114115  Filter to chats created by specific users (max 10 per request). Omit for an org-wide query. Enumerate IDs via `GET /v1/compliance/organizations/{org_uuid}/users`. Deprecated combination: passing `user_ids[]` together with any `updated_at.*` filter is deprecated and will be rejected after 2026-09-22. For `updated_at`-windowed polling, omit `user_ids[]` and use `order_by=updated_at` with `after_id` pagination.116117  maxItems: 10118119#### Headers120121- `"x-api-key": optional string`122123#### Returns124125- `data: array of object`126127  List of chat metadata sorted chronologically by the request's `order_by` key (default `created_at`), tie break by id128129  - `id: string`130131    Chat ID132133  - `created_at: string`134135    Creation timestamp136137    format: date-time138139  - `deleted_at: string or null`140141    Deletion timestamp if deleted142143    format: date-time144145  - `href: string`146147    URL to view this chat in claude.ai148149  - `model: string or null`150151    Model selected for this chat (e.g. 'claude-opus-5'). May be null for legacy chats that never had a model recorded.152153  - `name: string`154155    Chat name/title156157  - `organization_uuid: string`158159    Organization UUID this chat belongs to160161  - `project_id: string or null`162163    Project ID this chat belongs to164165  - `updated_at: string`166167    Last update timestamp168169    format: date-time170171  - `user: object or null`172173    The user who created the chat.174175    Null when the API key is restricted to one organization and the creator176    is no longer a member of it (for example, after they were removed from177    it).178179    A key for the whole parent organization returns the creator's `id`180    and current `email_address` for every chat; on the list endpoint, pass181    `organization_ids[]` to keep the results to one organization. For the182    email address the creator had when the chat was created, query183    `GET /v1/compliance/activities` with `activity_types[]=claude_chat_created`184    and a `created_at` window around the chat's `created_at`, find the event185    whose `claude_chat_id` matches this chat's `id`, and read186    `actor.email_address`. These events exist only for chats created after187    compliance logging was enabled for the organization.188189    - `id: string`190191      User identifier192193    - `email_address: string`194195      User's email address196197  - `organization_id: string`198199    **Deprecated**200201    Organization ID this chat belongs to202203- `first_id: string or null`204205  Opaque pagination cursor for the first chat in the current result set. Pass as `before_id` on the next request to page backwards. Backward pagination is only supported for per-user queries (`user_ids[]` set); org-wide queries do not accept `before_id`. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.206207- `has_more: boolean`208209  Whether more records exist beyond the current result set210211- `last_id: string or null`212213  Opaque pagination cursor for the last chat in the current result set. Pass as `after_id` on the next request to page forwards. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.214215#### Example216217```bash218curl https://api.anthropic.com/v1/compliance/apps/chats \219    -H 'anthropic-version: 2023-06-01' \220    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"221```222223##### Response (200)224225```json226{227  "data": [228    {229      "id": "claude_chat_abc123",230      "name": "Product Requirements Discussion",231      "created_at": "2025-06-07T08:09:10Z",232      "updated_at": "2025-06-07T09:10:11Z",233      "organization_id": "org_abc123",234      "organization_uuid": "abcdef01-2345-6789-abcd-ef0123456789",235      "project_id": "claude_proj_xyz789",236      "model": "claude-opus-5",237      "user": {238        "id": "user_xyz456",239        "email_address": "user@example.com"240      },241      "href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789"242    }243  ],244  "has_more": false,245  "first_id": "eyJrIjogImNyZWF0ZWRfYXQiLCAidCI6ICIyMDI1LTA2LTA3VDA4OjA5OjEwKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLTIzNDUtNjc4OS1hYmNkLWVmMDEyMzQ1Njc4OSJ9",246  "last_id": "eyJrIjogImNyZWF0ZWRfYXQiLCAidCI6ICIyMDI1LTA2LTA3VDA4OjA5OjEwKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLTIzNDUtNjc4OS1hYmNkLWVmMDEyMzQ1Njc4OSJ9"247}248```249250### Delete chat251252**DELETE** `/v1/compliance/apps/chats/{claude_chat_id}`253254Permanently deletes a chat and all associated messages and255files. This is a destructive operation that cannot be undone.256257#### Path parameters258259- `claude_chat_id: string`260261  The chat ID (tagged ID, e.g., claude_chat_abc123)262263#### Headers264265- `"x-api-key": optional string`266267#### Returns268269- `type: optional "claude_chat_deleted"`270271  Constant string confirming deletion272273  default: claude_chat_deleted274275- `id: string`276277  The ID of the Claude chat that was deleted278279#### Example280281```bash282curl https://api.anthropic.com/v1/compliance/apps/chats/$CLAUDE_CHAT_ID \283    -X DELETE \284    -H 'anthropic-version: 2023-06-01' \285    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"286```287288##### Response (200)289290```json291{292  "id": "claude_chat_abc123",293  "type": "claude_chat_deleted"294}295```296297## Apps › Chats › Messages298299### Get chat messages300301**GET** `/v1/compliance/apps/chats/{claude_chat_id}/messages`302303Retrieves message history and file metadata for a specific chat.304305#### Path parameters306307- `claude_chat_id: string`308309  The chat ID (tagged ID, e.g., claude_chat_abc123)310311#### Query parameters312313- `after_id: optional string`314315  Pagination cursor for retrieving the next page of results. To paginate, pass the `last_id` value from the most recent response. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.316317- `before_id: optional string`318319  Pagination cursor for retrieving the previous page of results. To paginate, pass the `first_id` value from the most recent response. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.320321- `created_at: optional object`322323  - `gt: optional string`324325    Filter messages created after this time (RFC 3339 format)326327    format: date-time328329  - `gte: optional string`330331    Filter messages created at or after this time (RFC 3339 format)332333    format: date-time334335  - `lt: optional string`336337    Filter messages created before this time (RFC 3339 format)338339    format: date-time340341  - `lte: optional string`342343    Filter messages created at or before this time (RFC 3339 format)344345    format: date-time346347- `limit: optional number`348349  Maximum results (max: 1000). When omitted, the full result set is returned in one response.350351  maximum: 1000, minimum: 1352353- `order: optional "asc" or "desc"`354355  Sort direction for messages within the response. `asc` (the default) returns oldest-first; `desc` returns newest-first.356357  default: asc358359  - `"asc"`360361  - `"desc"`362363- `tool_result_max_chars: optional number`364365  Maximum characters returned per tool-result text item. Items longer than this are shortened and the block's `truncated` field is set. Pass -1 to disable the limit.366367  default: 10000, minimum: -1368369- `tool_use_input_max_chars: optional number`370371  Maximum characters of JSON-encoded tool input returned per tool_use block. Inputs longer than this are shortened and the block's `truncated` field is set. Pass -1 to disable the limit.372373  default: 10000, minimum: -1374375- `updated_at: optional object`376377  - `gt: optional string`378379    Filter messages updated after this time (RFC 3339 format)380381    format: date-time382383  - `gte: optional string`384385    Filter messages updated at or after this time (RFC 3339 format)386387    format: date-time388389  - `lt: optional string`390391    Filter messages updated before this time (RFC 3339 format)392393    format: date-time394395  - `lte: optional string`396397    Filter messages updated at or before this time (RFC 3339 format)398399    format: date-time400401#### Headers402403- `"x-api-key": optional string`404405#### Returns406407- `id: string`408409  Chat ID410411- `chat_messages: array of object`412413  Array of chat messages in order of created_at414415  - `id: string`416417    Unique identifier for the message e.g. 'claude_chat_msg_abcd1234'418419  - `artifacts: array of object or null`420421    Versioned documents generated or updated by the assistant in this message. Download via `GET /v1/compliance/apps/artifacts/{artifact_version_id}/content`.422423    - `id: string`424425      Artifact ID e.g. 'claude_artifact_abc123'426427    - `artifact_type: string or null`428429      MIME-like artifact type e.g. 'application/vnd.ant.code'430431    - `title: string or null`432433      Artifact title434435    - `version_id: string`436437      Artifact version ID e.g. 'claude_artifact_version_abc123'438439  - `content: array of Text or ToolUse or ToolResult`440441    Content blocks within the message442443    - `Text object`444445      Text content block.446447      - `type: "text"`448449        default: text450451      - `text: string`452453        Text content from human or assistant454455      - `thinking_redacted: boolean`456457        True when content enclosed in the assistant's internal-reasoning tags (or the tag markup itself) was removed from `text` during export. Removal never occurs with this field false. Always false on human messages, whose text is exported verbatim.458459        default: false460461      - `truncated: boolean`462463        True when `text` was shortened by the server's fixed per-string bound (1 MiB). Always false on chat text blocks.464465        default: false466467    - `ToolUse object`468469      Tool invocation requested by the assistant.470471      - `type: "tool_use"`472473        default: tool_use474475      - `id: string or null`476477        Tool-use ID, e.g. 'toolu_01AbC...'478479      - `input: string`480481        Arguments passed to the tool, as a JSON-encoded string. May be shortened — see the `truncated` field482483      - `integration_name: string or null`484485        Name of the integration that provides this tool, when applicable486487      - `mcp_server_url: string or null`488489        Base URL (scheme, host, and path only) of the MCP server that provides this tool, when applicable490491      - `name: string`492493        Name of the tool invoked494495      - `truncated: boolean`496497        True when `input` was shortened. Pass the endpoint's tool-use input max parameter as -1 to request full content, subject to any server-side maximum the endpoint enforces.498499        default: false500501    - `ToolResult object`502503      Result returned by a tool invocation.504505      - `type: "tool_result"`506507        default: tool_result508509      - `content: array of object`510511        Text content returned by the tool. Generated files are surfaced via the message's `generated_files` list; other non-text item types (including images and links) are omitted.512513        - `type: "text"`514515          default: text516517        - `text: string`518519          Text returned by the tool520521      - `integration_name: string or null`522523        Name of the integration that provides this tool, when applicable524525      - `is_error: boolean`526527        True when the tool reported an error528529      - `mcp_server_url: string or null`530531        Base URL (scheme, host, and path only) of the MCP server that provides this tool, when applicable532533      - `name: string`534535        Name of the tool that produced this result536537      - `tool_use_id: string or null`538539        ID of the tool_use block this result responds to540541      - `truncated: boolean`542543        True when one or more text items in `content` were shortened. Pass the endpoint's tool-result max parameter as -1 to request full content, subject to any server-side maximum the endpoint enforces.544545        default: false546547  - `created_at: string`548549    Message creation timestamp - For human: when they sent the message, For assistant: when it completed the last content block550551    format: date-time552553  - `files: array of object or null`554555    Binary file attachments uploaded by the user. Download via `GET /v1/compliance/apps/chats/files/{claude_file_id}/content`.556557    - `id: string`558559      File ID560561    - `created_at: string`562563      File creation timestamp564565      format: date-time566567    - `filename: string`568569      Display name of the file570571    - `md5: string or null`572573      Lowercase hex MD5 of the file's preferred downloadable variant, as recorded at upload time. Null when no stored hash is available.574575    - `mime_type: string or null`576577      MIME type of the file's preferred downloadable variant (e.g. 'application/pdf')578579    - `size_bytes: number or null`580581      Size in bytes of the file's preferred downloadable variant, if known. Null for older files uploaded before size was recorded.582583  - `generated_files: array of object or null`584585    Downloadable files the assistant created via tool use (e.g. PDF, spreadsheet, slide deck). Distinct from `files`, which are uploads attached to the message. Download via `GET /v1/compliance/apps/chats/generated-files/{claude_gen_file_id}/content`.586587    - `id: string`588589      Opaque generated-file id, e.g. 'claude_gen_file_abc123'. Treat as an opaque string; the encoding may change without notice.590591    - `filename: string`592593      Display name of the generated file594595    - `md5: string or null`596597      Lowercase hex MD5 of the generated file, when available. Null when no stored hash is available.598599    - `mime_type: string or null`600601      MIME type reported by the tool that produced the file602603    - `size_bytes: number or null`604605      Size in bytes of the generated file, when available. Null when the file has expired or size is not recorded.606607  - `role: "assistant" or "user"`608609    Message sender (user or assistant)610611    - `"assistant"`612613    - `"user"`614615- `created_at: string`616617  Creation timestamp618619  format: date-time620621- `deleted_at: string or null`622623  Deletion timestamp if deleted624625  format: date-time626627- `first_id: string or null`628629  Opaque pagination cursor for the first message in the current result set. Pass as `before_id` on the next request to page backwards. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.630631- `has_more: boolean`632633  Whether more chat messages exist beyond the current result set. Use `last_id` as `after_id` in a follow-up request to page forward.634635  default: false636637- `href: string`638639  URL to view this chat in claude.ai640641- `last_id: string or null`642643  Opaque pagination cursor for the last message in the current result set. Pass as `after_id` on the next request to page forwards. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.644645- `model: string or null`646647  Model selected for this chat (e.g. 'claude-opus-5'). May be null for legacy chats that never had a model recorded.648649- `name: string`650651  Chat name652653- `organization_uuid: string`654655  Organization UUID this chat belongs to656657- `project_id: string or null`658659  Project ID this chat belongs to660661- `updated_at: string`662663  Last update timestamp664665  format: date-time666667- `user: object or null`668669  The user who created the chat.670671  Null when the API key is restricted to one organization and the creator672  is no longer a member of it (for example, after they were removed from673  it).674675  A key for the whole parent organization returns the creator's `id`676  and current `email_address` for every chat; on the list endpoint, pass677  `organization_ids[]` to keep the results to one organization. For the678  email address the creator had when the chat was created, query679  `GET /v1/compliance/activities` with `activity_types[]=claude_chat_created`680  and a `created_at` window around the chat's `created_at`, find the event681  whose `claude_chat_id` matches this chat's `id`, and read682  `actor.email_address`. These events exist only for chats created after683  compliance logging was enabled for the organization.684685  - `id: string`686687    User identifier688689  - `email_address: string`690691    User's email address692693- `organization_id: string`694695  **Deprecated**696697  Organization ID this chat belongs to698699#### Example700701```bash702curl https://api.anthropic.com/v1/compliance/apps/chats/$CLAUDE_CHAT_ID/messages \703    -H 'anthropic-version: 2023-06-01' \704    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"705```706707##### Response (200)708709```json710{711  "id": "claude_chat_abc123",712  "name": "Product Requirements Discussion",713  "created_at": "2025-06-07T08:09:10Z",714  "updated_at": "2025-06-07T08:09:11Z",715  "organization_id": "org_abc123",716  "organization_uuid": "abcdef01-2345-6789-abcd-ef0123456789",717  "project_id": "claude_proj_xyz789",718  "model": "claude-opus-5",719  "user": {720    "id": "user_xyz456",721    "email_address": "user@example.com"722  },723  "href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",724  "chat_messages": [725    {726      "id": "claude_chat_msg_abc123",727      "role": "user",728      "created_at": "2025-06-07T08:09:10Z",729      "content": [730        {731          "type": "text",732          "text": "Can you help me draft requirements for our new dashboard feature?"733        }734      ],735      "files": [736        {737          "id": "claude_file_xyz789",738          "filename": "dashboard_mockup_v1.pdf",739          "mime_type": "application/pdf",740          "size_bytes": 12345,741          "md5": "5d41402abc4b2a76b9719d911017c592",742          "created_at": "2025-06-07T08:09:10Z"743        }744      ]745    },746    {747      "id": "claude_chat_msg_def456",748      "role": "assistant",749      "created_at": "2025-06-07T08:09:11Z",750      "content": [751        {752          "type": "text",753          "text": "I'd be happy to help you draft requirements for your dashboard feature..."754        }755      ],756      "artifacts": [757        {758          "id": "claude_artifact_abc123",759          "version_id": "claude_artifact_version_xyz789",760          "title": "Dashboard Requirements Draft",761          "artifact_type": "text/markdown"762        }763      ]764    }765  ],766  "has_more": false,767  "first_id": "eyJtc2dfdXVpZCI6ICIwZjcwYjA2Ni0uLi4ifQ==",768  "last_id": "eyJtc2dfdXVpZCI6ICJhNGUwYjE3Mi0uLi4ifQ=="769}770```771772## Apps › Chats › Files773774### Get file metadata775776**GET** `/v1/compliance/apps/chats/files/{claude_file_id}`777778Retrieves metadata for a file referenced in chat messages, without779downloading the file content. Use the sibling `/content` endpoint to780download the bytes.781782#### Path parameters783784- `claude_file_id: string`785786  The file ID (tagged ID, e.g., claude_file_abc123)787788#### Headers789790- `"x-api-key": optional string`791792#### Returns793794- `id: string`795796  File ID797798- `claude_chat_ids: array of string`799800  Chats this file is attached to. A file can be referenced by messages across multiple chats.801802- `created_at: string`803804  File creation timestamp805806  format: date-time807808- `filename: string or null`809810  Display name of the file, if set811812- `md5: string or null`813814  Lowercase hex MD5 of the file's preferred downloadable variant, as recorded at upload time. Null when no stored hash is available. The sibling `/content` endpoint also sets a `Content-MD5` header (base64 per RFC 1864) computed over the exact served bytes; when the two disagree, the header is authoritative.815816- `message_ids: array of string`817818  Chat message IDs this file is attached to. A file can be referenced by multiple messages.819820- `mime_type: string or null`821822  MIME type of the file's preferred downloadable variant (e.g. 'application/pdf'). May be null for files with no downloadable content (e.g. code-interpreter outputs).823824- `size_bytes: number or null`825826  Size in bytes of the file's preferred downloadable variant, if known827828#### Example829830```bash831curl https://api.anthropic.com/v1/compliance/apps/chats/files/$CLAUDE_FILE_ID \832    -H 'anthropic-version: 2023-06-01' \833    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"834```835836##### Response (200)837838```json839{840  "id": "claude_file_xyz789",841  "filename": "quarterly_report.pdf",842  "mime_type": "application/pdf",843  "size_bytes": 1048576,844  "md5": "5d41402abc4b2a76b9719d911017c592",845  "created_at": "2024-01-15T10:30:00Z",846  "message_ids": [847    "claude_chat_msg_abc123"848  ],849  "claude_chat_ids": [850    "claude_chat_def456"851  ]852}853```854855### Delete file856857**DELETE** `/v1/compliance/apps/chats/files/{claude_file_id}`858859Permanently deletes a specific file. This is a destructive860operation that cannot be undone.861862#### Path parameters863864- `claude_file_id: string`865866  The file ID (tagged ID, e.g., claude_file_abc123)867868#### Headers869870- `"x-api-key": optional string`871872#### Returns873874- `type: optional "claude_file_deleted"`875876  Constant string confirming deletion877878  default: claude_file_deleted879880- `id: string`881882  The ID of the file that was deleted883884#### Example885886```bash887curl https://api.anthropic.com/v1/compliance/apps/chats/files/$CLAUDE_FILE_ID \888    -X DELETE \889    -H 'anthropic-version: 2023-06-01' \890    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"891```892893##### Response (200)894895```json896{897  "id": "claude_file_xyz789",898  "type": "claude_file_deleted"899}900```901902### Download file content903904**GET** `/v1/compliance/apps/chats/files/{claude_file_id}/content`905906Downloads the binary content of a file referenced in chat messages.907908#### Path parameters909910- `claude_file_id: string`911912  The file ID (tagged ID, e.g., claude_file_abc123)913914#### Headers915916- `"x-api-key": optional string`917918#### Example919920```bash921curl https://api.anthropic.com/v1/compliance/apps/chats/files/$CLAUDE_FILE_ID/content \922    -H 'anthropic-version: 2023-06-01' \923    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"924```925926## Apps › Chats › Generated Files927928### Get Claude-generated file metadata929930**GET** `/v1/compliance/apps/chats/generated-files/{claude_gen_file_id}`931932Returns metadata for a file the assistant created via tool use.933934Use the sibling `/content` endpoint to download the bytes.935936#### Path parameters937938- `claude_gen_file_id: string`939940  The generated-file id (e.g., 'claude_gen_file_abc123') as returned in `chat_messages[].generated_files[].id` from GET /apps/chats/{claude_chat_id}/messages.941942#### Headers943944- `"x-api-key": optional string`945946#### Returns947948- `id: string`949950  Opaque generated-file id, e.g. 'claude_gen_file_abc123'.951952- `claude_chat_id: string`953954  The chat this generated file belongs to955956- `created_at: string or null`957958  File creation timestamp, when available959960  format: date-time961962- `filename: string`963964  Display name of the generated file965966- `md5: string or null`967968  Lowercase hex MD5 of the stored file. Null when no stored hash is available. The sibling `/content` endpoint also sets a `Content-MD5` header (base64 per RFC 1864) computed over the exact served bytes.969970- `mime_type: string or null`971972  MIME type of the stored file, when available973974- `size_bytes: number or null`975976  Size in bytes of the stored file, when available977978#### Example979980```bash981curl https://api.anthropic.com/v1/compliance/apps/chats/generated-files/$CLAUDE_GEN_FILE_ID \982    -H 'anthropic-version: 2023-06-01' \983    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"984```985986##### Response (200)987988```json989{990  "id": "id",991  "claude_chat_id": "claude_chat_id",992  "created_at": "2019-12-27T18:11:19.117Z",993  "filename": "filename",994  "md5": "md5",995  "mime_type": "mime_type",996  "size_bytes": 0997}998```9991000### Download a Claude-generated file10011002**GET** `/v1/compliance/apps/chats/generated-files/{claude_gen_file_id}/content`10031004Downloads the binary content of a file the assistant created via tool use.10051006#### Path parameters10071008- `claude_gen_file_id: string`10091010  The generated-file id (e.g., 'claude_gen_file_abc123') as returned in `chat_messages[].generated_files[].id` from GET /apps/chats/{claude_chat_id}/messages.10111012#### Headers10131014- `"x-api-key": optional string`10151016#### Example10171018```bash1019curl https://api.anthropic.com/v1/compliance/apps/chats/generated-files/$CLAUDE_GEN_FILE_ID/content \1020    -H 'anthropic-version: 2023-06-01' \1021    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"1022```10231024## Apps › Projects10251026### List projects10271028**GET** `/v1/compliance/apps/projects`10291030Lists project metadata with filtering capabilities. Results1031are sorted chronologically (time ascending) by created_at.10321033#### Query parameters10341035- `created_at: optional object`10361037  - `gt: optional string`10381039    Filter projects created after this time (RFC 3339 format)10401041    format: date-time10421043  - `gte: optional string`10441045    Filter projects created at or after this time (RFC 3339 format)10461047    format: date-time10481049  - `lt: optional string`10501051    Filter projects created before this time (RFC 3339 format)10521053    format: date-time10541055  - `lte: optional string`10561057    Filter projects created at or before this time (RFC 3339 format)10581059    format: date-time10601061- `limit: optional number`10621063  Maximum results (default: 20, max: 100)10641065  default: 20, maximum: 100, minimum: 110661067- `organization_ids: optional array of string`10681069  Filter by organization IDs (accepts `org_...` or organization UUID). Enumerate IDs via `GET /v1/compliance/organizations`.10701071- `page: optional string`10721073  Opaque pagination token from a previous response's `next_page` field. Pass this to retrieve the next page of results. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.10741075- `updated_at: optional object`10761077  - `gt: optional string`10781079    Filter projects updated after this time (RFC 3339 format)10801081    format: date-time10821083  - `gte: optional string`10841085    Filter projects updated at or after this time (RFC 3339 format)10861087    format: date-time10881089  - `lt: optional string`10901091    Filter projects updated before this time (RFC 3339 format)10921093    format: date-time10941095  - `lte: optional string`10961097    Filter projects updated at or before this time (RFC 3339 format)10981099    format: date-time11001101- `user_ids: optional array of string`11021103  Filter by user IDs. Enumerate IDs via `GET /v1/compliance/organizations/{org_uuid}/users`.11041105#### Headers11061107- `"x-api-key": optional string`11081109#### Returns11101111- `data: array of object`11121113  List of projects sorted by creation date ascending11141115  - `id: string`11161117    Project identifier (tagged ID)11181119  - `created_at: string`11201121    Project creation timestamp11221123    format: date-time11241125  - `deleted_at: string or null`11261127    Timestamp when the project was deleted by an end user, or null otherwise11281129    format: date-time11301131  - `is_private: boolean`11321133    If false, the project is visible to all organization members; if true the project is accessible only to the creator and specified collaborators11341135  - `name: string`11361137    Project name11381139  - `organization_uuid: string`11401141    Organization UUID this project belongs to11421143  - `updated_at: string`11441145    Project last update timestamp11461147    format: date-time11481149  - `user: object or null`11501151    The user who created a project or project document.11521153    Fields that reference this type are null when the creator's account has1154    been deleted or the creator is no longer a member of an organization the1155    key may read.11561157    - `id: string`11581159      User identifier (tagged ID)11601161    - `email_address: string`11621163      User's email address11641165  - `organization_id: string`11661167    **Deprecated**11681169    Organization identifier (tagged ID)11701171- `has_more: boolean`11721173  Whether more records exist beyond the current result set11741175- `next_page: string or null`11761177  Token to retrieve the next page. Use this as the 'page' parameter in your next request11781179#### Example11801181```bash1182curl https://api.anthropic.com/v1/compliance/apps/projects \1183    -H 'anthropic-version: 2023-06-01' \1184    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"1185```11861187##### Response (200)11881189```json1190{1191  "data": [1192    {1193      "id": "claude_proj_abc123",1194      "name": "Q4 Product Planning",1195      "created_at": "2025-06-01T10:00:00Z",1196      "updated_at": "2025-06-15T14:30:00Z",1197      "is_private": true,1198      "organization_id": "org_abc123",1199      "organization_uuid": "abc12345-6789-0abc-def0-123456789abc",1200      "user": {1201        "id": "user_xyz456",1202        "email_address": "user@example.com"1203      }1204    }1205  ],1206  "has_more": true,1207  "next_page": "page_eyJjcmVhdGVkX2F0IjoiMjAyNS0wNi0wMVQxMDowMDowMFoiLCJ1dWlkIjoiYWJjMTIzIn0="1208}1209```12101211### Get project details12121213**GET** `/v1/compliance/apps/projects/{project_id}`12141215Get detailed information for a specific project.12161217#### Path parameters12181219- `project_id: string`12201221  The project ID (tagged ID, e.g., claude_proj_abc123)12221223#### Headers12241225- `"x-api-key": optional string`12261227#### Returns12281229- `id: string`12301231  Project identifier (tagged ID)12321233- `attachments_count: number`12341235  Number of attachments contained within this project12361237- `chats_count: number`12381239  Number of chats contained within this project12401241- `created_at: string`12421243  Project creation timestamp12441245  format: date-time12461247- `deleted_at: string or null`12481249  Timestamp when the project was deleted by an end user, or null otherwise12501251  format: date-time12521253- `description: string`12541255  Project description12561257- `instructions: string`12581259  Project's custom instructions / prompt12601261- `is_private: boolean`12621263  If false, the project is visible to all organization members; if true the project is accessible only to the creator and specified collaborators12641265- `name: string`12661267  Project name12681269- `organization_uuid: string`12701271  Organization UUID this project belongs to12721273- `updated_at: string`12741275  Project last update timestamp12761277  format: date-time12781279- `user: object or null`12801281  The user who created a project or project document.12821283  Fields that reference this type are null when the creator's account has1284  been deleted or the creator is no longer a member of an organization the1285  key may read.12861287  - `id: string`12881289    User identifier (tagged ID)12901291  - `email_address: string`12921293    User's email address12941295- `organization_id: string`12961297  **Deprecated**12981299  Organization identifier (tagged ID)13001301#### Example13021303```bash1304curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID \1305    -H 'anthropic-version: 2023-06-01' \1306    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"1307```13081309##### Response (200)13101311```json1312{1313  "id": "claude_proj_01Nm7PqRsTuVwXyZaBcDeFgH",1314  "attachments_count": 3,1315  "chats_count": 14,1316  "created_at": "2025-03-12T18:22:41.123456Z",1317  "deleted_at": "2019-12-27T18:11:19.117Z",1318  "description": "Planning and research for the Q3 launch",1319  "instructions": "Focus on concise, actionable answers.",1320  "is_private": true,1321  "name": "Q3 Product Launch",1322  "organization_id": "org_015eofRkKpogX7uDKUyvBTph",1323  "organization_uuid": "a1b2c3d4-e5f6-4789-a012-3456789abcde",1324  "updated_at": "2025-03-14T09:05:17.456789Z",1325  "user": {1326    "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",1327    "email_address": "jane.doe@example.com"1328  }1329}1330```13311332### Delete project13331334**DELETE** `/v1/compliance/apps/projects/{project_id}`13351336Delete a project for compliance purposes.13371338Hard-deletes the project and all its associated data including:13391340- All project documents and files1341- All role assignments1342- Knowledge base (if RAG is enabled)1343- Sync sources13441345Project must have no attached chats - returns 409 if chats exist.13461347#### Path parameters13481349- `project_id: string`13501351  The project ID (tagged ID, e.g., claude_proj_abc123)13521353#### Headers13541355- `"x-api-key": optional string`13561357#### Returns13581359- `type: optional "claude_project_deleted"`13601361  Constant string confirming deletion.13621363  default: claude_project_deleted13641365- `id: string`13661367  The ID of the Claude project that was deleted13681369#### Example13701371```bash1372curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID \1373    -X DELETE \1374    -H 'anthropic-version: 2023-06-01' \1375    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"1376```13771378##### Response (200)13791380```json1381{1382  "id": "id",1383  "type": "claude_project_deleted"1384}1385```13861387## Apps › Projects › Attachments13881389### List project attachments13901391**GET** `/v1/compliance/apps/projects/{project_id}/attachments`13921393List files and documents attached to a project.13941395List files and project documents attached to the project referenced by project_id.1396This includes the IDs of attached files, and attached project documents.13971398The raw binary content of attached files can be downloaded using the1399GET /v1/compliance/apps/chats/files/{claude_file_id}/content endpoint.14001401The text content of attached project documents can be fetched using the1402GET /v1/compliance/apps/projects/documents/{claude_proj_doc_id} endpoint.14031404#### Path parameters14051406- `project_id: string`14071408  The project ID (tagged ID, e.g., claude_proj_abc123)14091410#### Query parameters14111412- `limit: optional number`14131414  Maximum results (default: 20, max: 100)14151416  default: 20, maximum: 100, minimum: 114171418- `page: optional string`14191420  Opaque pagination token from a previous response's `next_page` field. Pass this to retrieve the next page of results. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.14211422#### Headers14231424- `"x-api-key": optional string`14251426#### Returns14271428- `data: array of ComplianceProjectFileReference or ComplianceProjectDocReference`14291430  List of attachments sorted chronologically by created_at, tie break by id14311432  - `ComplianceProjectFileReference object`14331434    File attachment reference for compliance responses.14351436    - `type: "project_file"`14371438      Discriminator marking this as a binary file14391440      default: project_file14411442    - `id: string`14431444      File identifier (e.g., 'claude_file_abcd')14451446    - `created_at: string`14471448      Creation timestamp (RFC 3339 format)14491450      format: date-time14511452    - `filename: string`14531454      Display name of the file (e.g., 'document.pdf')14551456    - `md5: string or null`14571458      Lowercase hex MD5 of the file's preferred downloadable variant, when recorded. Null otherwise. Use the per-file `/metadata` endpoint for the authoritative value.14591460    - `mime_type: string`14611462      MIME type of the file's preferred downloadable variant when one is recorded, else 'application/octet-stream'. Use the per-file `/metadata` endpoint for the authoritative value.14631464    - `size_bytes: number or null`14651466      Size in bytes of the file's preferred downloadable variant, when recorded. Null otherwise. Use the per-file `/metadata` endpoint for the authoritative value.14671468  - `ComplianceProjectDocReference object`14691470    Project document attachment reference for compliance responses.14711472    - `type: "project_doc"`14731474      Discriminator marking this as a plain text document14751476      default: project_doc14771478    - `id: string`14791480      Project document identifier (e.g., 'claude_proj_doc_abcd')14811482    - `created_at: string`14831484      Creation timestamp (RFC 3339 format)14851486      format: date-time14871488    - `filename: string`14891490      Display name of the document (e.g., 'document.txt')14911492    - `mime_type: "text/plain"`14931494      MIME type of the project document, always set to plain text14951496      default: text/plain14971498    - `updated_at: string or null`14991500      Last-modified timestamp of the document. Reserved for future use — currently always null.15011502      format: date-time15031504- `has_more: boolean`15051506  Whether more records exist beyond the current result set15071508- `next_page: string or null`15091510  To get the next page, use the 'next_page' from the current response as the 'page' in your next request15111512#### Example15131514```bash1515curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID/attachments \1516    -H 'anthropic-version: 2023-06-01' \1517    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"1518```15191520##### Response (200)15211522```json1523{1524  "data": [1525    {1526      "id": "id",1527      "created_at": "2019-12-27T18:11:19.117Z",1528      "filename": "filename",1529      "md5": "md5",1530      "mime_type": "mime_type",1531      "size_bytes": 0,1532      "type": "project_file"1533    }1534  ],1535  "has_more": true,1536  "next_page": "next_page"1537}1538```15391540## Apps › Projects › Collaborators15411542### List project collaborators15431544**GET** `/v1/compliance/apps/projects/{project_id}/collaborators`15451546List the users, groups, and organization-wide grants on a project.15471548Each entry represents one active role assignment on the project. Principals1549are returned as a discriminated union on `type` — an individual user, an1550RBAC group, the whole organization, or all holders of an organization-level1551role.15521553#### Path parameters15541555- `project_id: string`15561557  The project ID (tagged ID, e.g., claude_proj_abc123)15581559#### Query parameters15601561- `limit: optional number`15621563  Maximum results (default: 20, max: 100)15641565  default: 20, maximum: 100, minimum: 115661567- `page: optional string`15681569  Opaque pagination token from a previous response's `next_page` field. Pass this to retrieve the next page of results. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.15701571#### Headers15721573- `"x-api-key": optional string`15741575#### Returns15761577- `data: array of ComplianceProjectUserCollaborator or ComplianceProjectGroupCollaborator or ComplianceProjectOrganizationCollaborator or ComplianceProjectOrganizationRoleCollaborator`15781579  List of collaborators sorted chronologically by granted_at, tie break by the underlying role-assignment UUID15801581  - `ComplianceProjectUserCollaborator object`15821583    An individual user granted a role on a project.15841585    - `type: "user"`15861587      Discriminator marking this as an individual user collaborator15881589      default: user15901591    - `granted_at: string`15921593      When this collaborator was granted access (RFC 3339 format)15941595      format: date-time15961597    - `role: "admin" or "editor" or "owner" or "viewer"`15981599      Role granted on the project16001601      - `"admin"`16021603      - `"editor"`16041605      - `"owner"`16061607      - `"viewer"`16081609    - `user_id: string or null`16101611      Identifier of the user granted access (tagged ID), or null if their account has since been deleted16121613  - `ComplianceProjectGroupCollaborator object`16141615    An RBAC group granted a role on a project.16161617    - `type: "group"`16181619      Discriminator marking this as a group collaborator16201621      default: group16221623    - `granted_at: string`16241625      When this collaborator was granted access (RFC 3339 format)16261627      format: date-time16281629    - `group_id: string`16301631      Identifier of the group granted access (tagged ID)16321633    - `role: "admin" or "editor" or "owner" or "viewer"`16341635      Role granted on the project16361637      - `"admin"`16381639      - `"editor"`16401641      - `"owner"`16421643      - `"viewer"`16441645  - `ComplianceProjectOrganizationCollaborator object`16461647    An entire organization granted a role on a project.16481649    - `type: "organization"`16501651      Discriminator marking this as an organization-wide grant16521653      default: organization16541655    - `granted_at: string`16561657      When this collaborator was granted access (RFC 3339 format)16581659      format: date-time16601661    - `organization_uuid: string`16621663      UUID of the organization granted access16641665    - `role: "admin" or "editor" or "owner" or "viewer"`16661667      Role granted on the project16681669      - `"admin"`16701671      - `"editor"`16721673      - `"owner"`16741675      - `"viewer"`16761677  - `ComplianceProjectOrganizationRoleCollaborator object`16781679    All holders of an organization-level role granted a role on a project.16801681    - `type: "organization_role"`16821683      Discriminator marking this as a grant to all organization members holding a specific org-level role16841685      default: organization_role16861687    - `granted_at: string`16881689      When this collaborator was granted access (RFC 3339 format)16901691      format: date-time16921693    - `organization_role: string`16941695      The organization-level role whose holders are granted access16961697    - `role: "admin" or "editor" or "owner" or "viewer"`16981699      Role granted on the project17001701      - `"admin"`17021703      - `"editor"`17041705      - `"owner"`17061707      - `"viewer"`17081709- `has_more: boolean`17101711  Whether more records exist beyond the current result set17121713- `next_page: string or null`17141715  To get the next page, use the 'next_page' from the current response as the 'page' in your next request17161717#### Example17181719```bash1720curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID/collaborators \1721    -H 'anthropic-version: 2023-06-01' \1722    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"1723```17241725##### Response (200)17261727```json1728{1729  "data": [1730    {1731      "granted_at": "2019-12-27T18:11:19.117Z",1732      "role": "admin",1733      "type": "user",1734      "user_id": "user_id"1735    }1736  ],1737  "has_more": true,1738  "next_page": "next_page"1739}1740```17411742## Apps › Projects › Documents17431744### Get project document content17451746**GET** `/v1/compliance/apps/projects/documents/{document_id}`17471748Get detailed information for a specific project document.17491750#### Path parameters17511752- `document_id: string`17531754  The document ID (tagged ID, e.g., claude_proj_doc_abc123)17551756#### Headers17571758- `"x-api-key": optional string`17591760#### Returns17611762- `id: string`17631764  Project document identifier (tagged ID)17651766- `content: string`17671768  Document text content17691770- `created_at: string`17711772  Document creation timestamp17731774  format: date-time17751776- `filename: string`17771778  Document filename17791780- `user: object or null`17811782  The user who created a project or project document.17831784  Fields that reference this type are null when the creator's account has1785  been deleted or the creator is no longer a member of an organization the1786  key may read.17871788  - `id: string`17891790    User identifier (tagged ID)17911792  - `email_address: string`17931794    User's email address17951796#### Example17971798```bash1799curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID \1800    -H 'anthropic-version: 2023-06-01' \1801    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"1802```18031804##### Response (200)18051806```json1807{1808  "id": "claude_proj_doc_01Qr8StUvWxYzAbCdEfGhJjK",1809  "content": "# Design notes\n\n- Item one\n- Item two\n",1810  "created_at": "2025-03-12T18:22:41.123456Z",1811  "filename": "design-notes.txt",1812  "user": {1813    "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",1814    "email_address": "jane.doe@example.com"1815  }1816}1817```18181819### Get project document metadata18201821**GET** `/v1/compliance/apps/projects/documents/{document_id}/metadata`18221823Returns metadata for a project document, without the content body.18241825Use the sibling `GET /v1/compliance/apps/projects/documents/{document_id}`1826endpoint to fetch the document text. The `md5` and `size_bytes`1827fields here are computed over the UTF-8 encoding of that text, so a DLP1828consumer can dedupe or match hashes without downloading every document.18291830#### Path parameters18311832- `document_id: string`18331834  The document ID (tagged ID, e.g., claude_proj_doc_abc123)18351836#### Headers18371838- `"x-api-key": optional string`18391840#### Returns18411842- `id: string`18431844  Project document identifier (tagged ID)18451846- `claude_project_id: string`18471848  The project this document belongs to18491850- `created_at: string`18511852  Document creation timestamp18531854  format: date-time18551856- `filename: string`18571858  Document filename18591860- `md5: string`18611862  Lowercase hex MD5 of the document content (UTF-8 encoded). Matches the `content` field returned by the sibling content endpoint.18631864- `mime_type: "text/plain"`18651866  MIME type of the document content, always plain text18671868  default: text/plain18691870- `size_bytes: number`18711872  Size in bytes of the document content (UTF-8 encoded)18731874- `user: object or null`18751876  The user who created a project or project document.18771878  Fields that reference this type are null when the creator's account has1879  been deleted or the creator is no longer a member of an organization the1880  key may read.18811882  - `id: string`18831884    User identifier (tagged ID)18851886  - `email_address: string`18871888    User's email address18891890#### Example18911892```bash1893curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID/metadata \1894    -H 'anthropic-version: 2023-06-01' \1895    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"1896```18971898##### Response (200)18991900```json1901{1902  "id": "id",1903  "claude_project_id": "claude_project_id",1904  "created_at": "2019-12-27T18:11:19.117Z",1905  "filename": "filename",1906  "md5": "md5",1907  "mime_type": "text/plain",1908  "size_bytes": 0,1909  "user": {1910    "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",1911    "email_address": "jane.doe@example.com"1912  }1913}1914```19151916### Delete project document19171918**DELETE** `/v1/compliance/apps/projects/documents/{document_id}`19191920Delete a project document for compliance purposes.19211922Hard-deletes the project document permanently.19231924#### Path parameters19251926- `document_id: string`19271928  The document ID (tagged ID, e.g., claude_proj_doc_abc123)19291930#### Headers19311932- `"x-api-key": optional string`19331934#### Returns19351936- `type: "claude_project_document_deleted"`19371938  Constant string confirming deletion.19391940  default: claude_project_document_deleted19411942- `id: string`19431944  The ID of the project document that was deleted19451946#### Example19471948```bash1949curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID \1950    -X DELETE \1951    -H 'anthropic-version: 2023-06-01' \1952    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"1953```19541955##### Response (200)19561957```json1958{1959  "id": "id",1960  "type": "claude_project_document_deleted"1961}1962```19631964## Apps › Artifacts19651966### Get artifact metadata19671968**GET** `/v1/compliance/apps/artifacts/{artifact_version_id}`19691970Returns metadata for an artifact version, without the content body.19711972Use the sibling `/content` endpoint to fetch the artifact text. The1973`md5` and `size_bytes` fields here are computed over the UTF-81974encoding of that text, so a DLP consumer can dedupe or match hashes1975without downloading every artifact.19761977#### Path parameters19781979- `artifact_version_id: string`19801981  The artifact version ID (tagged ID, e.g., claude_artifact_version_abc123)19821983#### Headers19841985- `"x-api-key": optional string`19861987#### Returns19881989- `id: string`19901991  Artifact ID e.g. 'claude_artifact_abc123'19921993- `artifact_type: string or null`19941995  MIME-like artifact type e.g. 'application/vnd.ant.code'19961997- `claude_chat_id: string`19981999  The chat this artifact belongs to20002001- `created_at: string`20022003  Artifact version creation timestamp20042005  format: date-time20062007- `md5: string`20082009  Lowercase hex MD5 of the artifact content (UTF-8 encoded). Matches the `content` field returned by the sibling `/content` endpoint.20102011- `size_bytes: number`20122013  Size in bytes of the artifact content (UTF-8 encoded)20142015- `title: string or null`20162017  Artifact title20182019- `version_id: string`20202021  Artifact version ID e.g. 'claude_artifact_version_abc123'20222023#### Example20242025```bash2026curl https://api.anthropic.com/v1/compliance/apps/artifacts/$ARTIFACT_VERSION_ID \2027    -H 'anthropic-version: 2023-06-01' \2028    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"2029```20302031##### Response (200)20322033```json2034{2035  "id": "id",2036  "artifact_type": "artifact_type",2037  "claude_chat_id": "claude_chat_id",2038  "created_at": "2019-12-27T18:11:19.117Z",2039  "md5": "md5",2040  "size_bytes": 0,2041  "title": "title",2042  "version_id": "version_id"2043}2044```20452046### Download artifact content20472048**GET** `/v1/compliance/apps/artifacts/{artifact_version_id}/content`20492050Download the content of an artifact version for compliance purposes.20512052Returns the full text content of the artifact version.20532054#### Path parameters20552056- `artifact_version_id: string`20572058  The artifact version ID (tagged ID, e.g., claude_artifact_version_abc123)20592060#### Headers20612062- `"x-api-key": optional string`20632064#### Example20652066```bash2067curl https://api.anthropic.com/v1/compliance/apps/artifacts/$ARTIFACT_VERSION_ID/content \2068    -H 'anthropic-version: 2023-06-01' \2069    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"2070```20712072## Apps › Sessions › Local20732074### List local sessions20752076**GET** `/v1/compliance/apps/sessions/local`20772078List local sessions across the organizations the key may read.20792080Results are ordered by `created_at` descending. Pagination is2081forward-only via `next_page`; there is no reverse cursor.20822083#### Query parameters20842085- `created_at: optional object`20862087  - `gte: optional string`20882089    Only return sessions whose first inference call is at or after this time (RFC 3339; a UTC offset is required).20902091    format: date-time20922093  - `lt: optional string`20942095    Only return sessions whose first inference call is strictly before this time (RFC 3339; a UTC offset is required).20962097    format: date-time20982099- `limit: optional number`21002101  Maximum results (default: 100, max: 500)21022103  default: 100, maximum: 500, minimum: 121042105- `page: optional string`21062107  Opaque pagination token from a previous response's `next_page` field. Pass this to retrieve the next page of results. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.21082109- `updated_at: optional object`21102111  - `gte: optional string`21122113    Only return sessions whose last inference call is at or after this time (RFC 3339; a UTC offset is required). Combines with `created_at.gte` / `created_at.lt`; the ordering and pagination are unchanged. Use it to poll for sessions that have been active since a previous pass — a session that becomes active later can only enter the result, never leave it.21142115    format: date-time21162117#### Headers21182119- `"x-api-key": optional string`21202121#### Returns21222123- `data: array of object`21242125  Page of local sessions, ordered by `created_at` descending; ties are broken by a fixed server-side order. `updated_at` never participates in the ordering; the `updated_at.gte` query parameter filters on it without changing the order or the pagination cursor.21262127  - `type: "compliance_local_session"`21282129    default: compliance_local_session21302131  - `id: string`21322133    Local session identifier, prefixed `clls_`. Unique within the parent organization. Treat as an opaque string; the format may change without notice.21342135  - `created_at: string`21362137    Timestamp of the session's first retained inference call (RFC 3339, UTC). When a session's activity spans the child organization's retention boundary, calls older than the boundary are no longer reflected, so this value is the timestamp of the earliest retained call: always strictly after the boundary, never the boundary itself.21382139    format: date-time21402141  - `organization_uuid: string`21422143    UUID of the child organization the session belongs to21442145  - `product_surface: string or null`21462147    The product the session ran in: `cowork` (Cowork in Claude Desktop on the user's machine), `claude_code` (Claude Code), `claude_science` (Claude Science), or one of `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word`, and `office_agents/outlook` (Claude for Microsoft 365, by app; `office_agents` alone when the app is not identified). New values appear as coverage expands; treat unrecognized values as opaque. `null` when the surface was not recorded.21482149  - `truncated: boolean`21502151    True when the session has more inference calls than the service can return for one session (100,000). The messages endpoint then returns only the session's earliest calls, up to that many, and ends before the session does; `updated_at` is a lower bound on the latest call and can differ between the list and retrieve endpoints. False for every session within that bound.21522153    default: false21542155  - `updated_at: string`21562157    Timestamp of the session's last retained inference call (RFC 3339, UTC). Always at or after `created_at`. When a session's activity spans the child organization's retention boundary, calls older than the boundary are no longer reflected — but because retention removes only the oldest calls, this value (unlike `created_at`) is unaffected until the entire session has aged out. On the list endpoint this value is a lower bound: for a session still active at a page or `created_at.lt` window boundary it can momentarily lag the session's true last activity. Retrieving the session, or its messages, always reflects the exact latest retained call.21582159    format: date-time21602161  - `user: object`21622163    The authenticated user at the time of the session. Always set; `user.id` is always populated. `user.email_address` is null when the user's account has been deleted or the user is no longer a member of an organization the key may read.21642165    - `id: string`21662167      User identifier (tagged ID, prefixed `user_`). Always set, so attribution survives after the user's account is deleted or the user leaves the organizations the key may read.21682169    - `email_address: string or null`21702171      User's email address. Null when the user's account has been deleted or the user is no longer a member of an organization the key may read. The messages endpoint does not resolve email addresses; this field is always null there.21722173  - `workspace_id: string or null`21742175    Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.21762177- `next_page: string or null`21782179  Opaque pagination cursor (prefixed `page_`) for the next page. Null when there is no further page. Treat as an opaque string; the format may change without notice.21802181#### Example21822183```bash2184curl https://api.anthropic.com/v1/compliance/apps/sessions/local \2185    -H 'anthropic-version: 2023-06-01' \2186    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"2187```21882189##### Response (200)21902191```json2192{2193  "data": [2194    {2195      "type": "compliance_local_session",2196      "id": "clls_eyJ2IjoxLCJvIjoiOWEx…",2197      "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",2198      "workspace_id": "wrkspc_01SvYKoWVRVHoEbwESNvzYdR",2199      "user": {2200        "id": "user_01GpKpLmNoPqRsTuVwXyZaBc",2201        "email_address": "engineer@example.com"2202      },2203      "product_surface": "cowork",2204      "created_at": "2026-07-09T14:02:11Z",2205      "updated_at": "2026-07-09T15:47:33Z"2206    }2207  ]2208}2209```22102211### Retrieve a local session22122213**GET** `/v1/compliance/apps/sessions/local/{local_session_id}`22142215Retrieve one local session.22162217The response is the same session object the list endpoint returns,2218with `user.email_address` resolved the same way. Retention is2219enforced when the response is served: a session whose every2220inference call has aged out returns 404.22212222#### Path parameters22232224- `local_session_id: string`22252226#### Headers22272228- `"x-api-key": optional string`22292230#### Returns22312232- `type: "compliance_local_session"`22332234  default: compliance_local_session22352236- `id: string`22372238  Local session identifier, prefixed `clls_`. Unique within the parent organization. Treat as an opaque string; the format may change without notice.22392240- `created_at: string`22412242  Timestamp of the session's first retained inference call (RFC 3339, UTC). When a session's activity spans the child organization's retention boundary, calls older than the boundary are no longer reflected, so this value is the timestamp of the earliest retained call: always strictly after the boundary, never the boundary itself.22432244  format: date-time22452246- `organization_uuid: string`22472248  UUID of the child organization the session belongs to22492250- `product_surface: string or null`22512252  The product the session ran in: `cowork` (Cowork in Claude Desktop on the user's machine), `claude_code` (Claude Code), `claude_science` (Claude Science), or one of `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word`, and `office_agents/outlook` (Claude for Microsoft 365, by app; `office_agents` alone when the app is not identified). New values appear as coverage expands; treat unrecognized values as opaque. `null` when the surface was not recorded.22532254- `truncated: boolean`22552256  True when the session has more inference calls than the service can return for one session (100,000). The messages endpoint then returns only the session's earliest calls, up to that many, and ends before the session does; `updated_at` is a lower bound on the latest call and can differ between the list and retrieve endpoints. False for every session within that bound.22572258  default: false22592260- `updated_at: string`22612262  Timestamp of the session's last retained inference call (RFC 3339, UTC). Always at or after `created_at`. When a session's activity spans the child organization's retention boundary, calls older than the boundary are no longer reflected — but because retention removes only the oldest calls, this value (unlike `created_at`) is unaffected until the entire session has aged out. On the list endpoint this value is a lower bound: for a session still active at a page or `created_at.lt` window boundary it can momentarily lag the session's true last activity. Retrieving the session, or its messages, always reflects the exact latest retained call.22632264  format: date-time22652266- `user: object`22672268  The authenticated user at the time of the session. Always set; `user.id` is always populated. `user.email_address` is null when the user's account has been deleted or the user is no longer a member of an organization the key may read.22692270  - `id: string`22712272    User identifier (tagged ID, prefixed `user_`). Always set, so attribution survives after the user's account is deleted or the user leaves the organizations the key may read.22732274  - `email_address: string or null`22752276    User's email address. Null when the user's account has been deleted or the user is no longer a member of an organization the key may read. The messages endpoint does not resolve email addresses; this field is always null there.22772278- `workspace_id: string or null`22792280  Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.22812282#### Example22832284```bash2285curl https://api.anthropic.com/v1/compliance/apps/sessions/local/$LOCAL_SESSION_ID \2286    -H 'anthropic-version: 2023-06-01' \2287    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"2288```22892290##### Response (200)22912292```json2293{2294  "type": "compliance_local_session",2295  "id": "clls_eyJ2IjoxLCJvIjoiOWEx…",2296  "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",2297  "workspace_id": "wrkspc_01SvYKoWVRVHoEbwESNvzYdR",2298  "user": {2299    "id": "user_01GpKpLmNoPqRsTuVwXyZaBc",2300    "email_address": "engineer@example.com"2301  },2302  "product_surface": "cowork",2303  "created_at": "2026-07-09T14:02:11Z",2304  "updated_at": "2026-07-09T15:47:33Z"2305}2306```23072308## Apps › Sessions › Local › Messages23092310### Retrieve local session messages23112312**GET** `/v1/compliance/apps/sessions/local/{local_session_id}/messages`23132314Read one local session's transcript, oldest-first by default.23152316Retention is enforced read-side: turns at or before the child2317organization's retention boundary are never returned; a session2318that straddles the boundary carries one leading2319`content_unavailable` placeholder (`reason: "retention_elapsed"`)2320in their place. The boundary is pinned on the walk's first page and2321honored for 24 hours: a cursor older than that is rejected with an2322explicit 400; restart the walk to read under the current boundary.23232324#### Path parameters23252326- `local_session_id: string`23272328#### Query parameters23292330- `limit: optional number`23312332  Maximum results (default: 100, max: 1000)23332334  default: 100, maximum: 1000, minimum: 123352336- `order: optional "asc" or "desc"`23372338  Sort direction. `asc` (oldest-first, default) or `desc`.23392340  default: asc23412342  - `"asc"`23432344  - `"desc"`23452346- `page: optional string`23472348  Opaque pagination token from a previous response's `next_page` field. Pass this to retrieve the next page of results. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.23492350- `tool_result_max_bytes: optional number`23512352  Truncate each text item inside a tool result to at most this many bytes (cut on a code-point boundary). Pass `-1` to request the server maximum (approximately 1 MiB); larger values are clamped to it. `0` is not a valid value.23532354  default: 10000, maximum: 2147483647, minimum: -123552356- `tool_use_input_max_bytes: optional number`23572358  Truncate each tool-use input to at most this many bytes (cut on a code-point boundary so the result is valid UTF-8). Pass `-1` to request the server maximum (approximately 1 MiB); larger values are clamped to it. `0` is not a valid value.23592360  default: 10000, maximum: 2147483647, minimum: -123612362#### Headers23632364- `"x-api-key": optional string`23652366#### Returns23672368- `data: array of object`23692370  Transcript turns for this page, in call order: oldest call first by default, newest call first with `order=desc`. The messages of one call carry the call's timestamp and follow each other in transcript order; a page boundary can fall between them.23712372  - `type: "compliance_local_session_message"`23732374    default: compliance_local_session_message23752376  - `id: string`23772378    Message identifier, prefixed `clsm_`. Stable for as long as the message's turn is retained: identifiers of retained turns do not change as older turns age out of the organization's retention period. The `retention_elapsed` placeholder's identifier is distinct from every retained turn's and changes only when further turns age out.23792380  - `content: array of Text or ToolUse or ToolResult`23812382    Content blocks within the message, discriminated on `type` (`text` / `tool_use` / `tool_result`: the same discriminator values as the claude.ai chat-messages endpoint; the tool variants omit `integration_name` and `mcp_server_url`, and `text` carries `truncated`). Extended-thinking content is never included. The request's `system` field is never included; a presence-only marker message is emitted when it was set. The request's `tools[]` definitions are never included as transcript messages. Project-level instructions (such as CLAUDE.md files) appear in the message stream as a user-role context block and are included. Empty when `provenance.type` is `content_unavailable`.23832384    - `Text object`23852386      Text content block.23872388      - `type: "text"`23892390        default: text23912392      - `text: string`23932394        Text content from the user or the assistant23952396      - `truncated: boolean`23972398        True when `text` was shortened by the server's fixed per-string bound (approximately 1 MiB), or when ancillary content the block carried (such as citations) was omitted, or when this block stands in for a non-text block whose content is not shown, or when it is an explanatory marker the server inserted (its text enclosed in square brackets, e.g. prefacing client-asserted history). There is no request parameter that raises the per-string bound.23992400        default: false24012402    - `ToolUse object`24032404      Tool invocation requested by the assistant.24052406      - `type: "tool_use"`24072408        default: tool_use24092410      - `id: string or null`24112412        Tool-use ID, e.g. 'toolu_01AbC...'24132414      - `input: string`24152416        Arguments passed to the tool, as a JSON-encoded string. May be shortened (see the `truncated` field); a truncated value is cut mid-document and is not valid JSON.24172418      - `name: string`24192420        Name of the tool invoked24212422      - `truncated: boolean`24232424        True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request the server maximum.24252426        default: false24272428    - `ToolResult object`24292430      Result returned by a tool invocation.24312432      - `type: "tool_result"`24332434        default: tool_result24352436      - `content: array of object`24372438        Text content returned by the tool. Non-text item types are omitted and signalled via `truncated` with an in-band item-count marker.24392440        - `type: "text"`24412442          default: text24432444        - `text: string`24452446          Text returned by the tool24472448      - `is_error: boolean`24492450        True when the tool reported an error24512452      - `name: string`24532454        Name of the tool that produced this result24552456      - `tool_use_id: string or null`24572458        ID of the tool_use block this result responds to24592460      - `truncated: boolean`24612462        True when one or more text items in `content` were shortened or non-text items were omitted. Pass `tool_result_max_bytes=-1` to request the server maximum.24632464        default: false24652466  - `created_at: string`24672468    When the message was recorded (RFC 3339, UTC)24692470    format: date-time24712472  - `model: string or null`24732474    The model that served this assistant turn, as reported in the `model` field of the underlying Messages API response. Null on user messages and on any assistant message whose `provenance` is set: client-asserted history and synthetic markers were not produced by a model during this session, and for unavailable content the serving model is not known.24752476  - `provenance: ContentUnavailable or ClientAsserted or SyntheticMarker or null`24772478    Where this turn's content came from, discriminated on `type`. Null (the common case) means verified content: on an assistant message, content Claude produced during this session; on a user message, content the user sent. `content_unavailable`: the turn's content cannot be returned and `content` is empty; `reason` says why. `client_asserted`: assistant content the client supplied as conversation history; `content` shows what the model received but its authorship is not verified; never on user-role messages. `synthetic_marker`: a transcript marker the endpoint generated rather than content either party sent during the session. Both `client_asserted` and `synthetic_marker` can result from normal request or client processing, not only client modification. Callers should tolerate unrecognized `type` values.24792480    - `ContentUnavailable object`24812482      The turn's content cannot be returned; `content` is empty.24832484      - `type: "content_unavailable"`24852486        default: content_unavailable24872488      - `reason: string`24892490        Why this turn's content cannot be returned, e.g. `not_captured` (the content was not captured for compliance retrieval), `client_aborted` (the client closed the connection or cancelled the request before the response completed, so the response was not captured for this turn; any partial output already streamed to the client is not included; assistant-role turns only), `cmek_key_revoked` (the content is encrypted under the organization's customer-managed key and that key is unavailable), `retention_elapsed` (the content lies past the organization's retention boundary; on the placeholder standing in for every pre-boundary turn), or `oversize` (the message exceeds the server's per-message size bound even after per-block truncation). Callers should tolerate unrecognized values. `not_captured` is not proof that no record was stored: content withheld by the storage layer's fail-closed access policies carries the same reason and is deliberately indistinguishable from content that was never captured.24912492    - `ClientAsserted object`24932494      Assistant content the client supplied as conversation history2495      rather than produced by Claude during this session. `content` shows2496      what the model received but its authorship is not verified; this can2497      result from normal request or client processing, not only client2498      modification. Never on user-role messages.24992500      - `type: "client_asserted"`25012502        default: client_asserted25032504    - `SyntheticMarker object`25052506      A transcript marker generated by the endpoint rather than sent by2507      either party during the session. Marker messages indicate that the2508      prompt history diverged from what was captured, that the request's2509      `system` field was present but is not shown, or that earlier turns2510      that a request re-sent as history were withheld because they cannot2511      be dated against the child organization's data-retention period2512      (only for organizations with a finite retention period; the request's2513      new user input after its last assistant turn is not affected). The2514      marker's text names the cause. Markers that report a mismatch with2515      captured history can result from normal request or client processing,2516      not only client modification.25172518      - `type: "synthetic_marker"`25192520        default: synthetic_marker25212522  - `role: "assistant" or "user"`25232524    Message sender (`user` or `assistant`)25252526    - `"assistant"`25272528    - `"user"`25292530- `next_page: string or null`25312532  Opaque pagination cursor (prefixed `page_`) for the next page. Null when there is no further page. Treat as an opaque string; the format may change without notice.25332534- `session: object`25352536  The local session the messages belong to. `user.email_address` is always null on this endpoint; the messages endpoint does not resolve email addresses.25372538  - `type: "compliance_local_session"`25392540    default: compliance_local_session25412542  - `id: string`25432544    Local session identifier, prefixed `clls_`. Unique within the parent organization. Treat as an opaque string; the format may change without notice.25452546  - `created_at: string`25472548    Timestamp of the session's first retained inference call (RFC 3339, UTC). When a session's activity spans the child organization's retention boundary, calls older than the boundary are no longer reflected, so this value is the timestamp of the earliest retained call: always strictly after the boundary, never the boundary itself.25492550    format: date-time25512552  - `organization_uuid: string`25532554    UUID of the child organization the session belongs to25552556  - `product_surface: string or null`25572558    The product the session ran in: `cowork` (Cowork in Claude Desktop on the user's machine), `claude_code` (Claude Code), `claude_science` (Claude Science), or one of `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word`, and `office_agents/outlook` (Claude for Microsoft 365, by app; `office_agents` alone when the app is not identified). New values appear as coverage expands; treat unrecognized values as opaque. `null` when the surface was not recorded.25592560  - `truncated: boolean`25612562    True when the session has more inference calls than the service can return for one session (100,000). The messages endpoint then returns only the session's earliest calls, up to that many, and ends before the session does; `updated_at` is a lower bound on the latest call and can differ between the list and retrieve endpoints. False for every session within that bound.25632564    default: false25652566  - `updated_at: string`25672568    Timestamp of the session's last retained inference call (RFC 3339, UTC). Always at or after `created_at`. When a session's activity spans the child organization's retention boundary, calls older than the boundary are no longer reflected — but because retention removes only the oldest calls, this value (unlike `created_at`) is unaffected until the entire session has aged out. On the list endpoint this value is a lower bound: for a session still active at a page or `created_at.lt` window boundary it can momentarily lag the session's true last activity. Retrieving the session, or its messages, always reflects the exact latest retained call.25692570    format: date-time25712572  - `user: object`25732574    The authenticated user at the time of the session. Always set; `user.id` is always populated. `user.email_address` is null when the user's account has been deleted or the user is no longer a member of an organization the key may read.25752576    - `id: string`25772578      User identifier (tagged ID, prefixed `user_`). Always set, so attribution survives after the user's account is deleted or the user leaves the organizations the key may read.25792580    - `email_address: string or null`25812582      User's email address. Null when the user's account has been deleted or the user is no longer a member of an organization the key may read. The messages endpoint does not resolve email addresses; this field is always null there.25832584  - `workspace_id: string or null`25852586    Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.25872588#### Example25892590```bash2591curl https://api.anthropic.com/v1/compliance/apps/sessions/local/$LOCAL_SESSION_ID/messages \2592    -H 'anthropic-version: 2023-06-01' \2593    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"2594```25952596##### Response (200)25972598```json2599{2600  "data": [2601    {2602      "id": "clsm_eyJ2IjoxLCJsIjoi…",2603      "content": [2604        {2605          "text": "text",2606          "truncated": true,2607          "type": "text"2608        }2609      ],2610      "created_at": "2025-03-12T18:22:41.123456Z",2611      "model": "claude-opus-5",2612      "provenance": {2613        "reason": "not_captured",2614        "type": "content_unavailable"2615      },2616      "role": "assistant",2617      "type": "compliance_local_session_message"2618    }2619  ],2620  "next_page": "page_eyJ2IjoxLCJmIjoibSIs…",2621  "session": {2622    "id": "clls_eyJ2IjoxLCJvIjoiOWEx…",2623    "created_at": "2025-03-12T18:22:41.123456Z",2624    "organization_uuid": "a1b2c3d4-e5f6-4789-a012-3456789abcde",2625    "product_surface": "cowork",2626    "truncated": true,2627    "type": "compliance_local_session",2628    "updated_at": "2025-03-12T18:22:41.123456Z",2629    "user": {2630      "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",2631      "email_address": "jane.doe@example.com"2632    },2633    "workspace_id": "wrkspc_01SvYKoWVRVHoEbwESNvzYdR"2634  }2635}2636```26372638## Apps › Sessions › Remote26392640### List remote sessions26412642**GET** `/v1/compliance/apps/sessions/remote`26432644List remote sessions (Cowork sessions that run in Anthropic-managed2645cloud environments) across the organizations the key may read.26462647Each entry carries session metadata only; retrieve a session's2648transcript from the messages endpoint. By default the list spans every2649such organization; pass up to 500 `organization_ids[]` values to2650narrow it. Pass 1 to 10 `user_ids[]` values to scope the2651list to specific users: that filter matches the session's owning user,2652so agent-owned sessions are excluded whenever it is set. Bound results2653in time with the `created_at` range parameters (`created_at.gte`,2654`created_at.gt`, `created_at.lt`, `created_at.lte`; RFC 3339). There2655is no `updated_at` filter.26562657Results are sorted newest first by `created_at`, with at most `limit`2658sessions per page (default 100, maximum 500). Pagination is2659forward-only: pass the response's `next_page` value back as `page` to2660retrieve the next page, and stop when `next_page` is null.26612662#### Query parameters26632664- `created_at: optional object`26652666  - `gt: optional string`26672668    Filter remote sessions created after this time (RFC 3339 format)26692670    format: date-time26712672  - `gte: optional string`26732674    Filter remote sessions created at or after this time (RFC 3339 format)26752676    format: date-time26772678  - `lt: optional string`26792680    Filter remote sessions created before this time (RFC 3339 format)26812682    format: date-time26832684  - `lte: optional string`26852686    Filter remote sessions created at or before this time (RFC 3339 format)26872688    format: date-time26892690- `limit: optional number`26912692  Maximum results (default: 100, max: 500)26932694  default: 100, maximum: 500, minimum: 126952696- `organization_ids: optional array of string`26972698  Filter to specific child organization identifiers. Omit to enumerate every child organization the key may read.26992700  maxItems: 50027012702- `page: optional string`27032704  Opaque pagination token from a previous response's `next_page` field. Pass this to retrieve the next page of results. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.27052706- `user_ids: optional array of string`27072708  Filter to sessions owned by specific users (max 10 per request). Agent-owned sessions are excluded when this filter is set.27092710  maxItems: 1027112712#### Headers27132714- `"x-api-key": optional string`27152716#### Returns27172718- `data: array of object`27192720  - `id: string`27212722    Remote session identifier27232724  - `agent_id: string or null`27252726    Identifier of the automated agent that owns the session. Null for user-owned sessions. At most one of `user` and `agent_id` is set.27272728  - `claude_project_id: string or null`27292730    ID of the project the session is bound to. Null when the session has no project binding.27312732  - `created_at: string`27332734    When the session was created (RFC 3339, UTC)27352736    format: date-time27372738  - `organization_uuid: string`27392740    UUID of the organization the session belongs to27412742  - `product_surface: string or null`27432744    The Claude product the session was created from. Currently `cowork_remote`, for Cowork sessions started on claude.ai web or mobile. More values will appear as other surfaces launch, so treat any unrecognized value as an unclassified surface rather than an error. Null for sessions created before this field was recorded, for surfaces that do not stamp it, and for unrecognized tag values.27452746  - `started_by_user: object or null`27472748    A user associated with a remote session.27492750    - `id: string`27512752      User identifier27532754    - `email_address: string or null`27552756      User's email address. Null when the user is no longer a member of an organization the key may read — `id` remains set so attribution is preserved. The messages endpoint does not resolve email addresses; this field is always null there.27572758  - `status: string`27592760    Session lifecycle state. One of `active`, `paused`, `archived`, or `failed` — the lifecycle states the owning product surface exposes — plus `pending`, a brief transient state that resolves before any transcript content exists. The list endpoint includes `pending`; the messages endpoint returns 404 for it. Deleted sessions are not returned on either endpoint. Treat unrecognized values as an unknown state rather than an error.27612762  - `updated_at: string`27632764    When the session was last modified (RFC 3339, UTC)27652766    format: date-time27672768  - `user: object or null`27692770    A user associated with a remote session.27712772    - `id: string`27732774      User identifier27752776    - `email_address: string or null`27772778      User's email address. Null when the user is no longer a member of an organization the key may read — `id` remains set so attribution is preserved. The messages endpoint does not resolve email addresses; this field is always null there.27792780- `next_page: string or null`27812782  Opaque page token; pass as `page` to retrieve the next page. Null when no rows exist after this page. Treat this value as opaque; do not parse or store it long-term, as the format may change without notice.27832784#### Example27852786```bash2787curl https://api.anthropic.com/v1/compliance/apps/sessions/remote \2788    -H 'anthropic-version: 2023-06-01' \2789    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"2790```27912792##### Response (200)27932794```json2795{2796  "data": [2797    {2798      "id": "cse_01A0000000000000000000000",2799      "organization_uuid": "00000000-0000-0000-0000-000000000000",2800      "user": {2801        "id": "user_01A0000000000000000000000",2802        "email_address": "user@example.com"2803      },2804      "status": "active",2805      "created_at": "2026-01-02T03:04:05.000000Z",2806      "updated_at": "2026-01-02T03:04:05.000000Z",2807      "product_surface": "cowork_remote",2808      "claude_project_id": "claude_proj_01Nm7PqRsTuVwXyZaBcDeFgH"2809    }2810  ],2811  "next_page": "page_AAE..."2812}2813```28142815## Apps › Sessions › Remote › Messages28162817### Retrieve remote session messages28182819**GET** `/v1/compliance/apps/sessions/remote/{claude_remote_session_id}/messages`28202821Retrieve one remote session's transcript: user prompts, assistant2822responses, and tool calls and results. Thinking blocks and images are2823not included.28242825Messages are returned oldest first by default; pass `order=desc` to2826reverse. Pagination uses the same `page`/`next_page` scheme as the2827list endpoint, with at most `limit` messages per page (default 100,2828maximum 1000); keep paginating until `next_page` is null.2829`tool_use_input_max_bytes` and `tool_result_max_bytes` cap how many2830bytes of each tool-use input and each tool-result text item are2831returned; a block shortened by either cap carries `truncated: true`.28322833The response embeds the session's metadata under `session` alongside2834the paginated `data` array. On this endpoint `session.user.email_address`2835and `session.started_by_user` are always null; read them from the list2836endpoint instead.28372838Returns 404 while the session is still `pending`, for deleted sessions,2839and for sessions outside the organizations the key may read. A2840malformed session identifier returns 400.28412842#### Path parameters28432844- `claude_remote_session_id: string`28452846  The remote session identifier (`cse_...`) to retrieve28472848#### Query parameters28492850- `limit: optional number`28512852  Maximum results (default: 100, max: 1000)28532854  default: 100, maximum: 1000, minimum: 128552856- `order: optional "asc" or "desc"`28572858  Sort direction. `asc` (oldest-first) or `desc`.28592860  default: asc28612862  - `"asc"`28632864  - `"desc"`28652866- `page: optional string`28672868  Opaque pagination token from a previous response's `next_page` field. Pass this to retrieve the next page of results. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.28692870- `tool_result_max_bytes: optional number`28712872  Truncate each text item inside a tool result to at most this many bytes (cut on a code-point boundary). Pass `-1` to request the server maximum. `0` is not a valid value.28732874  default: 10000, maximum: 2147483647, minimum: -128752876- `tool_use_input_max_bytes: optional number`28772878  Truncate each tool-use input to at most this many bytes (cut on a code-point boundary so the result is valid UTF-8). Pass `-1` to request the server maximum. `0` is not a valid value.28792880  default: 10000, maximum: 2147483647, minimum: -128812882#### Headers28832884- `"x-api-key": optional string`28852886#### Returns28872888- `data: array of object`28892890  Transcript turns for this page, ordered by transcript position. `created_at` is a commit timestamp and may tie or invert under concurrent writes; do not re-sort by it.28912892  - `id: string`28932894    Unique identifier for the message, e.g. `csev_abc123`28952896  - `content: array of Text or ToolUse or ToolResult`28972898    Content blocks within the message28992900    - `Text object`29012902      Text content block.29032904      - `type: "text"`29052906        default: text29072908      - `text: string`29092910        Text content from the user or the assistant29112912      - `truncated: boolean`29132914        True when `text` exceeded the server-defined maximum (approximately 1 MiB) and was shortened.29152916        default: false29172918    - `ToolUse object`29192920      Tool invocation requested by the assistant.29212922      - `type: "tool_use"`29232924        default: tool_use29252926      - `id: string or null`29272928        Tool-use ID, e.g. 'toolu_01AbC...'29292930      - `input: string`29312932        Arguments passed to the tool, as a JSON-encoded string. May be shortened — see the `truncated` field29332934      - `name: string`29352936        Name of the tool invoked29372938      - `truncated: boolean`29392940        True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request full content, subject to the server-side maximum.29412942        default: false29432944    - `ToolResult object`29452946      Result returned by a tool invocation.29472948      - `type: "tool_result"`29492950        default: tool_result29512952      - `content: array of object`29532954        Text content returned by the tool. Non-text item types are omitted.29552956        - `type: "text"`29572958          default: text29592960        - `text: string`29612962          Text returned by the tool29632964      - `is_error: boolean`29652966        True when the tool reported an error29672968      - `name: string`29692970        Name of the tool that produced this result29712972      - `tool_use_id: string or null`29732974        ID of the tool_use block this result responds to29752976      - `truncated: boolean`29772978        True when one or more text items in `content` were shortened. Pass `tool_result_max_bytes=-1` to request full content, subject to the server-side maximum.29792980        default: false29812982  - `content_unavailable: boolean`29832984    True when the stored content could not be returned — it could not be decrypted, or it exceeded the server's per-event size bound. `content` is empty in that case; this distinguishes 'no content' from 'content withheld'.29852986    default: false29872988  - `created_at: string`29892990    When the message was recorded (RFC 3339, UTC)29912992    format: date-time29932994  - `role: "assistant" or "user"`29952996    Message sender (`user` or `assistant`)29972998    - `"assistant"`29993000    - `"user"`30013002  - `sent_by_user_id: string or null`30033004    Identifier of the human account that sent this turn on an agent-owned session. Null on user-owned sessions, where every user-role turn was sent by the session's `user`.30053006- `next_page: string or null`30073008  Opaque page token; pass as `page` to retrieve the next page. Null when no rows exist after this page. Treat this value as opaque; do not parse or store it long-term, as the format may change without notice.30093010- `session: object`30113012  Session metadata. `started_by_user`, `user.email_address`, and `claude_project_id` are always null on this endpoint; the messages endpoint resolves neither email addresses nor project bindings.30133014  - `id: string`30153016    Remote session identifier30173018  - `agent_id: string or null`30193020    Identifier of the automated agent that owns the session. Null for user-owned sessions. At most one of `user` and `agent_id` is set.30213022  - `claude_project_id: string or null`30233024    ID of the project the session is bound to. Null when the session has no project binding.30253026  - `created_at: string`30273028    When the session was created (RFC 3339, UTC)30293030    format: date-time30313032  - `organization_uuid: string`30333034    UUID of the organization the session belongs to30353036  - `product_surface: string or null`30373038    The Claude product the session was created from. Currently `cowork_remote`, for Cowork sessions started on claude.ai web or mobile. More values will appear as other surfaces launch, so treat any unrecognized value as an unclassified surface rather than an error. Null for sessions created before this field was recorded, for surfaces that do not stamp it, and for unrecognized tag values.30393040  - `started_by_user: object or null`30413042    A user associated with a remote session.30433044    - `id: string`30453046      User identifier30473048    - `email_address: string or null`30493050      User's email address. Null when the user is no longer a member of an organization the key may read — `id` remains set so attribution is preserved. The messages endpoint does not resolve email addresses; this field is always null there.30513052  - `status: string`30533054    Session lifecycle state. One of `active`, `paused`, `archived`, or `failed` — the lifecycle states the owning product surface exposes — plus `pending`, a brief transient state that resolves before any transcript content exists. The list endpoint includes `pending`; the messages endpoint returns 404 for it. Deleted sessions are not returned on either endpoint. Treat unrecognized values as an unknown state rather than an error.30553056  - `updated_at: string`30573058    When the session was last modified (RFC 3339, UTC)30593060    format: date-time30613062  - `user: object or null`30633064    A user associated with a remote session.30653066    - `id: string`30673068      User identifier30693070    - `email_address: string or null`30713072      User's email address. Null when the user is no longer a member of an organization the key may read — `id` remains set so attribution is preserved. The messages endpoint does not resolve email addresses; this field is always null there.30733074#### Example30753076```bash3077curl https://api.anthropic.com/v1/compliance/apps/sessions/remote/$CLAUDE_REMOTE_SESSION_ID/messages \3078    -H 'anthropic-version: 2023-06-01' \3079    -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"3080```30813082##### Response (200)30833084```json3085{3086  "data": [3087    {3088      "id": "id",3089      "content": [3090        {3091          "text": "text",3092          "truncated": true,3093          "type": "text"3094        }3095      ],3096      "content_unavailable": true,3097      "created_at": "2019-12-27T18:11:19.117Z",3098      "role": "assistant",3099      "sent_by_user_id": "sent_by_user_id"3100    }3101  ],3102  "next_page": "next_page",3103  "session": {3104    "id": "id",3105    "agent_id": "agent_id",3106    "claude_project_id": "claude_project_id",3107    "created_at": "2019-12-27T18:11:19.117Z",3108    "organization_uuid": "organization_uuid",3109    "product_surface": "product_surface",3110    "started_by_user": {3111      "id": "id",3112      "email_address": "email_address"3113    },3114    "status": "status",3115    "updated_at": "2019-12-27T18:11:19.117Z",3116    "user": {3117      "id": "id",3118      "email_address": "email_address"3119    }3120  }3121}3122```3123
Files main
Menu

Theme