Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.309 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One capture · api

One read of Claude Developer Platformapi-20260825T033708Z

377 pages moved out of 612 read.

Pages moved 377 significant first
Pages read 612 in this capture
Captured 03:37 UTC
Corpus hash 7d98cae5bb87 corpus-hash

What this read moved

301-325 of 377, page 13 of 16

This capture is too large to show at once. Changes 301-325 of 377 are below, significant first; the rest are on the following screens.

api/compliance/apps/chats/messages Changed · +121 / -68 lines

### Path parameters ### Query parameters ### Headers #### Response (200) ## Domain types ### Path Parameters ### Query Parameters ### Header Parameters #### Response ## Domain Types

from line 1
1---
2title: Messages
3url: https://platform.claude.com/docs/en/api/compliance/apps/chats/messages
4---
5 
61# Messages
72 
83## Get chat messages
94 
10**get** `/v1/compliance/apps/chats/{claude_chat_id}/messages`
5**GET** `/v1/compliance/apps/chats/{claude_chat_id}/messages`
116 
127Retrieves message history and file metadata for a specific chat.
138 
14### Path Parameters
9### Path parameters
1510 
1611- `claude_chat_id: string`
1712 
1813 The chat ID (tagged ID, e.g., claude_chat_abc123)
1914 
20### Query Parameters
15### Query parameters
2116 
2217- `after_id: optional string`
2318 
from line 22
2722 
2823 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.
2924 
30- `created_at: optional object { gt, gte, lt, lte }`
25- `created_at: optional object`
3126 
3227 - `gt: optional string`
3328 
3429 Filter messages created after this time (RFC 3339 format)
3530 
31 format: date-time
32 
3633 - `gte: optional string`
3734 
3835 Filter messages created at or after this time (RFC 3339 format)
3936 
37 format: date-time
38 
4039 - `lt: optional string`
4140 
4241 Filter messages created before this time (RFC 3339 format)
4342 
43 format: date-time
44 
4445 - `lte: optional string`
4546 
4647 Filter messages created at or before this time (RFC 3339 format)
4748 
49 format: date-time
50 
4851- `limit: optional number`
4952 
5053 Maximum results (max: 1000). When omitted, the full result set is returned in one response.
5154 
55 maximum: 1000, minimum: 1
56 
5257- `order: optional "asc" or "desc"`
5358 
5459 Sort direction for messages within the response. `asc` (the default) returns oldest-first; `desc` returns newest-first.
5560 
61 default: asc
62 
5663 - `"asc"`
5764 
5865 - `"desc"`
from line 68
6168 
6269 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.
6370 
71 default: 10000, minimum: -1
72 
6473- `tool_use_input_max_chars: optional number`
6574 
6675 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.
6776 
68- `updated_at: optional object { gt, gte, lt, lte }`
77 default: 10000, minimum: -1
6978 
79- `updated_at: optional object`
80 
7081 - `gt: optional string`
7182 
7283 Filter messages updated after this time (RFC 3339 format)
7384 
85 format: date-time
86 
7487 - `gte: optional string`
7588 
7689 Filter messages updated at or after this time (RFC 3339 format)
7790 
91 format: date-time
92 
7893 - `lt: optional string`
7994 
8095 Filter messages updated before this time (RFC 3339 format)
8196 
97 format: date-time
98 
8299 - `lte: optional string`
83100 
84101 Filter messages updated at or before this time (RFC 3339 format)
85102 
86### Header Parameters
103 format: date-time
87104 
105### Headers
106 
88107- `"x-api-key": optional string`
89108 
90109### Returns
from line 112
93112 
94113 Chat ID
95114 
96- `chat_messages: array of object { id, artifacts, content, 4 more }`
115- `chat_messages: array of object`
97116 
98117 Array of chat messages in order of created_at
99118 
from line 120
101120 
102121 Unique identifier for the message e.g. 'claude_chat_msg_abcd1234'
103122 
104 - `artifacts: array of object { id, artifact_type, title, version_id } or null`
123 - `artifacts: array of object or null`
105124 
106125 Versioned documents generated or updated by the assistant in this message. Download via `GET /v1/compliance/apps/artifacts/{artifact_version_id}/content`.
107126 
from line 140
121140 
122141 Artifact version ID e.g. 'claude_artifact_version_abc123'
123142 
124 - `content: array of object { text, thinking_redacted, truncated, type } or object { id, input, integration_name, 4 more } or object { content, integration_name, is_error, 5 more }`
143 - `content: array of object or object or object`
125144 
126145 Content blocks within the message
127146 
128 - `Text object { text, thinking_redacted, truncated, type }`
147 - `Text object`
129148 
130149 Text content block.
131150 
from line 156
137156 
138157 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.
139158 
159 default: false
160 
140161 - `truncated: boolean`
141162 
142163 True when `text` was shortened by the server's fixed per-string bound (1 MiB). Always false on chat text blocks.
143164 
165 default: false
166 
144167 - `type: "text"`
145168 
146 - `"text"`
169 default: text
147170 
148 - `ToolUse object { id, input, integration_name, 4 more }`
171 - `ToolUse object`
149172 
150173 Tool invocation requested by the assistant.
151174 
from line 196
173196 
174197 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.
175198 
199 default: false
200 
176201 - `type: "tool_use"`
177202 
178 - `"tool_use"`
203 default: tool_use
179204 
180 - `ToolResult object { content, integration_name, is_error, 5 more }`
205 - `ToolResult object`
181206 
182207 Result returned by a tool invocation.
183208 
184 - `content: array of object { text, type }`
209 - `content: array of object`
185210 
186211 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.
187212 
from line 216
191216 
192217 - `type: "text"`
193218 
194 - `"text"`
219 default: text
195220 
196221 - `integration_name: string or null`
197222 
from line 242
217242 
218243 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.
219244 
245 default: false
246 
220247 - `type: "tool_result"`
221248 
222 - `"tool_result"`
249 default: tool_result
223250 
224251 - `created_at: string`
225252 
226253 Message creation timestamp - For human: when they sent the message, For assistant: when it completed the last content block
227254 
228 - `files: array of object { id, created_at, filename, 3 more } or null`
255 format: date-time
229256 
257 - `files: array of object or null`
258 
230259 Binary file attachments uploaded by the user. Download via `GET /v1/compliance/apps/chats/files/{claude_file_id}/content`.
231260 
232261 - `id: string`
from line 266
237266 
238267 File creation timestamp
239268 
269 format: date-time
270 
240271 - `filename: string`
241272 
242273 Display name of the file
from line 284
253284 
254285 Size in bytes of the file's preferred downloadable variant, if known. Null for older files uploaded before size was recorded.
255286 
256 - `generated_files: array of object { id, filename, md5, 2 more } or null`
287 - `generated_files: array of object or null`
257288 
258289 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`.
259290 
from line 320
289320 
290321 Creation timestamp
291322 
323 format: date-time
324 
292325- `deleted_at: string or null`
293326 
294327 Deletion timestamp if deleted
295328 
329 format: date-time
330 
296331- `first_id: string or null`
297332 
298333 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.
from line 336
301336 
302337 Whether more chat messages exist beyond the current result set. Use `last_id` as `after_id` in a follow-up request to page forward.
303338 
339 default: false
340 
304341- `href: string`
305342 
306343 URL to view this chat in claude.ai
from line 354
317354 
318355 Chat name
319356 
320- `organization_id: string`
321 
322 Organization ID this chat belongs to
323 
324357- `organization_uuid: string`
325358 
326359 Organization UUID this chat belongs to
from line 366
333366 
334367 Last update timestamp
335368 
336- `user: object { id, email_address } or null`
369 format: date-time
337370 
371- `user: object or null`
372 
338373 User information for compliance responses.
339374 
340375 - `id: string`
from line 380
345380 
346381 User's email address
347382 
383- `organization_id: string`
384 
385 **Deprecated**
386 
387 Organization ID this chat belongs to
388 
348389### Example
349390 
350```http
391```bash
351392curl https://api.anthropic.com/v1/compliance/apps/chats/$CLAUDE_CHAT_ID/messages \
352393 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
353394```
354395 
355#### Response
396#### Response (200)
356397 
357398```json
358399{
from line 458
417458}
418459```
419460 
420## Domain Types
461## Domain types
421462 
422463### Message List Response
423464 
424- `MessageListResponse object { id, artifacts, content, 4 more }`
465- `MessageListResponse object`
425466 
426467 A single message in a chat conversation.
427468 
from line 470
429470 
430471 Unique identifier for the message e.g. 'claude_chat_msg_abcd1234'
431472 
432 - `artifacts: array of object { id, artifact_type, title, version_id } or null`
473 - `artifacts: array of object or null`
433474 
434475 Versioned documents generated or updated by the assistant in this message. Download via `GET /v1/compliance/apps/artifacts/{artifact_version_id}/content`.
435476 
from line 490
449490 
450491 Artifact version ID e.g. 'claude_artifact_version_abc123'
451492 
452 - `content: array of object { text, thinking_redacted, truncated, type } or object { id, input, integration_name, 4 more } or object { content, integration_name, is_error, 5 more }`
493 - `content: array of object or object or object`
453494 
454495 Content blocks within the message
455496 
456 - `Text object { text, thinking_redacted, truncated, type }`
497 - `Text object`
457498 
458499 Text content block.
459500 
from line 506
465506 
466507 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.
467508 
509 default: false
510 
468511 - `truncated: boolean`
469512 
470513 True when `text` was shortened by the server's fixed per-string bound (1 MiB). Always false on chat text blocks.
471514 
515 default: false
516 
472517 - `type: "text"`
473518 
474 - `"text"`
519 default: text
475520 
476 - `ToolUse object { id, input, integration_name, 4 more }`
521 - `ToolUse object`
477522 
478523 Tool invocation requested by the assistant.
479524 
from line 546
501546 
502547 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.
503548 
549 default: false
550 
504551 - `type: "tool_use"`
505552 
506 - `"tool_use"`
553 default: tool_use
507554 
508 - `ToolResult object { content, integration_name, is_error, 5 more }`
555 - `ToolResult object`
509556 
510557 Result returned by a tool invocation.
511558 
512 - `content: array of object { text, type }`
559 - `content: array of object`
513560 
514561 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.
515562 
from line 566
519566 
520567 - `type: "text"`
521568 
522 - `"text"`
569 default: text
523570 
524571 - `integration_name: string or null`
525572 
from line 592
545592 
546593 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.
547594 
595 default: false
596 
548597 - `type: "tool_result"`
549598 
550 - `"tool_result"`
599 default: tool_result
551600 
552601 - `created_at: string`
553602 
554603 Message creation timestamp - For human: when they sent the message, For assistant: when it completed the last content block
555604 
556 - `files: array of object { id, created_at, filename, 3 more } or null`
605 format: date-time
557606 
607 - `files: array of object or null`
608 
558609 Binary file attachments uploaded by the user. Download via `GET /v1/compliance/apps/chats/files/{claude_file_id}/content`.
559610 
560611 - `id: string`
from line 616
565616 
566617 File creation timestamp
567618 
619 format: date-time
620 
568621 - `filename: string`
569622 
570623 Display name of the file
from line 634
581634 
582635 Size in bytes of the file's preferred downloadable variant, if known. Null for older files uploaded before size was recorded.
583636 
584 - `generated_files: array of object { id, filename, md5, 2 more } or null`
637 - `generated_files: array of object or null`
585638 
586639 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`.
587640 

api/compliance/apps/chats/messages/list Changed · +98 / -57 lines

# Get chat messages ## Path parameters ## Query parameters ## Headers ## Returns ## Example ### Response (200) ## Get chat messages ### Path Parameters ### Query Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: Get chat messages
3url: https://platform.claude.com/docs/en/api/compliance/apps/chats/messages/list
4---
1# Get chat messages
52 
6## Get chat messages
3**GET** `/v1/compliance/apps/chats/{claude_chat_id}/messages`
74 
8**get** `/v1/compliance/apps/chats/{claude_chat_id}/messages`
9 
105Retrieves message history and file metadata for a specific chat.
116 
12### Path Parameters
7## Path parameters
138 
149- `claude_chat_id: string`
1510 
1611 The chat ID (tagged ID, e.g., claude_chat_abc123)
1712 
18### Query Parameters
13## Query parameters
1914 
2015- `after_id: optional string`
2116 
from line 20
2520 
2621 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.
2722 
28- `created_at: optional object { gt, gte, lt, lte }`
23- `created_at: optional object`
2924 
3025 - `gt: optional string`
3126 
3227 Filter messages created after this time (RFC 3339 format)
3328 
29 format: date-time
30 
3431 - `gte: optional string`
3532 
3633 Filter messages created at or after this time (RFC 3339 format)
3734 
35 format: date-time
36 
3837 - `lt: optional string`
3938 
4039 Filter messages created before this time (RFC 3339 format)
4140 
41 format: date-time
42 
4243 - `lte: optional string`
4344 
4445 Filter messages created at or before this time (RFC 3339 format)
4546 
47 format: date-time
48 
4649- `limit: optional number`
4750 
4851 Maximum results (max: 1000). When omitted, the full result set is returned in one response.
4952 
53 maximum: 1000, minimum: 1
54 
5055- `order: optional "asc" or "desc"`
5156 
5257 Sort direction for messages within the response. `asc` (the default) returns oldest-first; `desc` returns newest-first.
5358 
59 default: asc
60 
5461 - `"asc"`
5562 
5663 - `"desc"`
from line 66
5966 
6067 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.
6168 
69 default: 10000, minimum: -1
70 
6271- `tool_use_input_max_chars: optional number`
6372 
6473 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.
6574 
66- `updated_at: optional object { gt, gte, lt, lte }`
75 default: 10000, minimum: -1
6776 
77- `updated_at: optional object`
78 
6879 - `gt: optional string`
6980 
7081 Filter messages updated after this time (RFC 3339 format)
7182 
83 format: date-time
84 
7285 - `gte: optional string`
7386 
7487 Filter messages updated at or after this time (RFC 3339 format)
7588 
89 format: date-time
90 
7691 - `lt: optional string`
7792 
7893 Filter messages updated before this time (RFC 3339 format)
7994 
95 format: date-time
96 
8097 - `lte: optional string`
8198 
8299 Filter messages updated at or before this time (RFC 3339 format)
83100 
84### Header Parameters
101 format: date-time
85102 
103## Headers
104 
86105- `"x-api-key": optional string`
87106 
88### Returns
107## Returns
89108 
90109- `id: string`
91110 
92111 Chat ID
93112 
94- `chat_messages: array of object { id, artifacts, content, 4 more }`
113- `chat_messages: array of object`
95114 
96115 Array of chat messages in order of created_at
97116 
from line 118
99118 
100119 Unique identifier for the message e.g. 'claude_chat_msg_abcd1234'
101120 
102 - `artifacts: array of object { id, artifact_type, title, version_id } or null`
121 - `artifacts: array of object or null`
103122 
104123 Versioned documents generated or updated by the assistant in this message. Download via `GET /v1/compliance/apps/artifacts/{artifact_version_id}/content`.
105124 
from line 138
119138 
120139 Artifact version ID e.g. 'claude_artifact_version_abc123'
121140 
122 - `content: array of object { text, thinking_redacted, truncated, type } or object { id, input, integration_name, 4 more } or object { content, integration_name, is_error, 5 more }`
141 - `content: array of object or object or object`
123142 
124143 Content blocks within the message
125144 
126 - `Text object { text, thinking_redacted, truncated, type }`
145 - `Text object`
127146 
128147 Text content block.
129148 
from line 154
135154 
136155 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.
137156 
157 default: false
158 
138159 - `truncated: boolean`
139160 
140161 True when `text` was shortened by the server's fixed per-string bound (1 MiB). Always false on chat text blocks.
141162 
163 default: false
164 
142165 - `type: "text"`
143166 
144 - `"text"`
167 default: text
145168 
146 - `ToolUse object { id, input, integration_name, 4 more }`
169 - `ToolUse object`
147170 
148171 Tool invocation requested by the assistant.
149172 
from line 194
171194 
172195 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.
173196 
197 default: false
198 
174199 - `type: "tool_use"`
175200 
176 - `"tool_use"`
201 default: tool_use
177202 
178 - `ToolResult object { content, integration_name, is_error, 5 more }`
203 - `ToolResult object`
179204 
180205 Result returned by a tool invocation.
181206 
182 - `content: array of object { text, type }`
207 - `content: array of object`
183208 
184209 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.
185210 
from line 214
189214 
190215 - `type: "text"`
191216 
192 - `"text"`
217 default: text
193218 
194219 - `integration_name: string or null`
195220 
from line 240
215240 
216241 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.
217242 
243 default: false
244 
218245 - `type: "tool_result"`
219246 
220 - `"tool_result"`
247 default: tool_result
221248 
222249 - `created_at: string`
223250 
224251 Message creation timestamp - For human: when they sent the message, For assistant: when it completed the last content block
225252 
226 - `files: array of object { id, created_at, filename, 3 more } or null`
253 format: date-time
227254 
255 - `files: array of object or null`
256 
228257 Binary file attachments uploaded by the user. Download via `GET /v1/compliance/apps/chats/files/{claude_file_id}/content`.
229258 
230259 - `id: string`
from line 264
235264 
236265 File creation timestamp
237266 
267 format: date-time
268 
238269 - `filename: string`
239270 
240271 Display name of the file
from line 282
251282 
252283 Size in bytes of the file's preferred downloadable variant, if known. Null for older files uploaded before size was recorded.
253284 
254 - `generated_files: array of object { id, filename, md5, 2 more } or null`
285 - `generated_files: array of object or null`
255286 
256287 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`.
257288 
from line 318
287318 
288319 Creation timestamp
289320 
321 format: date-time
322 
290323- `deleted_at: string or null`
291324 
292325 Deletion timestamp if deleted
293326 
327 format: date-time
328 
294329- `first_id: string or null`
295330 
296331 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.
from line 334
299334 
300335 Whether more chat messages exist beyond the current result set. Use `last_id` as `after_id` in a follow-up request to page forward.
301336 
337 default: false
338 
302339- `href: string`
303340 
304341 URL to view this chat in claude.ai
from line 352
315352 
316353 Chat name
317354 
318- `organization_id: string`
319 
320 Organization ID this chat belongs to
321 
322355- `organization_uuid: string`
323356 
324357 Organization UUID this chat belongs to
from line 364
331364 
332365 Last update timestamp
333366 
334- `user: object { id, email_address } or null`
367 format: date-time
335368 
369- `user: object or null`
370 
336371 User information for compliance responses.
337372 
338373 - `id: string`
from line 378
343378 
344379 User's email address
345380 
346### Example
381- `organization_id: string`
347382 
348```http
383 **Deprecated**
384 
385 Organization ID this chat belongs to
386 
387## Example
388 
389```bash
349390curl https://api.anthropic.com/v1/compliance/apps/chats/$CLAUDE_CHAT_ID/messages \
350391 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
351392```
352393 
353#### Response
394### Response (200)
354395 
355396```json
356397{

api/compliance/apps/projects Changed · +201 / -447 lines

### Query parameters ### Headers #### Response (200) ### Path parameters ### Headers #### Response (200) ### Path parameters ### Headers #### Response (200) ## Domain types ## Projects › Attachments ### List project attachments #### Path parameters #### Query parameters #### Headers #### Returns #### Example ##### Response (200) ## Projects › Collaborators ### List project collaborators #### Path parameters #### Query parameters #### Headers #### Returns #### Example ##### Response (200) ## Projects › Documents ### Get project document content #### Path parameters #### Headers #### Returns #### Example ##### Response (200) ### Get project document metadata #### Path parameters #### Headers #### Returns #### Example ##### Response (200) ### Delete project document #### Path parameters #### Headers #### Returns #### Example ##### Response (200) ### Query Parameters ### Header Parameters #### Response ### Path Parameters ### Header Parameters #### Response ### Path Parameters ### Header Parameters #### Response ## Domain Types # Attachments ## List project attachments ### Path Parameters ### Query Parameters ### Header Parameters #### Response ## Domain Types ### Attachment List Response # Collaborators ## List project collaborators ### Path Parameters ### Query Parameters ### Header Parameters #### Response ## Domain Types ### Collaborator List Response # Documents ## Get project document content ### Path Parameters ### Header Parameters #### Response ## Get project document metadata ### Path Parameters ### Header Parameters #### Response ## Delete project document ### Path Parameters ### Header Parameters #### Response ## Domain Types ### Document Retrieve Response ### Document Metadata Response ### Document Delete Response

The two sides of this change are more than 400 edits apart, too far apart to line up, so this is the differ's own diff of it and the words inside a line are not marked.

from line 1
1---
2title: Projects
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects
4---
5 
61# Projects
72 
83## List projects
94 
10**get** `/v1/compliance/apps/projects`
5**GET** `/v1/compliance/apps/projects`
116 
127Lists project metadata with filtering capabilities. Results
138are sorted chronologically (time ascending) by created_at.
149 
15### Query Parameters
16 
17- `created_at: optional object { gt, gte, lt, lte }`
10### Query parameters
11 
12- `created_at: optional object`
1813 
1914 - `gt: optional string`
2015 
2116 Filter projects created after this time (RFC 3339 format)
2217 
18 format: date-time
19 
2320 - `gte: optional string`
2421 
2522 Filter projects created at or after this time (RFC 3339 format)
2623 
24 format: date-time
25 
2726 - `lt: optional string`
2827 
2928 Filter projects created before this time (RFC 3339 format)
3029 
30 format: date-time
31 
3132 - `lte: optional string`
3233 
3334 Filter projects created at or before this time (RFC 3339 format)
3435 
36 format: date-time
37 
3538- `limit: optional number`
3639 
3740 Maximum results (default: 20, max: 100)
3841 
42 default: 20, maximum: 100, minimum: 1
43 
3944- `organization_ids: optional array of string`
4045 
4146 Filter by organization IDs (accepts `org_...` or organization UUID). Enumerate IDs via `GET /v1/compliance/organizations`.
from line 49
4449 
4550 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.
4651 
47- `updated_at: optional object { gt, gte, lt, lte }`
52- `updated_at: optional object`
4853 
4954 - `gt: optional string`
5055 
5156 Filter projects updated after this time (RFC 3339 format)
5257 
58 format: date-time
59 
5360 - `gte: optional string`
5461 
5562 Filter projects updated at or after this time (RFC 3339 format)
5663 
64 format: date-time
65 
5766 - `lt: optional string`
5867 
5968 Filter projects updated before this time (RFC 3339 format)
6069 
70 format: date-time
71 
6172 - `lte: optional string`
6273 
6374 Filter projects updated at or before this time (RFC 3339 format)
6475 
76 format: date-time
77 
6578- `user_ids: optional array of string`
6679 
6780 Filter by user IDs. Enumerate IDs via `GET /v1/compliance/organizations/{org_uuid}/users`.
6881 
69### Header Parameters
82### Headers
7083 
7184- `"x-api-key": optional string`
7285 
7386### Returns
7487 
75- `data: array of object { id, created_at, deleted_at, 6 more }`
88- `data: array of object`
7689 
7790 List of projects sorted by creation date ascending
7891 
from line 97
8497 
8598 Project creation timestamp
8699 
100 format: date-time
101 
87102 - `deleted_at: string or null`
88103 
89104 Timestamp when the project was deleted by an end user, or null otherwise
90105 
106 format: date-time
107 
91108 - `is_private: boolean`
92109 
93110 If false, the project is visible to all organization members; if true the project is accessible only to the creator and specified collaborators
from line 113
96113 
97114 Project name
98115 
99 - `organization_id: string`
100 
101 Organization identifier (tagged ID)
102 
103116 - `organization_uuid: string`
104117 
105118 Organization UUID this project belongs to
from line 121
108121 
109122 Project last update timestamp
110123 
111 - `user: object { id, email_address } or null`
124 format: date-time
125 
126 - `user: object or null`
112127 
113128 The user who created a project or project document.
114129 
from line 139
124139 
125140 User's email address
126141 
142 - `organization_id: string`
143 
144 **Deprecated**
145 
146 Organization identifier (tagged ID)
147 
127148- `has_more: boolean`
128149 
129150 Whether more records exist beyond the current result set
from line 155
134155 
135156### Example
136157 
137```http
158```bash
138159curl https://api.anthropic.com/v1/compliance/apps/projects \
139160 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
140161```
141162 
142#### Response
163#### Response (200)
143164 
144165```json
145166{
from line 186
165186 
166187## Get project details
167188 
168**get** `/v1/compliance/apps/projects/{project_id}`
189**GET** `/v1/compliance/apps/projects/{project_id}`
169190 
170191Get detailed information for a specific project.
171192 
172### Path Parameters
193### Path parameters
173194 
174195- `project_id: string`
175196 
176197 The project ID (tagged ID, e.g., claude_proj_abc123)
177198 
178### Header Parameters
199### Headers
179200 
180201- `"x-api-key": optional string`
181202 
from line 218
197218 
198219 Project creation timestamp
199220 
221 format: date-time
222 
200223- `deleted_at: string or null`
201224 
202225 Timestamp when the project was deleted by an end user, or null otherwise
203226 
227 format: date-time
228 
204229- `description: string`
205230 
206231 Project description
from line 242
217242 
218243 Project name
219244 
220- `organization_id: string`
221 
222 Organization identifier (tagged ID)
223 
224245- `organization_uuid: string`
225246 
226247 Organization UUID this project belongs to
from line 250
229250 
230251 Project last update timestamp
231252 
232- `user: object { id, email_address } or null`
253 format: date-time
254 
255- `user: object or null`
233256 
234257 The user who created a project or project document.
235258 
from line 268
245268 
246269 User's email address
247270 
271- `organization_id: string`
272 
273 **Deprecated**
274 
275 Organization identifier (tagged ID)
276 
248277### Example
249278 
250```http
279```bash
251280curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID \
252281 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
253282```
254283 
255#### Response
284#### Response (200)
256285 
257286```json
258287{
from line 306
277306 
278307## Delete project
279308 
280**delete** `/v1/compliance/apps/projects/{project_id}`
309**DELETE** `/v1/compliance/apps/projects/{project_id}`
281310 
282311Delete a project for compliance purposes.
283312 
from line 319
290319 
291320Project must have no attached chats - returns 409 if chats exist.
292321 
293### Path Parameters
322### Path parameters
294323 
295324- `project_id: string`
296325 
297326 The project ID (tagged ID, e.g., claude_proj_abc123)
298327 
299### Header Parameters
328### Headers
300329 
301330- `"x-api-key": optional string`
302331 
from line 339
310339 
311340 Constant string confirming deletion.
312341 
313 - `"claude_project_deleted"`
342 default: claude_project_deleted
314343 
315344### Example
316345 
317```http
346```bash
318347curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID \
319348 -X DELETE \
320349 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
321350```
322351 
323#### Response
352#### Response (200)
324353 
325354```json
326355{
from line 358
329358}
330359```
331360 
332## Domain Types
361## Domain types
333362 
334363### Project List Response
335364 
336- `ProjectListResponse object { id, created_at, deleted_at, 6 more }`
365- `ProjectListResponse object`
337366 
338367 Project information for compliance responses.
339368 
from line 374
345374 
346375 Project creation timestamp
347376 
377 format: date-time
378 
348379 - `deleted_at: string or null`
349380 
350381 Timestamp when the project was deleted by an end user, or null otherwise
351382 
383 format: date-time
384 
352385 - `is_private: boolean`
353386 
354387 If false, the project is visible to all organization members; if true the project is accessible only to the creator and specified collaborators
from line 390
357390 
358391 Project name
359392 
360 - `organization_id: string`
361 
362 Organization identifier (tagged ID)
363 
364393 - `organization_uuid: string`
365394 
366395 Organization UUID this project belongs to
from line 398
369398 
370399 Project last update timestamp
371400 
372 - `user: object { id, email_address } or null`
401 format: date-time
402 
403 - `user: object or null`
373404 
374405 The user who created a project or project document.
375406 
from line 416
385416 
386417 User's email address
387418 
419 - `organization_id: string`
420 
421 **Deprecated**
422 
423 Organization identifier (tagged ID)
424 
388425### Project Retrieve Response
389426 
390- `ProjectRetrieveResponse object { id, attachments_count, chats_count, 10 more }`
427- `ProjectRetrieveResponse object`
391428 
392429 Detailed project information for compliance responses.
393430 
from line 444
407444 
408445 Project creation timestamp
409446 
447 format: date-time
448 
410449 - `deleted_at: string or null`
411450 
412451 Timestamp when the project was deleted by an end user, or null otherwise
413452 
453 format: date-time
454 
414455 - `description: string`
415456 
416457 Project description
from line 468
427468 
428469 Project name
429470 
430 - `organization_id: string`
431 
432 Organization identifier (tagged ID)
433 
434471 - `organization_uuid: string`
435472 
436473 Organization UUID this project belongs to
from line 476
439476 
440477 Project last update timestamp
441478 
442 - `user: object { id, email_address } or null`
479 format: date-time
480 
481 - `user: object or null`
443482 
444483 The user who created a project or project document.
445484 
from line 494
455494 
456495 User's email address
457496 
497 - `organization_id: string`
498 
499 **Deprecated**
500 
501 Organization identifier (tagged ID)
502 
458503### Project Delete Response
459504 
460- `ProjectDeleteResponse object { id, type }`
505- `ProjectDeleteResponse object`
461506 
462507 Response for deleting a Claude project.
463508 
from line 514
469514 
470515 Constant string confirming deletion.
471516 
472 - `"claude_project_deleted"`
473 
474# Attachments
475 
476## List project attachments
477 
478**get** `/v1/compliance/apps/projects/{project_id}/attachments`
517 default: claude_project_deleted
518 
519## Projects › Attachments
520 
521### List project attachments
522 
523**GET** `/v1/compliance/apps/projects/{project_id}/attachments`
479524 
480525List files and documents attached to a project.
481526 
from line 533
488533The text content of attached project documents can be fetched using the
489534GET /v1/compliance/apps/projects/documents/{claude_proj_doc_id} endpoint.
490535 
491### Path Parameters
536#### Path parameters
492537 
493538- `project_id: string`
494539 
495540 The project ID (tagged ID, e.g., claude_proj_abc123)
496541 
497### Query Parameters
542#### Query parameters
498543 
499544- `limit: optional number`
500545 
501546 Maximum results (default: 20, max: 100)
502547 
548 default: 20, maximum: 100, minimum: 1
549 
503550- `page: optional string`
504551 
505552 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.
506553 
507### Header Parameters
554#### Headers
508555 
509556- `"x-api-key": optional string`
510557 
511### Returns
512 
513- `data: array of object { id, created_at, filename, 4 more } or object { id, created_at, filename, 3 more }`
558#### Returns
559 
560- `data: array of object or object`
514561 
515562 List of attachments sorted chronologically by created_at, tie break by id
516563 
517 - `ComplianceProjectFileReference object { id, created_at, filename, 4 more }`
564 - `ComplianceProjectFileReference object`
518565 
519566 File attachment reference for compliance responses.
520567 
from line 573
526573 
527574 Creation timestamp (RFC 3339 format)
528575 
576 format: date-time
577 
529578 - `filename: string`
530579 
531580 Display name of the file (e.g., 'document.pdf')
from line 595
546595 
547596 Discriminator marking this as a binary file
548597 
549 - `"project_file"`
550 
551 - `ComplianceProjectDocReference object { id, created_at, filename, 3 more }`
598 default: project_file
599 
600 - `ComplianceProjectDocReference object`
552601 
553602 Project document attachment reference for compliance responses.
554603 
from line 609
560609 
561610 Creation timestamp (RFC 3339 format)
562611 
612 format: date-time
613 
563614 - `filename: string`
564615 
565616 Display name of the document (e.g., 'document.txt')
from line 619
568619 
569620 MIME type of the project document, always set to plain text
570621 
571 - `"text/plain"`
622 default: text/plain
572623 
573624 - `type: "project_doc"`
574625 
575626 Discriminator marking this as a plain text document
576627 
577 - `"project_doc"`
628 default: project_doc
578629 
579630 - `updated_at: string or null`
580631 
581632 Last-modified timestamp of the document. Reserved for future use — currently always null.
582633 
634 format: date-time
635 
583636- `has_more: boolean`
584637 
585638 Whether more records exist beyond the current result set
from line 641
588641 
589642 To get the next page, use the 'next_page' from the current response as the 'page' in your next request
590643 
591### Example
592 
593```http
644#### Example
645 
646```bash
594647curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID/attachments \
595648 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
596649```
597650 
598#### Response
651##### Response (200)
599652 
600653```json
601654{
from line 668
615668}
616669```
617670 
618## Domain Types
619 
620### Attachment List Response
621 
622- `AttachmentListResponse = object { id, created_at, filename, 4 more } or object { id, created_at, filename, 3 more }`
623 
624 File attachment reference for compliance responses.
625 
626 - `ComplianceProjectFileReference object { id, created_at, filename, 4 more }`
627 
628 File attachment reference for compliance responses.
629 
630 - `id: string`
631 
632 File identifier (e.g., 'claude_file_abcd')
633 
634 - `created_at: string`
635 
636 Creation timestamp (RFC 3339 format)
637 
638 - `filename: string`
639 
640 Display name of the file (e.g., 'document.pdf')
641 
642 - `md5: string or null`
643 
644 Lowercase hex MD5 of the file's preferred downloadable variant, when recorded. Null otherwise. Use the per-file `/metadata` endpoint for the authoritative value.
645 
646 - `mime_type: string`
647 
648 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.
649 
650 - `size_bytes: number or null`
651 
652 Size in bytes of the file's preferred downloadable variant, when recorded. Null otherwise. Use the per-file `/metadata` endpoint for the authoritative value.
653 
654 - `type: "project_file"`
655 
656 Discriminator marking this as a binary file
657 
658 - `"project_file"`
659 
660 - `ComplianceProjectDocReference object { id, created_at, filename, 3 more }`
661 
662 Project document attachment reference for compliance responses.
663 
664 - `id: string`
665 
666 Project document identifier (e.g., 'claude_proj_doc_abcd')
667 
668 - `created_at: string`
669 
670 Creation timestamp (RFC 3339 format)
671 
672 - `filename: string`
673 
674 Display name of the document (e.g., 'document.txt')
675 
676 - `mime_type: "text/plain"`
677 
678 MIME type of the project document, always set to plain text
679 
680 - `"text/plain"`
681 
682 - `type: "project_doc"`
683 
684 Discriminator marking this as a plain text document
685 
686 - `"project_doc"`
687 
688 - `updated_at: string or null`
689 
690 Last-modified timestamp of the document. Reserved for future use — currently always null.
691 
692# Collaborators
693 
694## List project collaborators
695 
696**get** `/v1/compliance/apps/projects/{project_id}/collaborators`
671## Projects › Collaborators
672 
673### List project collaborators
674 
675**GET** `/v1/compliance/apps/projects/{project_id}/collaborators`
697676 
698677List the users, groups, and organization-wide grants on a project.
699678 
from line 681
702681RBAC group, the whole organization, or all holders of an organization-level
703682role.
704683 
705### Path Parameters
684#### Path parameters
706685 
707686- `project_id: string`
708687 
709688 The project ID (tagged ID, e.g., claude_proj_abc123)
710689 
711### Query Parameters
690#### Query parameters
712691 
713692- `limit: optional number`
714693 
715694 Maximum results (default: 20, max: 100)
716695 
696 default: 20, maximum: 100, minimum: 1
697 
717698- `page: optional string`
718699 
719700 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.
720701 
721### Header Parameters
702#### Headers
722703 
723704- `"x-api-key": optional string`
724705 
725### Returns
726 
727- `data: array of object { granted_at, role, type, user_id } or object { granted_at, group_id, role, type } or object { granted_at, organization_uuid, role, type } or object { granted_at, organization_role, role, type }`
706#### Returns
707 
708- `data: array of object or object or object or object`
728709 
729710 List of collaborators sorted chronologically by granted_at, tie break by the underlying role-assignment UUID
730711 
731 - `ComplianceProjectUserCollaborator object { granted_at, role, type, user_id }`
712 - `ComplianceProjectUserCollaborator object`
732713 
733714 An individual user granted a role on a project.
734715 
from line 717
736717 
737718 When this collaborator was granted access (RFC 3339 format)
738719 
720 format: date-time
721 
739722 - `role: "admin" or "editor" or "owner" or "viewer"`
740723 
741724 Role granted on the project
from line 735
752735 
753736 Discriminator marking this as an individual user collaborator
754737 
755 - `"user"`
738 default: user
756739 
757740 - `user_id: string or null`
758741 
759742 Identifier of the user granted access (tagged ID), or null if their account has since been deleted
760743 
761 - `ComplianceProjectGroupCollaborator object { granted_at, group_id, role, type }`
744 - `ComplianceProjectGroupCollaborator object`
762745 
763746 An RBAC group granted a role on a project.
764747 
from line 749
766749 
767750 When this collaborator was granted access (RFC 3339 format)
768751 
752 format: date-time
753 
769754 - `group_id: string`
770755 
771756 Identifier of the group granted access (tagged ID)
from line 771
786771 
787772 Discriminator marking this as a group collaborator
788773 
789 - `"group"`
790 
791 - `ComplianceProjectOrganizationCollaborator object { granted_at, organization_uuid, role, type }`
774 default: group
775 
776 - `ComplianceProjectOrganizationCollaborator object`
792777 
793778 An entire organization granted a role on a project.
794779 
from line 781
796781 
797782 When this collaborator was granted access (RFC 3339 format)
798783 
784 format: date-time
785 
799786 - `organization_uuid: string`
800787 
801788 UUID of the organization granted access
from line 803
816803 
817804 Discriminator marking this as an organization-wide grant
818805 
819 - `"organization"`
820 
821 - `ComplianceProjectOrganizationRoleCollaborator object { granted_at, organization_role, role, type }`
806 default: organization
807 
808 - `ComplianceProjectOrganizationRoleCollaborator object`
822809 
823810 All holders of an organization-level role granted a role on a project.
824811 
from line 813
826813 
827814 When this collaborator was granted access (RFC 3339 format)
828815 
816 format: date-time
817 
829818 - `organization_role: string`
830819 
831820 The organization-level role whose holders are granted access
from line 835
846835 
847836 Discriminator marking this as a grant to all organization members holding a specific org-level role
848837 
849 - `"organization_role"`
838 default: organization_role
850839 
851840- `has_more: boolean`
852841 
from line 845
856845 
857846 To get the next page, use the 'next_page' from the current response as the 'page' in your next request
858847 
859### Example
860 
861```http
848#### Example
849 
850```bash
862851curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID/collaborators \
863852 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
864853```
865854 
866#### Response
855##### Response (200)
867856 
868857```json
869858{
from line 869
880869}
881870```
882871 
883## Domain Types
884 
885### Collaborator List Response
886 
887- `CollaboratorListResponse = object { granted_at, role, type, user_id } or object { granted_at, group_id, role, type } or object { granted_at, organization_uuid, role, type } or object { granted_at, organization_role, role, type }`
888 
889 An individual user granted a role on a project.
890 
891 - `ComplianceProjectUserCollaborator object { granted_at, role, type, user_id }`
892 
893 An individual user granted a role on a project.
894 
895 - `granted_at: string`
896 
897 When this collaborator was granted access (RFC 3339 format)
898 
899 - `role: "admin" or "editor" or "owner" or "viewer"`
900 
901 Role granted on the project
902 
903 - `"admin"`
904 
905 - `"editor"`
906 
907 - `"owner"`
908 
909 - `"viewer"`
910 
911 - `type: "user"`
912 
913 Discriminator marking this as an individual user collaborator
914 
915 - `"user"`
916 
917 - `user_id: string or null`
918 
919 Identifier of the user granted access (tagged ID), or null if their account has since been deleted
920 
921 - `ComplianceProjectGroupCollaborator object { granted_at, group_id, role, type }`
922 
923 An RBAC group granted a role on a project.
924 
925 - `granted_at: string`
926 
927 When this collaborator was granted access (RFC 3339 format)
928 
929 - `group_id: string`
930 
931 Identifier of the group granted access (tagged ID)
932 
933 - `role: "admin" or "editor" or "owner" or "viewer"`
934 
935 Role granted on the project
936 
937 - `"admin"`
938 
939 - `"editor"`
940 
941 - `"owner"`
942 
943 - `"viewer"`
944 
945 - `type: "group"`
946 
947 Discriminator marking this as a group collaborator
948 
949 - `"group"`
950 
951 - `ComplianceProjectOrganizationCollaborator object { granted_at, organization_uuid, role, type }`
952 
953 An entire organization granted a role on a project.
954 
955 - `granted_at: string`
956 
957 When this collaborator was granted access (RFC 3339 format)
958 
959 - `organization_uuid: string`
960 
961 UUID of the organization granted access
962 
963 - `role: "admin" or "editor" or "owner" or "viewer"`
964 
965 Role granted on the project
966 
967 - `"admin"`
968 
969 - `"editor"`
970 
971 - `"owner"`
972 
973 - `"viewer"`
974 
975 - `type: "organization"`
976 
977 Discriminator marking this as an organization-wide grant
978 
979 - `"organization"`
980 
981 - `ComplianceProjectOrganizationRoleCollaborator object { granted_at, organization_role, role, type }`
982 
983 All holders of an organization-level role granted a role on a project.
984 
985 - `granted_at: string`
986 
987 When this collaborator was granted access (RFC 3339 format)
988 
989 - `organization_role: string`
990 
991 The organization-level role whose holders are granted access
992 
993 - `role: "admin" or "editor" or "owner" or "viewer"`
994 
995 Role granted on the project
996 
997 - `"admin"`
998 
999 - `"editor"`
1000 
1001 - `"owner"`
1002 
1003 - `"viewer"`
1004 
1005 - `type: "organization_role"`
1006 
1007 Discriminator marking this as a grant to all organization members holding a specific org-level role
1008 
1009 - `"organization_role"`
1010 
1011# Documents
1012 
1013## Get project document content
1014 
1015**get** `/v1/compliance/apps/projects/documents/{document_id}`
872## Projects › Documents
873 
874### Get project document content
875 
876**GET** `/v1/compliance/apps/projects/documents/{document_id}`
1016877 
1017878Get detailed information for a specific project document.
1018879 
1019### Path Parameters
880#### Path parameters
1020881 
1021882- `document_id: string`
1022883 
1023884 The document ID (tagged ID, e.g., claude_proj_doc_abc123)
1024885 
1025### Header Parameters
886#### Headers
1026887 
1027888- `"x-api-key": optional string`
1028889 
1029### Returns
890#### Returns
1030891 
1031892- `id: string`
1032893 
from line 901
1040901 
1041902 Document creation timestamp
1042903 
904 format: date-time
905 
1043906- `filename: string`
1044907 
1045908 Document filename
1046909 
1047- `user: object { id, email_address } or null`
910- `user: object or null`
1048911 
1049912 The user who created a project or project document.
1050913 
from line 923
1060923 
1061924 User's email address
1062925 
1063### Example
1064 
1065```http
926#### Example
927 
928```bash
1066929curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID \
1067930 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
1068931```
1069932 
1070#### Response
933##### Response (200)
1071934 
1072935```json
1073936{
from line 945
1082945}
1083946```
1084947 
1085## Get project document metadata
1086 
1087**get** `/v1/compliance/apps/projects/documents/{document_id}/metadata`
948### Get project document metadata
949 
950**GET** `/v1/compliance/apps/projects/documents/{document_id}/metadata`
1088951 
1089952Returns metadata for a project document, without the content body.
1090953 
from line 956
1093956fields here are computed over the UTF-8 encoding of that text, so a DLP
1094957consumer can dedupe or match hashes without downloading every document.
1095958 
1096### Path Parameters
959#### Path parameters
1097960 
1098961- `document_id: string`
1099962 
1100963 The document ID (tagged ID, e.g., claude_proj_doc_abc123)
1101964 
1102### Header Parameters
965#### Headers
1103966 
1104967- `"x-api-key": optional string`
1105968 
1106### Returns
969#### Returns
1107970 
1108971- `id: string`
1109972 
from line 980
1117980 
1118981 Document creation timestamp
1119982 
983 format: date-time
984 
1120985- `filename: string`
1121986 
1122987 Document filename
from line 994
1129994 
1130995 MIME type of the document content, always plain text
1131996 
1132 - `"text/plain"`
997 default: text/plain
1133998 
1134999- `size_bytes: number`
11351000 
11361001 Size in bytes of the document content (UTF-8 encoded)
11371002 
1138- `user: object { id, email_address } or null`
1003- `user: object or null`
11391004 
11401005 The user who created a project or project document.
11411006 
from line 1016
11511016 
11521017 User's email address
11531018 
1154### Example
1155 
1156```http
1019#### Example
1020 
1021```bash
11571022curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID/metadata \
11581023 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
11591024```
11601025 
1161#### Response
1026##### Response (200)
11621027 
11631028```json
11641029{
from line 1041
11761041}
11771042```
11781043 
1179## Delete project document
1180 
1181**delete** `/v1/compliance/apps/projects/documents/{document_id}`
1044### Delete project document
1045 
1046**DELETE** `/v1/compliance/apps/projects/documents/{document_id}`
11821047 
11831048Delete a project document for compliance purposes.
11841049 
11851050Hard-deletes the project document permanently.
11861051 
1187### Path Parameters
1052#### Path parameters
11881053 
11891054- `document_id: string`
11901055 
11911056 The document ID (tagged ID, e.g., claude_proj_doc_abc123)
11921057 
1193### Header Parameters
1058#### Headers
11941059 
11951060- `"x-api-key": optional string`
11961061 
1197### Returns
1062#### Returns
11981063 
11991064- `id: string`
12001065 
from line 1069
12041069 
12051070 Constant string confirming deletion.
12061071 
1207 - `"claude_project_document_deleted"`
1208 
1209### Example
1210 
1211```http
1072 default: claude_project_document_deleted
1073 
1074#### Example
1075 
1076```bash
12121077curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID \
12131078 -X DELETE \
12141079 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
12151080```
12161081 
1217#### Response
1082##### Response (200)
12181083 
12191084```json
12201085{
from line 1087
12221087 "type": "claude_project_document_deleted"
12231088}
12241089```
1225 
1226## Domain Types
1227 
1228### Document Retrieve Response
1229 
1230- `DocumentRetrieveResponse object { id, content, created_at, 2 more }`
1231 
1232 Project document information for compliance responses.
1233 
1234 - `id: string`
1235 
1236 Project document identifier (tagged ID)
1237 
1238 - `content: string`
1239 
1240 Document text content
1241 
1242 - `created_at: string`
1243 
1244 Document creation timestamp
1245 
1246 - `filename: string`
1247 
1248 Document filename
1249 
1250 - `user: object { id, email_address } or null`
1251 
1252 The user who created a project or project document.
1253 
1254 Fields that reference this type are null when the creator's account has
1255 been deleted or the creator is no longer a member of an organization the
1256 key may read.
1257 
1258 - `id: string`
1259 
1260 User identifier (tagged ID)
1261 
1262 - `email_address: string`
1263 
1264 User's email address
1265 
1266### Document Metadata Response
1267 
1268- `DocumentMetadataResponse object { id, claude_project_id, created_at, 5 more }`
1269 
1270 Project document metadata for GET /v1/compliance/apps/projects/documents/{document_id}/metadata.
1271 
1272 Returns metadata only. Use the sibling endpoint (without `/metadata`)
1273 to fetch the document text content.
1274 
1275 - `id: string`
1276 
1277 Project document identifier (tagged ID)
1278 
1279 - `claude_project_id: string`
1280 
1281 The project this document belongs to
1282 
1283 - `created_at: string`
1284 
1285 Document creation timestamp
1286 
1287 - `filename: string`
1288 
1289 Document filename
1290 
1291 - `md5: string`
1292 
1293 Lowercase hex MD5 of the document content (UTF-8 encoded). Matches the `content` field returned by the sibling content endpoint.
1294 
1295 - `mime_type: "text/plain"`
1296 
1297 MIME type of the document content, always plain text
1298 
1299 - `"text/plain"`
1300 
1301 - `size_bytes: number`
1302 
1303 Size in bytes of the document content (UTF-8 encoded)
1304 
1305 - `user: object { id, email_address } or null`
1306 
1307 The user who created a project or project document.
1308 
1309 Fields that reference this type are null when the creator's account has
1310 been deleted or the creator is no longer a member of an organization the
1311 key may read.
1312 
1313 - `id: string`
1314 
1315 User identifier (tagged ID)
1316 
1317 - `email_address: string`
1318 
1319 User's email address
1320 
1321### Document Delete Response
1322 
1323- `DocumentDeleteResponse object { id, type }`
1324 
1325 Response for deleting a project document.
1326 
1327 - `id: string`
1328 
1329 The ID of the project document that was deleted
1330 
1331 - `type: "claude_project_document_deleted"`
1332 
1333 Constant string confirming deletion.
1334 
1335 - `"claude_project_document_deleted"`
13361090 

api/compliance/apps/projects/attachments Changed · +35 / -26 lines

### Path parameters ### Query parameters ### Headers #### Response (200) ## Domain types ### Path Parameters ### Query Parameters ### Header Parameters #### Response ## Domain Types

from line 1
1---
2title: Attachments
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/attachments
4---
5 
61# Attachments
72 
83## List project attachments
94 
10**get** `/v1/compliance/apps/projects/{project_id}/attachments`
5**GET** `/v1/compliance/apps/projects/{project_id}/attachments`
116 
127List files and documents attached to a project.
138 
from line 15
2015The text content of attached project documents can be fetched using the
2116GET /v1/compliance/apps/projects/documents/{claude_proj_doc_id} endpoint.
2217 
23### Path Parameters
18### Path parameters
2419 
2520- `project_id: string`
2621 
2722 The project ID (tagged ID, e.g., claude_proj_abc123)
2823 
29### Query Parameters
24### Query parameters
3025 
3126- `limit: optional number`
3227 
3328 Maximum results (default: 20, max: 100)
3429 
30 default: 20, maximum: 100, minimum: 1
31 
3532- `page: optional string`
3633 
3734 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.
3835 
39### Header Parameters
36### Headers
4037 
4138- `"x-api-key": optional string`
4239 
4340### Returns
4441 
45- `data: array of object { id, created_at, filename, 4 more } or object { id, created_at, filename, 3 more }`
42- `data: array of object or object`
4643 
4744 List of attachments sorted chronologically by created_at, tie break by id
4845 
49 - `ComplianceProjectFileReference object { id, created_at, filename, 4 more }`
46 - `ComplianceProjectFileReference object`
5047 
5148 File attachment reference for compliance responses.
5249 
from line 55
5855 
5956 Creation timestamp (RFC 3339 format)
6057 
58 format: date-time
59 
6160 - `filename: string`
6261 
6362 Display name of the file (e.g., 'document.pdf')
from line 77
7877 
7978 Discriminator marking this as a binary file
8079 
81 - `"project_file"`
80 default: project_file
8281 
83 - `ComplianceProjectDocReference object { id, created_at, filename, 3 more }`
82 - `ComplianceProjectDocReference object`
8483 
8584 Project document attachment reference for compliance responses.
8685 
from line 91
9291 
9392 Creation timestamp (RFC 3339 format)
9493 
94 format: date-time
95 
9596 - `filename: string`
9697 
9798 Display name of the document (e.g., 'document.txt')
from line 101
100101 
101102 MIME type of the project document, always set to plain text
102103 
103 - `"text/plain"`
104 default: text/plain
104105 
105106 - `type: "project_doc"`
106107 
107108 Discriminator marking this as a plain text document
108109 
109 - `"project_doc"`
110 default: project_doc
110111 
111112 - `updated_at: string or null`
112113 
113114 Last-modified timestamp of the document. Reserved for future use — currently always null.
114115 
116 format: date-time
117 
115118- `has_more: boolean`
116119 
117120 Whether more records exist beyond the current result set
from line 125
122125 
123126### Example
124127 
125```http
128```bash
126129curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID/attachments \
127130 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
128131```
129132 
130#### Response
133#### Response (200)
131134 
132135```json
133136{
from line 150
147150}
148151```
149152 
150## Domain Types
153## Domain types
151154 
152155### Attachment List Response
153156 
154- `AttachmentListResponse = object { id, created_at, filename, 4 more } or object { id, created_at, filename, 3 more }`
157- `AttachmentListResponse = object or object`
155158 
156159 File attachment reference for compliance responses.
157160 
158 - `ComplianceProjectFileReference object { id, created_at, filename, 4 more }`
161 - `ComplianceProjectFileReference object`
159162 
160163 File attachment reference for compliance responses.
161164 
from line 170
167170 
168171 Creation timestamp (RFC 3339 format)
169172 
173 format: date-time
174 
170175 - `filename: string`
171176 
172177 Display name of the file (e.g., 'document.pdf')
from line 192
187192 
188193 Discriminator marking this as a binary file
189194 
190 - `"project_file"`
195 default: project_file
191196 
192 - `ComplianceProjectDocReference object { id, created_at, filename, 3 more }`
197 - `ComplianceProjectDocReference object`
193198 
194199 Project document attachment reference for compliance responses.
195200 
from line 206
201206 
202207 Creation timestamp (RFC 3339 format)
203208 
209 format: date-time
210 
204211 - `filename: string`
205212 
206213 Display name of the document (e.g., 'document.txt')
from line 216
209216 
210217 MIME type of the project document, always set to plain text
211218 
212 - `"text/plain"`
219 default: text/plain
213220 
214221 - `type: "project_doc"`
215222 
216223 Discriminator marking this as a plain text document
217224 
218 - `"project_doc"`
225 default: project_doc
219226 
220227 - `updated_at: string or null`
221228 
222229 Last-modified timestamp of the document. Reserved for future use — currently always null.
230 
231 format: date-time
223232 

api/compliance/apps/projects/attachments/list Changed · +23 / -20 lines

# List project attachments ## Path parameters ## Query parameters ## Headers ## Returns ## Example ### Response (200) ## List project attachments ### Path Parameters ### Query Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: List project attachments
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/attachments/list
4---
1# List project attachments
52 
6## List project attachments
3**GET** `/v1/compliance/apps/projects/{project_id}/attachments`
74 
8**get** `/v1/compliance/apps/projects/{project_id}/attachments`
9 
105List files and documents attached to a project.
116 
127List files and project documents attached to the project referenced by project_id.
from line 13
1813The text content of attached project documents can be fetched using the
1914GET /v1/compliance/apps/projects/documents/{claude_proj_doc_id} endpoint.
2015 
21### Path Parameters
16## Path parameters
2217 
2318- `project_id: string`
2419 
2520 The project ID (tagged ID, e.g., claude_proj_abc123)
2621 
27### Query Parameters
22## Query parameters
2823 
2924- `limit: optional number`
3025 
3126 Maximum results (default: 20, max: 100)
3227 
28 default: 20, maximum: 100, minimum: 1
29 
3330- `page: optional string`
3431 
3532 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.
3633 
37### Header Parameters
34## Headers
3835 
3936- `"x-api-key": optional string`
4037 
41### Returns
38## Returns
4239 
43- `data: array of object { id, created_at, filename, 4 more } or object { id, created_at, filename, 3 more }`
40- `data: array of object or object`
4441 
4542 List of attachments sorted chronologically by created_at, tie break by id
4643 
47 - `ComplianceProjectFileReference object { id, created_at, filename, 4 more }`
44 - `ComplianceProjectFileReference object`
4845 
4946 File attachment reference for compliance responses.
5047 
from line 53
5653 
5754 Creation timestamp (RFC 3339 format)
5855 
56 format: date-time
57 
5958 - `filename: string`
6059 
6160 Display name of the file (e.g., 'document.pdf')
from line 75
7675 
7776 Discriminator marking this as a binary file
7877 
79 - `"project_file"`
78 default: project_file
8079 
81 - `ComplianceProjectDocReference object { id, created_at, filename, 3 more }`
80 - `ComplianceProjectDocReference object`
8281 
8382 Project document attachment reference for compliance responses.
8483 
from line 89
9089 
9190 Creation timestamp (RFC 3339 format)
9291 
92 format: date-time
93 
9394 - `filename: string`
9495 
9596 Display name of the document (e.g., 'document.txt')
from line 99
9899 
99100 MIME type of the project document, always set to plain text
100101 
101 - `"text/plain"`
102 default: text/plain
102103 
103104 - `type: "project_doc"`
104105 
105106 Discriminator marking this as a plain text document
106107 
107 - `"project_doc"`
108 default: project_doc
108109 
109110 - `updated_at: string or null`
110111 
111112 Last-modified timestamp of the document. Reserved for future use — currently always null.
112113 
114 format: date-time
115 
113116- `has_more: boolean`
114117 
115118 Whether more records exist beyond the current result set
from line 121
118121 
119122 To get the next page, use the 'next_page' from the current response as the 'page' in your next request
120123 
121### Example
124## Example
122125 
123```http
126```bash
124127curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID/attachments \
125128 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
126129```
127130 
128#### Response
131### Response (200)
129132 
130133```json
131134{

api/compliance/apps/projects/collaborators Changed · +47 / -34 lines

### Path parameters ### Query parameters ### Headers #### Response (200) ## Domain types ### Path Parameters ### Query Parameters ### Header Parameters #### Response ## Domain Types

from line 1
1---
2title: Collaborators
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/collaborators
4---
5 
61# Collaborators
72 
83## List project collaborators
94 
10**get** `/v1/compliance/apps/projects/{project_id}/collaborators`
5**GET** `/v1/compliance/apps/projects/{project_id}/collaborators`
116 
127List the users, groups, and organization-wide grants on a project.
138 
from line 11
1611RBAC group, the whole organization, or all holders of an organization-level
1712role.
1813 
19### Path Parameters
14### Path parameters
2015 
2116- `project_id: string`
2217 
2318 The project ID (tagged ID, e.g., claude_proj_abc123)
2419 
25### Query Parameters
20### Query parameters
2621 
2722- `limit: optional number`
2823 
2924 Maximum results (default: 20, max: 100)
3025 
26 default: 20, maximum: 100, minimum: 1
27 
3128- `page: optional string`
3229 
3330 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.
3431 
35### Header Parameters
32### Headers
3633 
3734- `"x-api-key": optional string`
3835 
3936### Returns
4037 
41- `data: array of object { granted_at, role, type, user_id } or object { granted_at, group_id, role, type } or object { granted_at, organization_uuid, role, type } or object { granted_at, organization_role, role, type }`
38- `data: array of object or object or object or object`
4239 
4340 List of collaborators sorted chronologically by granted_at, tie break by the underlying role-assignment UUID
4441 
45 - `ComplianceProjectUserCollaborator object { granted_at, role, type, user_id }`
42 - `ComplianceProjectUserCollaborator object`
4643 
4744 An individual user granted a role on a project.
4845 
from line 47
5047 
5148 When this collaborator was granted access (RFC 3339 format)
5249 
50 format: date-time
51 
5352 - `role: "admin" or "editor" or "owner" or "viewer"`
5453 
5554 Role granted on the project
from line 65
6665 
6766 Discriminator marking this as an individual user collaborator
6867 
69 - `"user"`
68 default: user
7069 
7170 - `user_id: string or null`
7271 
7372 Identifier of the user granted access (tagged ID), or null if their account has since been deleted
7473 
75 - `ComplianceProjectGroupCollaborator object { granted_at, group_id, role, type }`
74 - `ComplianceProjectGroupCollaborator object`
7675 
7776 An RBAC group granted a role on a project.
7877 
from line 79
8079 
8180 When this collaborator was granted access (RFC 3339 format)
8281 
82 format: date-time
83 
8384 - `group_id: string`
8485 
8586 Identifier of the group granted access (tagged ID)
from line 101
100101 
101102 Discriminator marking this as a group collaborator
102103 
103 - `"group"`
104 default: group
104105 
105 - `ComplianceProjectOrganizationCollaborator object { granted_at, organization_uuid, role, type }`
106 - `ComplianceProjectOrganizationCollaborator object`
106107 
107108 An entire organization granted a role on a project.
108109 
from line 111
110111 
111112 When this collaborator was granted access (RFC 3339 format)
112113 
114 format: date-time
115 
113116 - `organization_uuid: string`
114117 
115118 UUID of the organization granted access
from line 133
130133 
131134 Discriminator marking this as an organization-wide grant
132135 
133 - `"organization"`
136 default: organization
134137 
135 - `ComplianceProjectOrganizationRoleCollaborator object { granted_at, organization_role, role, type }`
138 - `ComplianceProjectOrganizationRoleCollaborator object`
136139 
137140 All holders of an organization-level role granted a role on a project.
138141 
from line 143
140143 
141144 When this collaborator was granted access (RFC 3339 format)
142145 
146 format: date-time
147 
143148 - `organization_role: string`
144149 
145150 The organization-level role whose holders are granted access
from line 165
160165 
161166 Discriminator marking this as a grant to all organization members holding a specific org-level role
162167 
163 - `"organization_role"`
168 default: organization_role
164169 
165170- `has_more: boolean`
166171 
from line 177
172177 
173178### Example
174179 
175```http
180```bash
176181curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID/collaborators \
177182 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
178183```
179184 
180#### Response
185#### Response (200)
181186 
182187```json
183188{
from line 199
194199}
195200```
196201 
197## Domain Types
202## Domain types
198203 
199204### Collaborator List Response
200205 
201- `CollaboratorListResponse = object { granted_at, role, type, user_id } or object { granted_at, group_id, role, type } or object { granted_at, organization_uuid, role, type } or object { granted_at, organization_role, role, type }`
206- `CollaboratorListResponse = object or object or object or object`
202207 
203208 An individual user granted a role on a project.
204209 
205 - `ComplianceProjectUserCollaborator object { granted_at, role, type, user_id }`
210 - `ComplianceProjectUserCollaborator object`
206211 
207212 An individual user granted a role on a project.
208213 
from line 215
210215 
211216 When this collaborator was granted access (RFC 3339 format)
212217 
218 format: date-time
219 
213220 - `role: "admin" or "editor" or "owner" or "viewer"`
214221 
215222 Role granted on the project
from line 233
226233 
227234 Discriminator marking this as an individual user collaborator
228235 
229 - `"user"`
236 default: user
230237 
231238 - `user_id: string or null`
232239 
233240 Identifier of the user granted access (tagged ID), or null if their account has since been deleted
234241 
235 - `ComplianceProjectGroupCollaborator object { granted_at, group_id, role, type }`
242 - `ComplianceProjectGroupCollaborator object`
236243 
237244 An RBAC group granted a role on a project.
238245 
from line 247
240247 
241248 When this collaborator was granted access (RFC 3339 format)
242249 
250 format: date-time
251 
243252 - `group_id: string`
244253 
245254 Identifier of the group granted access (tagged ID)
from line 269
260269 
261270 Discriminator marking this as a group collaborator
262271 
263 - `"group"`
272 default: group
264273 
265 - `ComplianceProjectOrganizationCollaborator object { granted_at, organization_uuid, role, type }`
274 - `ComplianceProjectOrganizationCollaborator object`
266275 
267276 An entire organization granted a role on a project.
268277 
from line 279
270279 
271280 When this collaborator was granted access (RFC 3339 format)
272281 
282 format: date-time
283 
273284 - `organization_uuid: string`
274285 
275286 UUID of the organization granted access
from line 301
290301 
291302 Discriminator marking this as an organization-wide grant
292303 
293 - `"organization"`
304 default: organization
294305 
295 - `ComplianceProjectOrganizationRoleCollaborator object { granted_at, organization_role, role, type }`
306 - `ComplianceProjectOrganizationRoleCollaborator object`
296307 
297308 All holders of an organization-level role granted a role on a project.
298309 
from line 311
300311 
301312 When this collaborator was granted access (RFC 3339 format)
302313 
314 format: date-time
315 
303316 - `organization_role: string`
304317 
305318 The organization-level role whose holders are granted access
from line 333
320333 
321334 Discriminator marking this as a grant to all organization members holding a specific org-level role
322335 
323 - `"organization_role"`
336 default: organization_role
324337 

api/compliance/apps/projects/collaborators/list Changed · +28 / -23 lines

# List project collaborators ## Path parameters ## Query parameters ## Headers ## Returns ## Example ### Response (200) ## List project collaborators ### Path Parameters ### Query Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: List project collaborators
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/collaborators/list
4---
1# List project collaborators
52 
6## List project collaborators
3**GET** `/v1/compliance/apps/projects/{project_id}/collaborators`
74 
8**get** `/v1/compliance/apps/projects/{project_id}/collaborators`
9 
105List the users, groups, and organization-wide grants on a project.
116 
127Each entry represents one active role assignment on the project. Principals
from line 9
149RBAC group, the whole organization, or all holders of an organization-level
1510role.
1611 
17### Path Parameters
12## Path parameters
1813 
1914- `project_id: string`
2015 
2116 The project ID (tagged ID, e.g., claude_proj_abc123)
2217 
23### Query Parameters
18## Query parameters
2419 
2520- `limit: optional number`
2621 
2722 Maximum results (default: 20, max: 100)
2823 
24 default: 20, maximum: 100, minimum: 1
25 
2926- `page: optional string`
3027 
3128 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.
3229 
33### Header Parameters
30## Headers
3431 
3532- `"x-api-key": optional string`
3633 
37### Returns
34## Returns
3835 
39- `data: array of object { granted_at, role, type, user_id } or object { granted_at, group_id, role, type } or object { granted_at, organization_uuid, role, type } or object { granted_at, organization_role, role, type }`
36- `data: array of object or object or object or object`
4037 
4138 List of collaborators sorted chronologically by granted_at, tie break by the underlying role-assignment UUID
4239 
43 - `ComplianceProjectUserCollaborator object { granted_at, role, type, user_id }`
40 - `ComplianceProjectUserCollaborator object`
4441 
4542 An individual user granted a role on a project.
4643 
from line 45
4845 
4946 When this collaborator was granted access (RFC 3339 format)
5047 
48 format: date-time
49 
5150 - `role: "admin" or "editor" or "owner" or "viewer"`
5251 
5352 Role granted on the project
from line 63
6463 
6564 Discriminator marking this as an individual user collaborator
6665 
67 - `"user"`
66 default: user
6867 
6968 - `user_id: string or null`
7069 
7170 Identifier of the user granted access (tagged ID), or null if their account has since been deleted
7271 
73 - `ComplianceProjectGroupCollaborator object { granted_at, group_id, role, type }`
72 - `ComplianceProjectGroupCollaborator object`
7473 
7574 An RBAC group granted a role on a project.
7675 
from line 77
7877 
7978 When this collaborator was granted access (RFC 3339 format)
8079 
80 format: date-time
81 
8182 - `group_id: string`
8283 
8384 Identifier of the group granted access (tagged ID)
from line 99
9899 
99100 Discriminator marking this as a group collaborator
100101 
101 - `"group"`
102 default: group
102103 
103 - `ComplianceProjectOrganizationCollaborator object { granted_at, organization_uuid, role, type }`
104 - `ComplianceProjectOrganizationCollaborator object`
104105 
105106 An entire organization granted a role on a project.
106107 
from line 109
108109 
109110 When this collaborator was granted access (RFC 3339 format)
110111 
112 format: date-time
113 
111114 - `organization_uuid: string`
112115 
113116 UUID of the organization granted access
from line 131
128131 
129132 Discriminator marking this as an organization-wide grant
130133 
131 - `"organization"`
134 default: organization
132135 
133 - `ComplianceProjectOrganizationRoleCollaborator object { granted_at, organization_role, role, type }`
136 - `ComplianceProjectOrganizationRoleCollaborator object`
134137 
135138 All holders of an organization-level role granted a role on a project.
136139 
from line 141
138141 
139142 When this collaborator was granted access (RFC 3339 format)
140143 
144 format: date-time
145 
141146 - `organization_role: string`
142147 
143148 The organization-level role whose holders are granted access
from line 163
158163 
159164 Discriminator marking this as a grant to all organization members holding a specific org-level role
160165 
161 - `"organization_role"`
166 default: organization_role
162167 
163168- `has_more: boolean`
164169 
from line 173
168173 
169174 To get the next page, use the 'next_page' from the current response as the 'page' in your next request
170175 
171### Example
176## Example
172177 
173```http
178```bash
174179curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID/collaborators \
175180 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
176181```
177182 
178#### Response
183### Response (200)
179184 
180185```json
181186{

api/compliance/apps/projects/delete Changed · +9 / -14 lines

# Delete project ## Path parameters ## Headers ## Returns ## Example ### Response (200) ## Delete project ### Path Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: Delete project
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/delete
4---
1# Delete project
52 
6## Delete project
3**DELETE** `/v1/compliance/apps/projects/{project_id}`
74 
8**delete** `/v1/compliance/apps/projects/{project_id}`
9 
105Delete a project for compliance purposes.
116 
127Hard-deletes the project and all its associated data including:
from line 13
1813 
1914Project must have no attached chats - returns 409 if chats exist.
2015 
21### Path Parameters
16## Path parameters
2217 
2318- `project_id: string`
2419 
2520 The project ID (tagged ID, e.g., claude_proj_abc123)
2621 
27### Header Parameters
22## Headers
2823 
2924- `"x-api-key": optional string`
3025 
31### Returns
26## Returns
3227 
3328- `id: string`
3429 
from line 33
3833 
3934 Constant string confirming deletion.
4035 
41 - `"claude_project_deleted"`
36 default: claude_project_deleted
4237 
43### Example
38## Example
4439 
45```http
40```bash
4641curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID \
4742 -X DELETE \
4843 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
4944```
5045 
51#### Response
46### Response (200)
5247 
5348```json
5449{

api/compliance/apps/projects/documents Changed · +35 / -32 lines

### Path parameters ### Headers #### Response (200) ### Path parameters ### Headers #### Response (200) ### Path parameters ### Headers #### Response (200) ## Domain types ### Path Parameters ### Header Parameters #### Response ### Path Parameters ### Header Parameters #### Response ### Path Parameters ### Header Parameters #### Response ## Domain Types

from line 1
1---
2title: Documents
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/documents
4---
5 
61# Documents
72 
83## Get project document content
94 
10**get** `/v1/compliance/apps/projects/documents/{document_id}`
5**GET** `/v1/compliance/apps/projects/documents/{document_id}`
116 
127Get detailed information for a specific project document.
138 
14### Path Parameters
9### Path parameters
1510 
1611- `document_id: string`
1712 
1813 The document ID (tagged ID, e.g., claude_proj_doc_abc123)
1914 
20### Header Parameters
15### Headers
2116 
2217- `"x-api-key": optional string`
2318 
from line 30
3530 
3631 Document creation timestamp
3732 
33 format: date-time
34 
3835- `filename: string`
3936 
4037 Document filename
4138 
42- `user: object { id, email_address } or null`
39- `user: object or null`
4340 
4441 The user who created a project or project document.
4542 
from line 54
5754 
5855### Example
5956 
60```http
57```bash
6158curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID \
6259 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
6360```
6461 
65#### Response
62#### Response (200)
6663 
6764```json
6865{
from line 76
7976 
8077## Get project document metadata
8178 
82**get** `/v1/compliance/apps/projects/documents/{document_id}/metadata`
79**GET** `/v1/compliance/apps/projects/documents/{document_id}/metadata`
8380 
8481Returns metadata for a project document, without the content body.
8582 
from line 85
8885fields here are computed over the UTF-8 encoding of that text, so a DLP
8986consumer can dedupe or match hashes without downloading every document.
9087 
91### Path Parameters
88### Path parameters
9289 
9390- `document_id: string`
9491 
9592 The document ID (tagged ID, e.g., claude_proj_doc_abc123)
9693 
97### Header Parameters
94### Headers
9895 
9996- `"x-api-key": optional string`
10097 
from line 109
112109 
113110 Document creation timestamp
114111 
112 format: date-time
113 
115114- `filename: string`
116115 
117116 Document filename
from line 123
124123 
125124 MIME type of the document content, always plain text
126125 
127 - `"text/plain"`
126 default: text/plain
128127 
129128- `size_bytes: number`
130129 
131130 Size in bytes of the document content (UTF-8 encoded)
132131 
133- `user: object { id, email_address } or null`
132- `user: object or null`
134133 
135134 The user who created a project or project document.
136135 
from line 147
148147 
149148### Example
150149 
151```http
150```bash
152151curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID/metadata \
153152 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
154153```
155154 
156#### Response
155#### Response (200)
157156 
158157```json
159158{
from line 172
173172 
174173## Delete project document
175174 
176**delete** `/v1/compliance/apps/projects/documents/{document_id}`
175**DELETE** `/v1/compliance/apps/projects/documents/{document_id}`
177176 
178177Delete a project document for compliance purposes.
179178 
180179Hard-deletes the project document permanently.
181180 
182### Path Parameters
181### Path parameters
183182 
184183- `document_id: string`
185184 
186185 The document ID (tagged ID, e.g., claude_proj_doc_abc123)
187186 
188### Header Parameters
187### Headers
189188 
190189- `"x-api-key": optional string`
191190 
from line 198
199198 
200199 Constant string confirming deletion.
201200 
202 - `"claude_project_document_deleted"`
201 default: claude_project_document_deleted
203202 
204203### Example
205204 
206```http
205```bash
207206curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID \
208207 -X DELETE \
209208 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
210209```
211210 
212#### Response
211#### Response (200)
213212 
214213```json
215214{
from line 217
218217}
219218```
220219 
221## Domain Types
220## Domain types
222221 
223222### Document Retrieve Response
224223 
225- `DocumentRetrieveResponse object { id, content, created_at, 2 more }`
224- `DocumentRetrieveResponse object`
226225 
227226 Project document information for compliance responses.
228227 
from line 237
238237 
239238 Document creation timestamp
240239 
240 format: date-time
241 
241242 - `filename: string`
242243 
243244 Document filename
244245 
245 - `user: object { id, email_address } or null`
246 - `user: object or null`
246247 
247248 The user who created a project or project document.
248249 
from line 261
260261 
261262### Document Metadata Response
262263 
263- `DocumentMetadataResponse object { id, claude_project_id, created_at, 5 more }`
264- `DocumentMetadataResponse object`
264265 
265266 Project document metadata for GET /v1/compliance/apps/projects/documents/{document_id}/metadata.
266267 
from line 280
279280 
280281 Document creation timestamp
281282 
283 format: date-time
284 
282285 - `filename: string`
283286 
284287 Document filename
from line 294
291294 
292295 MIME type of the document content, always plain text
293296 
294 - `"text/plain"`
297 default: text/plain
295298 
296299 - `size_bytes: number`
297300 
298301 Size in bytes of the document content (UTF-8 encoded)
299302 
300 - `user: object { id, email_address } or null`
303 - `user: object or null`
301304 
302305 The user who created a project or project document.
303306 
from line 318
315318 
316319### Document Delete Response
317320 
318- `DocumentDeleteResponse object { id, type }`
321- `DocumentDeleteResponse object`
319322 
320323 Response for deleting a project document.
321324 
from line 330
327330 
328331 Constant string confirming deletion.
329332 
330 - `"claude_project_document_deleted"`
333 default: claude_project_document_deleted
331334 

api/compliance/apps/projects/documents/delete Changed · +9 / -14 lines

# Delete project document ## Path parameters ## Headers ## Returns ## Example ### Response (200) ## Delete project document ### Path Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: Delete project document
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/documents/delete
4---
1# Delete project document
52 
6## Delete project document
3**DELETE** `/v1/compliance/apps/projects/documents/{document_id}`
74 
8**delete** `/v1/compliance/apps/projects/documents/{document_id}`
9 
105Delete a project document for compliance purposes.
116 
127Hard-deletes the project document permanently.
138 
14### Path Parameters
9## Path parameters
1510 
1611- `document_id: string`
1712 
1813 The document ID (tagged ID, e.g., claude_proj_doc_abc123)
1914 
20### Header Parameters
15## Headers
2116 
2217- `"x-api-key": optional string`
2318 
24### Returns
19## Returns
2520 
2621- `id: string`
2722 
from line 26
3126 
3227 Constant string confirming deletion.
3328 
34 - `"claude_project_document_deleted"`
29 default: claude_project_document_deleted
3530 
36### Example
31## Example
3732 
38```http
33```bash
3934curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID \
4035 -X DELETE \
4136 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
4237```
4338 
44#### Response
39### Response (200)
4540 
4641```json
4742{

api/compliance/apps/projects/documents/metadata Changed · +12 / -15 lines

# Get project document metadata ## Path parameters ## Headers ## Returns ## Example ### Response (200) ## Get project document metadata ### Path Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: Get project document metadata
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/documents/metadata
4---
1# Get project document metadata
52 
6## Get project document metadata
3**GET** `/v1/compliance/apps/projects/documents/{document_id}/metadata`
74 
8**get** `/v1/compliance/apps/projects/documents/{document_id}/metadata`
9 
105Returns metadata for a project document, without the content body.
116 
127Use the sibling `GET /v1/compliance/apps/projects/documents/{document_id}`
from line 9
149fields here are computed over the UTF-8 encoding of that text, so a DLP
1510consumer can dedupe or match hashes without downloading every document.
1611 
17### Path Parameters
12## Path parameters
1813 
1914- `document_id: string`
2015 
2116 The document ID (tagged ID, e.g., claude_proj_doc_abc123)
2217 
23### Header Parameters
18## Headers
2419 
2520- `"x-api-key": optional string`
2621 
27### Returns
22## Returns
2823 
2924- `id: string`
3025 
from line 33
3833 
3934 Document creation timestamp
4035 
36 format: date-time
37 
4138- `filename: string`
4239 
4340 Document filename
from line 47
5047 
5148 MIME type of the document content, always plain text
5249 
53 - `"text/plain"`
50 default: text/plain
5451 
5552- `size_bytes: number`
5653 
5754 Size in bytes of the document content (UTF-8 encoded)
5855 
59- `user: object { id, email_address } or null`
56- `user: object or null`
6057 
6158 The user who created a project or project document.
6259 
from line 69
7269 
7370 User's email address
7471 
75### Example
72## Example
7673 
77```http
74```bash
7875curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID/metadata \
7976 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
8077```
8178 
82#### Response
79### Response (200)
8380 
8481```json
8582{

api/compliance/apps/projects/documents/retrieve Changed · +11 / -14 lines

# Get project document content ## Path parameters ## Headers ## Returns ## Example ### Response (200) ## Get project document content ### Path Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: Get project document content
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/documents/retrieve
4---
1# Get project document content
52 
6## Get project document content
3**GET** `/v1/compliance/apps/projects/documents/{document_id}`
74 
8**get** `/v1/compliance/apps/projects/documents/{document_id}`
9 
105Get detailed information for a specific project document.
116 
12### Path Parameters
7## Path parameters
138 
149- `document_id: string`
1510 
1611 The document ID (tagged ID, e.g., claude_proj_doc_abc123)
1712 
18### Header Parameters
13## Headers
1914 
2015- `"x-api-key": optional string`
2116 
22### Returns
17## Returns
2318 
2419- `id: string`
2520 
from line 28
3328 
3429 Document creation timestamp
3530 
31 format: date-time
32 
3633- `filename: string`
3734 
3835 Document filename
3936 
40- `user: object { id, email_address } or null`
37- `user: object or null`
4138 
4239 The user who created a project or project document.
4340 
from line 50
5350 
5451 User's email address
5552 
56### Example
53## Example
5754 
58```http
55```bash
5956curl https://api.anthropic.com/v1/compliance/apps/projects/documents/$DOCUMENT_ID \
6057 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
6158```
6259 
63#### Response
60### Response (200)
6461 
6562```json
6663{

api/compliance/apps/projects/list Changed · +42 / -21 lines

# List projects ## Query parameters ## Headers ## Returns ## Example ### Response (200) ## List projects ### Query Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: List projects
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/list
4---
1# List projects
52 
6## List projects
3**GET** `/v1/compliance/apps/projects`
74 
8**get** `/v1/compliance/apps/projects`
9 
105Lists project metadata with filtering capabilities. Results
116are sorted chronologically (time ascending) by created_at.
127 
13### Query Parameters
8## Query parameters
149 
15- `created_at: optional object { gt, gte, lt, lte }`
10- `created_at: optional object`
1611 
1712 - `gt: optional string`
1813 
1914 Filter projects created after this time (RFC 3339 format)
2015 
16 format: date-time
17 
2118 - `gte: optional string`
2219 
2320 Filter projects created at or after this time (RFC 3339 format)
2421 
22 format: date-time
23 
2524 - `lt: optional string`
2625 
2726 Filter projects created before this time (RFC 3339 format)
2827 
28 format: date-time
29 
2930 - `lte: optional string`
3031 
3132 Filter projects created at or before this time (RFC 3339 format)
3233 
34 format: date-time
35 
3336- `limit: optional number`
3437 
3538 Maximum results (default: 20, max: 100)
3639 
40 default: 20, maximum: 100, minimum: 1
41 
3742- `organization_ids: optional array of string`
3843 
3944 Filter by organization IDs (accepts `org_...` or organization UUID). Enumerate IDs via `GET /v1/compliance/organizations`.
from line 47
4247 
4348 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.
4449 
45- `updated_at: optional object { gt, gte, lt, lte }`
50- `updated_at: optional object`
4651 
4752 - `gt: optional string`
4853 
4954 Filter projects updated after this time (RFC 3339 format)
5055 
56 format: date-time
57 
5158 - `gte: optional string`
5259 
5360 Filter projects updated at or after this time (RFC 3339 format)
5461 
62 format: date-time
63 
5564 - `lt: optional string`
5665 
5766 Filter projects updated before this time (RFC 3339 format)
5867 
68 format: date-time
69 
5970 - `lte: optional string`
6071 
6172 Filter projects updated at or before this time (RFC 3339 format)
6273 
74 format: date-time
75 
6376- `user_ids: optional array of string`
6477 
6578 Filter by user IDs. Enumerate IDs via `GET /v1/compliance/organizations/{org_uuid}/users`.
6679 
67### Header Parameters
80## Headers
6881 
6982- `"x-api-key": optional string`
7083 
71### Returns
84## Returns
7285 
73- `data: array of object { id, created_at, deleted_at, 6 more }`
86- `data: array of object`
7487 
7588 List of projects sorted by creation date ascending
7689 
from line 95
8295 
8396 Project creation timestamp
8497 
98 format: date-time
99 
85100 - `deleted_at: string or null`
86101 
87102 Timestamp when the project was deleted by an end user, or null otherwise
88103 
104 format: date-time
105 
89106 - `is_private: boolean`
90107 
91108 If false, the project is visible to all organization members; if true the project is accessible only to the creator and specified collaborators
from line 111
94111 
95112 Project name
96113 
97 - `organization_id: string`
98 
99 Organization identifier (tagged ID)
100 
101114 - `organization_uuid: string`
102115 
103116 Organization UUID this project belongs to
from line 119
106119 
107120 Project last update timestamp
108121 
109 - `user: object { id, email_address } or null`
122 format: date-time
110123 
124 - `user: object or null`
125 
111126 The user who created a project or project document.
112127 
113128 Fields that reference this type are null when the creator's account has
from line 137
122137 
123138 User's email address
124139 
140 - `organization_id: string`
141 
142 **Deprecated**
143 
144 Organization identifier (tagged ID)
145 
125146- `has_more: boolean`
126147 
127148 Whether more records exist beyond the current result set
from line 151
130151 
131152 Token to retrieve the next page. Use this as the 'page' parameter in your next request
132153 
133### Example
154## Example
134155 
135```http
156```bash
136157curl https://api.anthropic.com/v1/compliance/apps/projects \
137158 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
138159```
139160 
140#### Response
161### Response (200)
141162 
142163```json
143164{

api/compliance/apps/projects/retrieve Changed · +21 / -18 lines

# Get project details ## Path parameters ## Headers ## Returns ## Example ### Response (200) ## Get project details ### Path Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: Get project details
3url: https://platform.claude.com/docs/en/api/compliance/apps/projects/retrieve
4---
1# Get project details
52 
6## Get project details
3**GET** `/v1/compliance/apps/projects/{project_id}`
74 
8**get** `/v1/compliance/apps/projects/{project_id}`
9 
105Get detailed information for a specific project.
116 
12### Path Parameters
7## Path parameters
138 
149- `project_id: string`
1510 
1611 The project ID (tagged ID, e.g., claude_proj_abc123)
1712 
18### Header Parameters
13## Headers
1914 
2015- `"x-api-key": optional string`
2116 
22### Returns
17## Returns
2318 
2419- `id: string`
2520 
from line 32
3732 
3833 Project creation timestamp
3934 
35 format: date-time
36 
4037- `deleted_at: string or null`
4138 
4239 Timestamp when the project was deleted by an end user, or null otherwise
4340 
41 format: date-time
42 
4443- `description: string`
4544 
4645 Project description
from line 56
5756 
5857 Project name
5958 
60- `organization_id: string`
61 
62 Organization identifier (tagged ID)
63 
6459- `organization_uuid: string`
6560 
6661 Organization UUID this project belongs to
from line 64
6964 
7065 Project last update timestamp
7166 
72- `user: object { id, email_address } or null`
67 format: date-time
7368 
69- `user: object or null`
70 
7471 The user who created a project or project document.
7572 
7673 Fields that reference this type are null when the creator's account has
from line 82
8582 
8683 User's email address
8784 
88### Example
85- `organization_id: string`
8986 
90```http
87 **Deprecated**
88 
89 Organization identifier (tagged ID)
90 
91## Example
92 
93```bash
9194curl https://api.anthropic.com/v1/compliance/apps/projects/$PROJECT_ID \
9295 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
9396```
9497 
95#### Response
98### Response (200)
9699 
97100```json
98101{

api/compliance/apps/sessions Changed · +193 / -557 lines

## Sessions › Local ### List local sessions #### Query parameters #### Headers #### Returns #### Example ##### Response (200) ### Retrieve a local session #### Path parameters #### Headers #### Returns #### Example ##### Response (200) ## Sessions › Local › Messages ### Retrieve local session messages #### Path parameters #### Query parameters #### Headers #### Returns #### Example ##### Response (200) ## Sessions › Remote ### List remote sessions #### Query parameters #### Headers #### Returns #### Example ##### Response (200) ## Sessions › Remote › Messages ### Retrieve remote session messages #### Path parameters #### Query parameters #### Headers #### Returns #### Example ##### Response (200) # Local ## List local sessions ### Query Parameters ### Header Parameters ### Returns ### Example #### Response ## Retrieve a local session ### Path Parameters ### Header Parameters ### Returns ### Example #### Response ## Domain Types ### Local List Response ### Local Retrieve Response # Messages ## Retrieve local session messages ### Path Parameters ### Query Parameters ### Header Parameters ### Returns ### Example #### Response ## Domain Types ### Message List Response # Remote ## List remote sessions ### Query Parameters ### Header Parameters ### Returns ### Example #### Response ## Domain Types ### Remote List Response # Messages ## Retrieve remote session messages ### Path Parameters ### Query Parameters ### Header Parameters ### Returns ### Example #### Response ## Domain Types ### Message List Response

The two sides of this change are more than 400 edits apart, too far apart to line up, so this is the differ's own diff of it and the words inside a line are not marked.

from line 1
1---
2title: Sessions
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions
4---
5 
61# Sessions
72 
8# Local
9 
10## List local sessions
11 
12**get** `/v1/compliance/apps/sessions/local`
3## Sessions › Local
4 
5### List local sessions
6 
7**GET** `/v1/compliance/apps/sessions/local`
138 
149List local sessions across the organizations the key may read.
1510 
1611Results are ordered by `created_at` descending. Pagination is
1712forward-only via `next_page`; there is no reverse cursor.
1813 
19### Query Parameters
20 
21- `created_at: optional object { gte, lt }`
14#### Query parameters
15 
16- `created_at: optional object`
2217 
2318 - `gte: optional string`
2419 
2520 Only return sessions whose first inference call is at or after this time (RFC 3339; a UTC offset is required).
2621 
22 format: date-time
23 
2724 - `lt: optional string`
2825 
2926 Only return sessions whose first inference call is strictly before this time (RFC 3339; a UTC offset is required).
3027 
28 format: date-time
29 
3130- `limit: optional number`
3231 
3332 Maximum results (default: 100, max: 500)
3433 
34 default: 100, maximum: 500, minimum: 1
35 
3536- `page: optional string`
3637 
3738 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.
3839 
39- `updated_at: optional object { gte }`
40- `updated_at: optional object`
4041 
4142 - `gte: optional string`
4243 
4344 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.
4445 
45### Header Parameters
46 format: date-time
47 
48#### Headers
4649 
4750- `"x-api-key": optional string`
4851 
49### Returns
50 
51- `data: array of object { id, created_at, organization_uuid, 5 more }`
52#### Returns
53 
54- `data: array of object`
5255 
5356 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.
5457 
from line 63
6063 
6164 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.
6265 
66 format: date-time
67 
6368 - `organization_uuid: string`
6469 
6570 UUID of the child organization the session belongs to
from line 75
7075 
7176 - `type: "compliance_local_session"`
7277 
73 - `"compliance_local_session"`
78 default: compliance_local_session
7479 
7580 - `updated_at: string`
7681 
7782 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.
7883 
79 - `user: object { id, email_address }`
84 format: date-time
85 
86 - `user: object`
8087 
8188 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.
8289 
from line 103
96103 
97104 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.
98105 
99### Example
100 
101```http
106#### Example
107 
108```bash
102109curl https://api.anthropic.com/v1/compliance/apps/sessions/local \
103110 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
104111```
105112 
106#### Response
113##### Response (200)
107114 
108115```json
109116{
from line 132
125132}
126133```
127134 
128## Retrieve a local session
129 
130**get** `/v1/compliance/apps/sessions/local/{local_session_id}`
135### Retrieve a local session
136 
137**GET** `/v1/compliance/apps/sessions/local/{local_session_id}`
131138 
132139Retrieve one local session.
133140 
from line 143
136143enforced when the response is served: a session whose every
137144inference call has aged out returns 404.
138145 
139### Path Parameters
146#### Path parameters
140147 
141148- `local_session_id: string`
142149 
143### Header Parameters
150#### Headers
144151 
145152- `"x-api-key": optional string`
146153 
147### Returns
154#### Returns
148155 
149156- `id: string`
150157 
from line 161
154161 
155162 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.
156163 
164 format: date-time
165 
157166- `organization_uuid: string`
158167 
159168 UUID of the child organization the session belongs to
from line 173
164173 
165174- `type: "compliance_local_session"`
166175 
167 - `"compliance_local_session"`
176 default: compliance_local_session
168177 
169178- `updated_at: string`
170179 
171180 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.
172181 
173- `user: object { id, email_address }`
182 format: date-time
183 
184- `user: object`
174185 
175186 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.
176187 
from line 197
186197 
187198 Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.
188199 
189### Example
190 
191```http
200#### Example
201 
202```bash
192203curl https://api.anthropic.com/v1/compliance/apps/sessions/local/$LOCAL_SESSION_ID \
193204 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
194205```
195206 
196#### Response
207##### Response (200)
197208 
198209```json
199210{
from line 222
211222}
212223```
213224 
214## Domain Types
215 
216### Local List Response
217 
218- `LocalListResponse object { id, created_at, organization_uuid, 5 more }`
219 
220 A Cowork or Claude Code session that a user ran on their own computer
221 while signed in with their organization account.
222 
223 - `id: string`
224 
225 Local session identifier, prefixed `clls_`. Unique within the parent organization. Treat as an opaque string; the format may change without notice.
226 
227 - `created_at: string`
228 
229 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.
230 
231 - `organization_uuid: string`
232 
233 UUID of the child organization the session belongs to
234 
235 - `product_surface: string or null`
236 
237 The product the session ran in: `cowork` for Cowork sessions in Claude Desktop, or `claude_code` for Claude Code sessions. New values appear as coverage expands; treat unrecognized values as opaque. `null` when the surface was not recorded.
238 
239 - `type: "compliance_local_session"`
240 
241 - `"compliance_local_session"`
242 
243 - `updated_at: string`
244 
245 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.
246 
247 - `user: object { id, email_address }`
248 
249 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.
250 
251 - `id: string`
252 
253 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.
254 
255 - `email_address: string or null`
256 
257 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.
258 
259 - `workspace_id: string or null`
260 
261 Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.
262 
263### Local Retrieve Response
264 
265- `LocalRetrieveResponse object { id, created_at, organization_uuid, 5 more }`
266 
267 A Cowork or Claude Code session that a user ran on their own computer
268 while signed in with their organization account.
269 
270 - `id: string`
271 
272 Local session identifier, prefixed `clls_`. Unique within the parent organization. Treat as an opaque string; the format may change without notice.
273 
274 - `created_at: string`
275 
276 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.
277 
278 - `organization_uuid: string`
279 
280 UUID of the child organization the session belongs to
281 
282 - `product_surface: string or null`
283 
284 The product the session ran in: `cowork` for Cowork sessions in Claude Desktop, or `claude_code` for Claude Code sessions. New values appear as coverage expands; treat unrecognized values as opaque. `null` when the surface was not recorded.
285 
286 - `type: "compliance_local_session"`
287 
288 - `"compliance_local_session"`
289 
290 - `updated_at: string`
291 
292 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.
293 
294 - `user: object { id, email_address }`
295 
296 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.
297 
298 - `id: string`
299 
300 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.
301 
302 - `email_address: string or null`
303 
304 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.
305 
306 - `workspace_id: string or null`
307 
308 Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.
309 
310# Messages
311 
312## Retrieve local session messages
313 
314**get** `/v1/compliance/apps/sessions/local/{local_session_id}/messages`
225## Sessions › Local › Messages
226 
227### Retrieve local session messages
228 
229**GET** `/v1/compliance/apps/sessions/local/{local_session_id}/messages`
315230 
316231Read one local session's transcript, oldest-first by default.
317232 
from line 238
323238honored for 24 hours: a cursor older than that is rejected with an
324239explicit 400; restart the walk to read under the current boundary.
325240 
326### Path Parameters
241#### Path parameters
327242 
328243- `local_session_id: string`
329244 
330### Query Parameters
245#### Query parameters
331246 
332247- `limit: optional number`
333248 
334249 Maximum results (default: 100, max: 1000)
335250 
251 default: 100, maximum: 1000, minimum: 1
252 
336253- `order: optional "asc" or "desc"`
337254 
338255 Sort direction. `asc` (oldest-first, default) or `desc`.
339256 
257 default: asc
258 
340259 - `"asc"`
341260 
342261 - `"desc"`
from line 268
349268 
350269 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.
351270 
271 default: 10000, maximum: 2147483647, minimum: -1
272 
352273- `tool_use_input_max_bytes: optional number`
353274 
354275 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.
355276 
356### Header Parameters
277 default: 10000, maximum: 2147483647, minimum: -1
278 
279#### Headers
357280 
358281- `"x-api-key": optional string`
359282 
360### Returns
361 
362- `data: array of object { id, content, created_at, 4 more }`
283#### Returns
284 
285- `data: array of object`
363286 
364287 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.
365288 
from line 290
367290 
368291 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.
369292 
370 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
293 - `content: array of object or object or object`
371294 
372295 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`.
373296 
374 - `Text object { text, truncated, type }`
297 - `Text object`
375298 
376299 Text content block.
377300 
from line 306
383306 
384307 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.
385308 
309 default: false
310 
386311 - `type: "text"`
387312 
388 - `"text"`
389 
390 - `ToolUse object { id, input, name, 2 more }`
313 default: text
314 
315 - `ToolUse object`
391316 
392317 Tool invocation requested by the assistant.
393318 
from line 332
407332 
408333 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request the server maximum.
409334 
335 default: false
336 
410337 - `type: "tool_use"`
411338 
412 - `"tool_use"`
413 
414 - `ToolResult object { content, is_error, name, 3 more }`
339 default: tool_use
340 
341 - `ToolResult object`
415342 
416343 Result returned by a tool invocation.
417344 
418 - `content: array of object { text, type }`
345 - `content: array of object`
419346 
420347 Text content returned by the tool. Non-text item types are omitted and signalled via `truncated` with an in-band item-count marker.
421348 
from line 352
425352 
426353 - `type: "text"`
427354 
428 - `"text"`
355 default: text
429356 
430357 - `is_error: boolean`
431358 
from line 370
443370 
444371 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.
445372 
373 default: false
374 
446375 - `type: "tool_result"`
447376 
448 - `"tool_result"`
377 default: tool_result
449378 
450379 - `created_at: string`
451380 
452381 When the message was recorded (RFC 3339, UTC)
453382 
383 format: date-time
384 
454385 - `model: string or null`
455386 
456387 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.
457388 
458 - `provenance: object { reason, type } or object { type } or object { type } or null`
389 - `provenance: object or object or object or null`
459390 
460391 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.
461392 
462 - `ContentUnavailable object { reason, type }`
393 - `ContentUnavailable object`
463394 
464395 The turn's content cannot be returned; `content` is empty.
465396 
from line 400
469400 
470401 - `type: "content_unavailable"`
471402 
472 - `"content_unavailable"`
473 
474 - `ClientAsserted object { type }`
403 default: content_unavailable
404 
405 - `ClientAsserted object`
475406 
476407 Assistant content the client supplied as conversation history
477408 rather than produced by Claude during this session. `content` shows
from line 412
481412 
482413 - `type: "client_asserted"`
483414 
484 - `"client_asserted"`
485 
486 - `SyntheticMarker object { type }`
415 default: client_asserted
416 
417 - `SyntheticMarker object`
487418 
488419 A transcript marker generated by the endpoint rather than sent by
489420 either party during the session. Marker messages indicate that the
from line 428
497428 
498429 - `type: "synthetic_marker"`
499430 
500 - `"synthetic_marker"`
431 default: synthetic_marker
501432 
502433 - `role: "assistant" or "user"`
503434 
from line 440
509440 
510441 - `type: "compliance_local_session_message"`
511442 
512 - `"compliance_local_session_message"`
443 default: compliance_local_session_message
513444 
514445- `next_page: string or null`
515446 
516447 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.
517448 
518- `session: object { id, created_at, organization_uuid, 5 more }`
449- `session: object`
519450 
520451 The local session the messages belong to. `user.email_address` is always null on this endpoint; the messages endpoint does not resolve email addresses.
521452 
from line 458
527458 
528459 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.
529460 
461 format: date-time
462 
530463 - `organization_uuid: string`
531464 
532465 UUID of the child organization the session belongs to
from line 470
537470 
538471 - `type: "compliance_local_session"`
539472 
540 - `"compliance_local_session"`
473 default: compliance_local_session
541474 
542475 - `updated_at: string`
543476 
544477 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.
545478 
546 - `user: object { id, email_address }`
479 format: date-time
480 
481 - `user: object`
547482 
548483 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.
549484 
from line 494
559494 
560495 Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.
561496 
562### Example
563 
564```http
497#### Example
498 
499```bash
565500curl https://api.anthropic.com/v1/compliance/apps/sessions/local/$LOCAL_SESSION_ID/messages \
566501 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
567502```
568503 
569#### Response
504##### Response (200)
570505 
571506```json
572507{
from line 542
607542}
608543```
609544 
610## Domain Types
611 
612### Message List Response
613 
614- `MessageListResponse object { id, content, created_at, 4 more }`
615 
616 A single user or assistant turn in a local session transcript.
617 
618 - `id: string`
619 
620 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.
621 
622 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
623 
624 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`.
625 
626 - `Text object { text, truncated, type }`
627 
628 Text content block.
629 
630 - `text: string`
631 
632 Text content from the user or the assistant
633 
634 - `truncated: boolean`
635 
636 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.
637 
638 - `type: "text"`
639 
640 - `"text"`
641 
642 - `ToolUse object { id, input, name, 2 more }`
643 
644 Tool invocation requested by the assistant.
645 
646 - `id: string or null`
647 
648 Tool-use ID, e.g. 'toolu_01AbC...'
649 
650 - `input: string`
651 
652 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.
653 
654 - `name: string`
655 
656 Name of the tool invoked
657 
658 - `truncated: boolean`
659 
660 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request the server maximum.
661 
662 - `type: "tool_use"`
663 
664 - `"tool_use"`
665 
666 - `ToolResult object { content, is_error, name, 3 more }`
667 
668 Result returned by a tool invocation.
669 
670 - `content: array of object { text, type }`
671 
672 Text content returned by the tool. Non-text item types are omitted and signalled via `truncated` with an in-band item-count marker.
673 
674 - `text: string`
675 
676 Text returned by the tool
677 
678 - `type: "text"`
679 
680 - `"text"`
681 
682 - `is_error: boolean`
683 
684 True when the tool reported an error
685 
686 - `name: string`
687 
688 Name of the tool that produced this result
689 
690 - `tool_use_id: string or null`
691 
692 ID of the tool_use block this result responds to
693 
694 - `truncated: boolean`
695 
696 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.
697 
698 - `type: "tool_result"`
699 
700 - `"tool_result"`
701 
702 - `created_at: string`
703 
704 When the message was recorded (RFC 3339, UTC)
705 
706 - `model: string or null`
707 
708 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.
709 
710 - `provenance: object { reason, type } or object { type } or object { type } or null`
711 
712 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.
713 
714 - `ContentUnavailable object { reason, type }`
715 
716 The turn's content cannot be returned; `content` is empty.
717 
718 - `reason: string`
719 
720 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.
721 
722 - `type: "content_unavailable"`
723 
724 - `"content_unavailable"`
725 
726 - `ClientAsserted object { type }`
727 
728 Assistant content the client supplied as conversation history
729 rather than produced by Claude during this session. `content` shows
730 what the model received but its authorship is not verified; this can
731 result from normal request or client processing, not only client
732 modification. Never on user-role messages.
733 
734 - `type: "client_asserted"`
735 
736 - `"client_asserted"`
737 
738 - `SyntheticMarker object { type }`
739 
740 A transcript marker generated by the endpoint rather than sent by
741 either party during the session. Marker messages indicate that the
742 prompt history diverged from what was captured, that the request's
743 `system` field was present but is not shown, or that
744 prompt-carried history was suppressed because the session spans the
745 child organization's retention boundary and those turns cannot be
746 placed against it (the marker's text names the cause). Markers that
747 report a mismatch with captured history can result from normal request
748 or client processing, not only client modification.
749 
750 - `type: "synthetic_marker"`
751 
752 - `"synthetic_marker"`
753 
754 - `role: "assistant" or "user"`
755 
756 Message sender (`user` or `assistant`)
757 
758 - `"assistant"`
759 
760 - `"user"`
761 
762 - `type: "compliance_local_session_message"`
763 
764 - `"compliance_local_session_message"`
765 
766# Remote
767 
768## List remote sessions
769 
770**get** `/v1/compliance/apps/sessions/remote`
545## Sessions › Remote
546 
547### List remote sessions
548 
549**GET** `/v1/compliance/apps/sessions/remote`
771550 
772551List remote sessions (Cowork sessions that run in Anthropic-managed
773552cloud environments) across the organizations the key may read.
from line 566
787566forward-only: pass the response's `next_page` value back as `page` to
788567retrieve the next page, and stop when `next_page` is null.
789568 
790### Query Parameters
791 
792- `created_at: optional object { gt, gte, lt, lte }`
569#### Query parameters
570 
571- `created_at: optional object`
793572 
794573 - `gt: optional string`
795574 
796575 Filter remote sessions created after this time (RFC 3339 format)
797576 
577 format: date-time
578 
798579 - `gte: optional string`
799580 
800581 Filter remote sessions created at or after this time (RFC 3339 format)
801582 
583 format: date-time
584 
802585 - `lt: optional string`
803586 
804587 Filter remote sessions created before this time (RFC 3339 format)
805588 
589 format: date-time
590 
806591 - `lte: optional string`
807592 
808593 Filter remote sessions created at or before this time (RFC 3339 format)
809594 
595 format: date-time
596 
810597- `limit: optional number`
811598 
812599 Maximum results (default: 100, max: 500)
813600 
601 default: 100, maximum: 500, minimum: 1
602 
814603- `organization_ids: optional array of string`
815604 
816605 Filter to specific child organization identifiers. Omit to enumerate every child organization the key may read.
817606 
607 maxItems: 500
608 
818609- `page: optional string`
819610 
820611 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.
from line 614
823614 
824615 Filter to sessions owned by specific users (max 10 per request). Agent-owned sessions are excluded when this filter is set.
825616 
826### Header Parameters
617 maxItems: 10
618 
619#### Headers
827620 
828621- `"x-api-key": optional string`
829622 
830### Returns
831 
832- `data: array of object { id, agent_id, claude_project_id, 7 more }`
623#### Returns
624 
625- `data: array of object`
833626 
834627 - `id: string`
835628 
from line 640
847640 
848641 When the session was created (RFC 3339, UTC)
849642 
643 format: date-time
644 
850645 - `organization_uuid: string`
851646 
852647 UUID of the organization the session belongs to
from line 650
855650 
856651 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.
857652 
858 - `started_by_user: object { id, email_address } or null`
653 - `started_by_user: object or null`
859654 
860655 A user associated with a remote session.
861656 
from line 670
875670 
876671 When the session was last modified (RFC 3339, UTC)
877672 
878 - `user: object { id, email_address } or null`
673 format: date-time
674 
675 - `user: object or null`
879676 
880677 A user associated with a remote session.
881678 
from line 688
891688 
892689 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.
893690 
894### Example
895 
896```http
691#### Example
692 
693```bash
897694curl https://api.anthropic.com/v1/compliance/apps/sessions/remote \
898695 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
899696```
900697 
901#### Response
698##### Response (200)
902699 
903700```json
904701{
from line 718
921718}
922719```
923720 
924## Domain Types
925 
926### Remote List Response
927 
928- `RemoteListResponse object { id, agent_id, claude_project_id, 7 more }`
929 
930 Metadata for one remote session, as returned in the list response
931 and in the messages response's `session` field.
932 
933 Carries session attributes only, not transcript content. Use the
934 messages endpoint to retrieve a session's transcript.
935 
936 - `id: string`
937 
938 Remote session identifier
939 
940 - `agent_id: string or null`
941 
942 Identifier of the automated agent that owns the session. Null for user-owned sessions. At most one of `user` and `agent_id` is set.
943 
944 - `claude_project_id: string or null`
945 
946 ID of the project the session is bound to. Null when the session has no project binding.
947 
948 - `created_at: string`
949 
950 When the session was created (RFC 3339, UTC)
951 
952 - `organization_uuid: string`
953 
954 UUID of the organization the session belongs to
955 
956 - `product_surface: string or null`
957 
958 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.
959 
960 - `started_by_user: object { id, email_address } or null`
961 
962 A user associated with a remote session.
963 
964 - `id: string`
965 
966 User identifier
967 
968 - `email_address: string or null`
969 
970 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.
971 
972 - `status: string`
973 
974 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.
975 
976 - `updated_at: string`
977 
978 When the session was last modified (RFC 3339, UTC)
979 
980 - `user: object { id, email_address } or null`
981 
982 A user associated with a remote session.
983 
984 - `id: string`
985 
986 User identifier
987 
988 - `email_address: string or null`
989 
990 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.
991 
992# Messages
993 
994## Retrieve remote session messages
995 
996**get** `/v1/compliance/apps/sessions/remote/{claude_remote_session_id}/messages`
721## Sessions › Remote › Messages
722 
723### Retrieve remote session messages
724 
725**GET** `/v1/compliance/apps/sessions/remote/{claude_remote_session_id}/messages`
997726 
998727Retrieve one remote session's transcript: user prompts, assistant
999728responses, and tool calls and results. Thinking blocks and images are
from line 745
1016745and for sessions outside the organizations the key may read. A
1017746malformed session identifier returns 400.
1018747 
1019### Path Parameters
748#### Path parameters
1020749 
1021750- `claude_remote_session_id: string`
1022751 
1023752 The remote session identifier (`cse_...`) to retrieve
1024753 
1025### Query Parameters
754#### Query parameters
1026755 
1027756- `limit: optional number`
1028757 
1029758 Maximum results (default: 100, max: 1000)
1030759 
760 default: 100, maximum: 1000, minimum: 1
761 
1031762- `order: optional "asc" or "desc"`
1032763 
1033764 Sort direction. `asc` (oldest-first) or `desc`.
1034765 
766 default: asc
767 
1035768 - `"asc"`
1036769 
1037770 - `"desc"`
from line 777
1044777 
1045778 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.
1046779 
780 default: 10000, maximum: 2147483647, minimum: -1
781 
1047782- `tool_use_input_max_bytes: optional number`
1048783 
1049784 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.
1050785 
1051### Header Parameters
786 default: 10000, maximum: 2147483647, minimum: -1
787 
788#### Headers
1052789 
1053790- `"x-api-key": optional string`
1054791 
1055### Returns
1056 
1057- `data: array of object { id, content, content_unavailable, 3 more }`
792#### Returns
793 
794- `data: array of object`
1058795 
1059796 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.
1060797 
from line 799
1062799 
1063800 Unique identifier for the message, e.g. `csev_abc123`
1064801 
1065 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
802 - `content: array of object or object or object`
1066803 
1067804 Content blocks within the message
1068805 
1069 - `Text object { text, truncated, type }`
806 - `Text object`
1070807 
1071808 Text content block.
1072809 
from line 815
1078815 
1079816 True when `text` exceeded the server-defined maximum (approximately 1 MiB) and was shortened.
1080817 
818 default: false
819 
1081820 - `type: "text"`
1082821 
1083 - `"text"`
1084 
1085 - `ToolUse object { id, input, name, 2 more }`
822 default: text
823 
824 - `ToolUse object`
1086825 
1087826 Tool invocation requested by the assistant.
1088827 
from line 841
1102841 
1103842 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request full content, subject to the server-side maximum.
1104843 
844 default: false
845 
1105846 - `type: "tool_use"`
1106847 
1107 - `"tool_use"`
1108 
1109 - `ToolResult object { content, is_error, name, 3 more }`
848 default: tool_use
849 
850 - `ToolResult object`
1110851 
1111852 Result returned by a tool invocation.
1112853 
1113 - `content: array of object { text, type }`
854 - `content: array of object`
1114855 
1115856 Text content returned by the tool. Non-text item types are omitted.
1116857 
from line 861
1120861 
1121862 - `type: "text"`
1122863 
1123 - `"text"`
864 default: text
1124865 
1125866 - `is_error: boolean`
1126867 
from line 879
1138879 
1139880 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.
1140881 
882 default: false
883 
1141884 - `type: "tool_result"`
1142885 
1143 - `"tool_result"`
886 default: tool_result
1144887 
1145888 - `content_unavailable: boolean`
1146889 
1147890 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'.
1148891 
892 default: false
893 
1149894 - `created_at: string`
1150895 
1151896 When the message was recorded (RFC 3339, UTC)
1152897 
898 format: date-time
899 
1153900 - `role: "assistant" or "user"`
1154901 
1155902 Message sender (`user` or `assistant`)
from line 913
1166913 
1167914 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.
1168915 
1169- `session: object { id, agent_id, claude_project_id, 7 more }`
916- `session: object`
1170917 
1171918 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.
1172919 
from line 933
1186933 
1187934 When the session was created (RFC 3339, UTC)
1188935 
936 format: date-time
937 
1189938 - `organization_uuid: string`
1190939 
1191940 UUID of the organization the session belongs to
from line 943
1194943 
1195944 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.
1196945 
1197 - `started_by_user: object { id, email_address } or null`
946 - `started_by_user: object or null`
1198947 
1199948 A user associated with a remote session.
1200949 
from line 963
1214963 
1215964 When the session was last modified (RFC 3339, UTC)
1216965 
1217 - `user: object { id, email_address } or null`
966 format: date-time
967 
968 - `user: object or null`
1218969 
1219970 A user associated with a remote session.
1220971 
from line 977
1226977 
1227978 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.
1228979 
1229### Example
1230 
1231```http
980#### Example
981 
982```bash
1232983curl https://api.anthropic.com/v1/compliance/apps/sessions/remote/$CLAUDE_REMOTE_SESSION_ID/messages \
1233984 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
1234985```
1235986 
1236#### Response
987##### Response (200)
1237988 
1238989```json
1239990{
from line 1025
12741025 }
12751026}
12761027```
1277 
1278## Domain Types
1279 
1280### Message List Response
1281 
1282- `MessageListResponse object { id, content, content_unavailable, 3 more }`
1283 
1284 A single user or assistant turn in a remote session transcript.
1285 
1286 `content` is a discriminated union of `text`, `tool_use`, and
1287 `tool_result` blocks.
1288 
1289 - `id: string`
1290 
1291 Unique identifier for the message, e.g. `csev_abc123`
1292 
1293 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
1294 
1295 Content blocks within the message
1296 
1297 - `Text object { text, truncated, type }`
1298 
1299 Text content block.
1300 
1301 - `text: string`
1302 
1303 Text content from the user or the assistant
1304 
1305 - `truncated: boolean`
1306 
1307 True when `text` exceeded the server-defined maximum (approximately 1 MiB) and was shortened.
1308 
1309 - `type: "text"`
1310 
1311 - `"text"`
1312 
1313 - `ToolUse object { id, input, name, 2 more }`
1314 
1315 Tool invocation requested by the assistant.
1316 
1317 - `id: string or null`
1318 
1319 Tool-use ID, e.g. 'toolu_01AbC...'
1320 
1321 - `input: string`
1322 
1323 Arguments passed to the tool, as a JSON-encoded string. May be shortened — see the `truncated` field
1324 
1325 - `name: string`
1326 
1327 Name of the tool invoked
1328 
1329 - `truncated: boolean`
1330 
1331 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request full content, subject to the server-side maximum.
1332 
1333 - `type: "tool_use"`
1334 
1335 - `"tool_use"`
1336 
1337 - `ToolResult object { content, is_error, name, 3 more }`
1338 
1339 Result returned by a tool invocation.
1340 
1341 - `content: array of object { text, type }`
1342 
1343 Text content returned by the tool. Non-text item types are omitted.
1344 
1345 - `text: string`
1346 
1347 Text returned by the tool
1348 
1349 - `type: "text"`
1350 
1351 - `"text"`
1352 
1353 - `is_error: boolean`
1354 
1355 True when the tool reported an error
1356 
1357 - `name: string`
1358 
1359 Name of the tool that produced this result
1360 
1361 - `tool_use_id: string or null`
1362 
1363 ID of the tool_use block this result responds to
1364 
1365 - `truncated: boolean`
1366 
1367 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.
1368 
1369 - `type: "tool_result"`
1370 
1371 - `"tool_result"`
1372 
1373 - `content_unavailable: boolean`
1374 
1375 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'.
1376 
1377 - `created_at: string`
1378 
1379 When the message was recorded (RFC 3339, UTC)
1380 
1381 - `role: "assistant" or "user"`
1382 
1383 Message sender (`user` or `assistant`)
1384 
1385 - `"assistant"`
1386 
1387 - `"user"`
1388 
1389 - `sent_by_user_id: string or null`
1390 
1391 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`.
13921028 

api/compliance/apps/sessions/local Changed · +108 / -225 lines

### Query parameters ### Headers #### Response (200) ### Path parameters ### Headers #### Response (200) ## Domain types ## Local › Messages ### Retrieve local session messages #### Path parameters #### Query parameters #### Headers #### Returns #### Example ##### Response (200) ### Query Parameters ### Header Parameters #### Response ### Path Parameters ### Header Parameters #### Response ## Domain Types # Messages ## Retrieve local session messages ### Path Parameters ### Query Parameters ### Header Parameters #### Response ## Domain Types ### Message List Response

from line 1
1---
2title: Local
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions/local
4---
5 
61# Local
72 
83## List local sessions
94 
10**get** `/v1/compliance/apps/sessions/local`
5**GET** `/v1/compliance/apps/sessions/local`
116 
127List local sessions across the organizations the key may read.
138 
from line 9
149Results are ordered by `created_at` descending. Pagination is
1510forward-only via `next_page`; there is no reverse cursor.
1611 
17### Query Parameters
12### Query parameters
1813 
19- `created_at: optional object { gte, lt }`
14- `created_at: optional object`
2015 
2116 - `gte: optional string`
2217 
2318 Only return sessions whose first inference call is at or after this time (RFC 3339; a UTC offset is required).
2419 
20 format: date-time
21 
2522 - `lt: optional string`
2623 
2724 Only return sessions whose first inference call is strictly before this time (RFC 3339; a UTC offset is required).
2825 
26 format: date-time
27 
2928- `limit: optional number`
3029 
3130 Maximum results (default: 100, max: 500)
3231 
32 default: 100, maximum: 500, minimum: 1
33 
3334- `page: optional string`
3435 
3536 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.
3637 
37- `updated_at: optional object { gte }`
38- `updated_at: optional object`
3839 
3940 - `gte: optional string`
4041 
4142 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.
4243 
43### Header Parameters
44 format: date-time
4445 
46### Headers
47 
4548- `"x-api-key": optional string`
4649 
4750### Returns
4851 
49- `data: array of object { id, created_at, organization_uuid, 5 more }`
52- `data: array of object`
5053 
5154 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.
5255 
from line 61
5861 
5962 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.
6063 
64 format: date-time
65 
6166 - `organization_uuid: string`
6267 
6368 UUID of the child organization the session belongs to
from line 73
6873 
6974 - `type: "compliance_local_session"`
7075 
71 - `"compliance_local_session"`
76 default: compliance_local_session
7277 
7378 - `updated_at: string`
7479 
7580 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.
7681 
77 - `user: object { id, email_address }`
82 format: date-time
7883 
84 - `user: object`
85 
7986 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.
8087 
8188 - `id: string`
from line 103
96103 
97104### Example
98105 
99```http
106```bash
100107curl https://api.anthropic.com/v1/compliance/apps/sessions/local \
101108 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
102109```
103110 
104#### Response
111#### Response (200)
105112 
106113```json
107114{
from line 132
125132 
126133## Retrieve a local session
127134 
128**get** `/v1/compliance/apps/sessions/local/{local_session_id}`
135**GET** `/v1/compliance/apps/sessions/local/{local_session_id}`
129136 
130137Retrieve one local session.
131138 
from line 141
134141enforced when the response is served: a session whose every
135142inference call has aged out returns 404.
136143 
137### Path Parameters
144### Path parameters
138145 
139146- `local_session_id: string`
140147 
141### Header Parameters
148### Headers
142149 
143150- `"x-api-key": optional string`
144151 
from line 159
152159 
153160 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.
154161 
162 format: date-time
163 
155164- `organization_uuid: string`
156165 
157166 UUID of the child organization the session belongs to
from line 171
162171 
163172- `type: "compliance_local_session"`
164173 
165 - `"compliance_local_session"`
174 default: compliance_local_session
166175 
167176- `updated_at: string`
168177 
169178 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.
170179 
171- `user: object { id, email_address }`
180 format: date-time
172181 
182- `user: object`
183 
173184 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.
174185 
175186 - `id: string`
from line 197
186197 
187198### Example
188199 
189```http
200```bash
190201curl https://api.anthropic.com/v1/compliance/apps/sessions/local/$LOCAL_SESSION_ID \
191202 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
192203```
193204 
194#### Response
205#### Response (200)
195206 
196207```json
197208{
from line 220
209220}
210221```
211222 
212## Domain Types
223## Domain types
213224 
214225### Local List Response
215226 
216- `LocalListResponse object { id, created_at, organization_uuid, 5 more }`
227- `LocalListResponse object`
217228 
218229 A Cowork or Claude Code session that a user ran on their own computer
219230 while signed in with their organization account.
from line 237
226237 
227238 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.
228239 
240 format: date-time
241 
229242 - `organization_uuid: string`
230243 
231244 UUID of the child organization the session belongs to
from line 249
236249 
237250 - `type: "compliance_local_session"`
238251 
239 - `"compliance_local_session"`
252 default: compliance_local_session
240253 
241254 - `updated_at: string`
242255 
243256 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.
244257 
245 - `user: object { id, email_address }`
258 format: date-time
246259 
260 - `user: object`
261 
247262 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.
248263 
249264 - `id: string`
from line 275
260275 
261276### Local Retrieve Response
262277 
263- `LocalRetrieveResponse object { id, created_at, organization_uuid, 5 more }`
278- `LocalRetrieveResponse object`
264279 
265280 A Cowork or Claude Code session that a user ran on their own computer
266281 while signed in with their organization account.
from line 288
273288 
274289 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.
275290 
291 format: date-time
292 
276293 - `organization_uuid: string`
277294 
278295 UUID of the child organization the session belongs to
from line 300
283300 
284301 - `type: "compliance_local_session"`
285302 
286 - `"compliance_local_session"`
303 default: compliance_local_session
287304 
288305 - `updated_at: string`
289306 
290307 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.
291308 
292 - `user: object { id, email_address }`
309 format: date-time
293310 
311 - `user: object`
312 
294313 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.
295314 
296315 - `id: string`
from line 324
305324 
306325 Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.
307326 
308# Messages
327## Local › Messages
309328 
310## Retrieve local session messages
329### Retrieve local session messages
311330 
312**get** `/v1/compliance/apps/sessions/local/{local_session_id}/messages`
331**GET** `/v1/compliance/apps/sessions/local/{local_session_id}/messages`
313332 
314333Read one local session's transcript, oldest-first by default.
315334 
from line 340
321340honored for 24 hours: a cursor older than that is rejected with an
322341explicit 400; restart the walk to read under the current boundary.
323342 
324### Path Parameters
343#### Path parameters
325344 
326345- `local_session_id: string`
327346 
328### Query Parameters
347#### Query parameters
329348 
330349- `limit: optional number`
331350 
332351 Maximum results (default: 100, max: 1000)
333352 
353 default: 100, maximum: 1000, minimum: 1
354 
334355- `order: optional "asc" or "desc"`
335356 
336357 Sort direction. `asc` (oldest-first, default) or `desc`.
337358 
359 default: asc
360 
338361 - `"asc"`
339362 
340363 - `"desc"`
from line 370
347370 
348371 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.
349372 
373 default: 10000, maximum: 2147483647, minimum: -1
374 
350375- `tool_use_input_max_bytes: optional number`
351376 
352377 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.
353378 
354### Header Parameters
379 default: 10000, maximum: 2147483647, minimum: -1
355380 
381#### Headers
382 
356383- `"x-api-key": optional string`
357384 
358### Returns
385#### Returns
359386 
360- `data: array of object { id, content, created_at, 4 more }`
387- `data: array of object`
361388 
362389 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.
363390 
from line 392
365392 
366393 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.
367394 
368 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
395 - `content: array of object or object or object`
369396 
370397 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`.
371398 
372 - `Text object { text, truncated, type }`
399 - `Text object`
373400 
374401 Text content block.
375402 
from line 408
381408 
382409 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.
383410 
411 default: false
412 
384413 - `type: "text"`
385414 
386 - `"text"`
415 default: text
387416 
388 - `ToolUse object { id, input, name, 2 more }`
417 - `ToolUse object`
389418 
390419 Tool invocation requested by the assistant.
391420 
from line 434
405434 
406435 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request the server maximum.
407436 
437 default: false
438 
408439 - `type: "tool_use"`
409440 
410 - `"tool_use"`
441 default: tool_use
411442 
412 - `ToolResult object { content, is_error, name, 3 more }`
443 - `ToolResult object`
413444 
414445 Result returned by a tool invocation.
415446 
416 - `content: array of object { text, type }`
447 - `content: array of object`
417448 
418449 Text content returned by the tool. Non-text item types are omitted and signalled via `truncated` with an in-band item-count marker.
419450 
from line 454
423454 
424455 - `type: "text"`
425456 
426 - `"text"`
457 default: text
427458 
428459 - `is_error: boolean`
429460 
from line 472
441472 
442473 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.
443474 
475 default: false
476 
444477 - `type: "tool_result"`
445478 
446 - `"tool_result"`
479 default: tool_result
447480 
448481 - `created_at: string`
449482 
450483 When the message was recorded (RFC 3339, UTC)
451484 
485 format: date-time
486 
452487 - `model: string or null`
453488 
454489 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.
455490 
456 - `provenance: object { reason, type } or object { type } or object { type } or null`
491 - `provenance: object or object or object or null`
457492 
458493 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.
459494 
460 - `ContentUnavailable object { reason, type }`
495 - `ContentUnavailable object`
461496 
462497 The turn's content cannot be returned; `content` is empty.
463498 
from line 502
467502 
468503 - `type: "content_unavailable"`
469504 
470 - `"content_unavailable"`
505 default: content_unavailable
471506 
472 - `ClientAsserted object { type }`
507 - `ClientAsserted object`
473508 
474509 Assistant content the client supplied as conversation history
475510 rather than produced by Claude during this session. `content` shows
from line 514
479514 
480515 - `type: "client_asserted"`
481516 
482 - `"client_asserted"`
517 default: client_asserted
483518 
484 - `SyntheticMarker object { type }`
519 - `SyntheticMarker object`
485520 
486521 A transcript marker generated by the endpoint rather than sent by
487522 either party during the session. Marker messages indicate that the
from line 530
495530 
496531 - `type: "synthetic_marker"`
497532 
498 - `"synthetic_marker"`
533 default: synthetic_marker
499534 
500535 - `role: "assistant" or "user"`
501536 
from line 542
507542 
508543 - `type: "compliance_local_session_message"`
509544 
510 - `"compliance_local_session_message"`
545 default: compliance_local_session_message
511546 
512547- `next_page: string or null`
513548 
514549 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.
515550 
516- `session: object { id, created_at, organization_uuid, 5 more }`
551- `session: object`
517552 
518553 The local session the messages belong to. `user.email_address` is always null on this endpoint; the messages endpoint does not resolve email addresses.
519554 
from line 560
525560 
526561 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.
527562 
563 format: date-time
564 
528565 - `organization_uuid: string`
529566 
530567 UUID of the child organization the session belongs to
from line 572
535572 
536573 - `type: "compliance_local_session"`
537574 
538 - `"compliance_local_session"`
575 default: compliance_local_session
539576 
540577 - `updated_at: string`
541578 
542579 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.
543580 
544 - `user: object { id, email_address }`
581 format: date-time
545582 
583 - `user: object`
584 
546585 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.
547586 
548587 - `id: string`
from line 596
557596 
558597 Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.
559598 
560### Example
599#### Example
561600 
562```http
601```bash
563602curl https://api.anthropic.com/v1/compliance/apps/sessions/local/$LOCAL_SESSION_ID/messages \
564603 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
565604```
566605 
567#### Response
606##### Response (200)
568607 
569608```json
570609{
from line 643
604643 }
605644}
606645```
607 
608## Domain Types
609 
610### Message List Response
611 
612- `MessageListResponse object { id, content, created_at, 4 more }`
613 
614 A single user or assistant turn in a local session transcript.
615 
616 - `id: string`
617 
618 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.
619 
620 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
621 
622 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`.
623 
624 - `Text object { text, truncated, type }`
625 
626 Text content block.
627 
628 - `text: string`
629 
630 Text content from the user or the assistant
631 
632 - `truncated: boolean`
633 
634 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.
635 
636 - `type: "text"`
637 
638 - `"text"`
639 
640 - `ToolUse object { id, input, name, 2 more }`
641 
642 Tool invocation requested by the assistant.
643 
644 - `id: string or null`
645 
646 Tool-use ID, e.g. 'toolu_01AbC...'
647 
648 - `input: string`
649 
650 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.
651 
652 - `name: string`
653 
654 Name of the tool invoked
655 
656 - `truncated: boolean`
657 
658 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request the server maximum.
659 
660 - `type: "tool_use"`
661 
662 - `"tool_use"`
663 
664 - `ToolResult object { content, is_error, name, 3 more }`
665 
666 Result returned by a tool invocation.
667 
668 - `content: array of object { text, type }`
669 
670 Text content returned by the tool. Non-text item types are omitted and signalled via `truncated` with an in-band item-count marker.
671 
672 - `text: string`
673 
674 Text returned by the tool
675 
676 - `type: "text"`
677 
678 - `"text"`
679 
680 - `is_error: boolean`
681 
682 True when the tool reported an error
683 
684 - `name: string`
685 
686 Name of the tool that produced this result
687 
688 - `tool_use_id: string or null`
689 
690 ID of the tool_use block this result responds to
691 
692 - `truncated: boolean`
693 
694 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.
695 
696 - `type: "tool_result"`
697 
698 - `"tool_result"`
699 
700 - `created_at: string`
701 
702 When the message was recorded (RFC 3339, UTC)
703 
704 - `model: string or null`
705 
706 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.
707 
708 - `provenance: object { reason, type } or object { type } or object { type } or null`
709 
710 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.
711 
712 - `ContentUnavailable object { reason, type }`
713 
714 The turn's content cannot be returned; `content` is empty.
715 
716 - `reason: string`
717 
718 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.
719 
720 - `type: "content_unavailable"`
721 
722 - `"content_unavailable"`
723 
724 - `ClientAsserted object { type }`
725 
726 Assistant content the client supplied as conversation history
727 rather than produced by Claude during this session. `content` shows
728 what the model received but its authorship is not verified; this can
729 result from normal request or client processing, not only client
730 modification. Never on user-role messages.
731 
732 - `type: "client_asserted"`
733 
734 - `"client_asserted"`
735 
736 - `SyntheticMarker object { type }`
737 
738 A transcript marker generated by the endpoint rather than sent by
739 either party during the session. Marker messages indicate that the
740 prompt history diverged from what was captured, that the request's
741 `system` field was present but is not shown, or that
742 prompt-carried history was suppressed because the session spans the
743 child organization's retention boundary and those turns cannot be
744 placed against it (the marker's text names the cause). Markers that
745 report a mismatch with captured history can result from normal request
746 or client processing, not only client modification.
747 
748 - `type: "synthetic_marker"`
749 
750 - `"synthetic_marker"`
751 
752 - `role: "assistant" or "user"`
753 
754 Message sender (`user` or `assistant`)
755 
756 - `"assistant"`
757 
758 - `"user"`
759 
760 - `type: "compliance_local_session_message"`
761 
762 - `"compliance_local_session_message"`
763646 

api/compliance/apps/sessions/local/list Changed · +25 / -18 lines

# List local sessions ## Query parameters ## Headers ## Returns ## Example ### Response (200) ## List local sessions ### Query Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: List local sessions
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions/local/list
4---
1# List local sessions
52 
6## List local sessions
3**GET** `/v1/compliance/apps/sessions/local`
74 
8**get** `/v1/compliance/apps/sessions/local`
9 
105List local sessions across the organizations the key may read.
116 
127Results are ordered by `created_at` descending. Pagination is
138forward-only via `next_page`; there is no reverse cursor.
149 
15### Query Parameters
10## Query parameters
1611 
17- `created_at: optional object { gte, lt }`
12- `created_at: optional object`
1813 
1914 - `gte: optional string`
2015 
2116 Only return sessions whose first inference call is at or after this time (RFC 3339; a UTC offset is required).
2217 
18 format: date-time
19 
2320 - `lt: optional string`
2421 
2522 Only return sessions whose first inference call is strictly before this time (RFC 3339; a UTC offset is required).
2623 
24 format: date-time
25 
2726- `limit: optional number`
2827 
2928 Maximum results (default: 100, max: 500)
3029 
30 default: 100, maximum: 500, minimum: 1
31 
3132- `page: optional string`
3233 
3334 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.
3435 
35- `updated_at: optional object { gte }`
36- `updated_at: optional object`
3637 
3738 - `gte: optional string`
3839 
3940 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.
4041 
41### Header Parameters
42 format: date-time
4243 
44## Headers
45 
4346- `"x-api-key": optional string`
4447 
45### Returns
48## Returns
4649 
47- `data: array of object { id, created_at, organization_uuid, 5 more }`
50- `data: array of object`
4851 
4952 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.
5053 
from line 59
5659 
5760 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.
5861 
62 format: date-time
63 
5964 - `organization_uuid: string`
6065 
6166 UUID of the child organization the session belongs to
from line 71
6671 
6772 - `type: "compliance_local_session"`
6873 
69 - `"compliance_local_session"`
74 default: compliance_local_session
7075 
7176 - `updated_at: string`
7277 
7378 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.
7479 
75 - `user: object { id, email_address }`
80 format: date-time
7681 
82 - `user: object`
83 
7784 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.
7885 
7986 - `id: string`
from line 99
9299 
93100 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.
94101 
95### Example
102## Example
96103 
97```http
104```bash
98105curl https://api.anthropic.com/v1/compliance/apps/sessions/local \
99106 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
100107```
101108 
102#### Response
109### Response (200)
103110 
104111```json
105112{

api/compliance/apps/sessions/local/messages Changed · +82 / -59 lines

### Path parameters ### Query parameters ### Headers #### Response (200) ## Domain types ### Path Parameters ### Query Parameters ### Header Parameters #### Response ## Domain Types

from line 1
1---
2title: Messages
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions/local/messages
4---
5 
61# Messages
72 
83## Retrieve local session messages
94 
10**get** `/v1/compliance/apps/sessions/local/{local_session_id}/messages`
5**GET** `/v1/compliance/apps/sessions/local/{local_session_id}/messages`
116 
127Read one local session's transcript, oldest-first by default.
138 
from line 14
1914honored for 24 hours: a cursor older than that is rejected with an
2015explicit 400; restart the walk to read under the current boundary.
2116 
22### Path Parameters
17### Path parameters
2318 
2419- `local_session_id: string`
2520 
26### Query Parameters
21### Query parameters
2722 
2823- `limit: optional number`
2924 
3025 Maximum results (default: 100, max: 1000)
3126 
27 default: 100, maximum: 1000, minimum: 1
28 
3229- `order: optional "asc" or "desc"`
3330 
3431 Sort direction. `asc` (oldest-first, default) or `desc`.
3532 
33 default: asc
34 
3635 - `"asc"`
3736 
3837 - `"desc"`
from line 44
4544 
4645 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.
4746 
47 default: 10000, maximum: 2147483647, minimum: -1
48 
4849- `tool_use_input_max_bytes: optional number`
4950 
5051 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.
5152 
52### Header Parameters
53 default: 10000, maximum: 2147483647, minimum: -1
5354 
55### Headers
56 
5457- `"x-api-key": optional string`
5558 
5659### Returns
5760 
58- `data: array of object { id, content, created_at, 4 more }`
61- `data: array of object`
5962 
6063 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.
6164 
from line 66
6366 
6467 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.
6568 
66 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
69 - `content: array of object or object or object`
6770 
6871 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`.
6972 
70 - `Text object { text, truncated, type }`
73 - `Text object`
7174 
7275 Text content block.
7376 
from line 82
7982 
8083 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.
8184 
85 default: false
86 
8287 - `type: "text"`
8388 
84 - `"text"`
89 default: text
8590 
86 - `ToolUse object { id, input, name, 2 more }`
91 - `ToolUse object`
8792 
8893 Tool invocation requested by the assistant.
8994 
from line 108
103108 
104109 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request the server maximum.
105110 
111 default: false
112 
106113 - `type: "tool_use"`
107114 
108 - `"tool_use"`
115 default: tool_use
109116 
110 - `ToolResult object { content, is_error, name, 3 more }`
117 - `ToolResult object`
111118 
112119 Result returned by a tool invocation.
113120 
114 - `content: array of object { text, type }`
121 - `content: array of object`
115122 
116123 Text content returned by the tool. Non-text item types are omitted and signalled via `truncated` with an in-band item-count marker.
117124 
from line 128
121128 
122129 - `type: "text"`
123130 
124 - `"text"`
131 default: text
125132 
126133 - `is_error: boolean`
127134 
from line 146
139146 
140147 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.
141148 
149 default: false
150 
142151 - `type: "tool_result"`
143152 
144 - `"tool_result"`
153 default: tool_result
145154 
146155 - `created_at: string`
147156 
148157 When the message was recorded (RFC 3339, UTC)
149158 
159 format: date-time
160 
150161 - `model: string or null`
151162 
152163 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.
153164 
154 - `provenance: object { reason, type } or object { type } or object { type } or null`
165 - `provenance: object or object or object or null`
155166 
156167 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.
157168 
158 - `ContentUnavailable object { reason, type }`
169 - `ContentUnavailable object`
159170 
160171 The turn's content cannot be returned; `content` is empty.
161172 
from line 176
165176 
166177 - `type: "content_unavailable"`
167178 
168 - `"content_unavailable"`
179 default: content_unavailable
169180 
170 - `ClientAsserted object { type }`
181 - `ClientAsserted object`
171182 
172183 Assistant content the client supplied as conversation history
173184 rather than produced by Claude during this session. `content` shows
from line 188
177188 
178189 - `type: "client_asserted"`
179190 
180 - `"client_asserted"`
191 default: client_asserted
181192 
182 - `SyntheticMarker object { type }`
193 - `SyntheticMarker object`
183194 
184195 A transcript marker generated by the endpoint rather than sent by
185196 either party during the session. Marker messages indicate that the
from line 204
193204 
194205 - `type: "synthetic_marker"`
195206 
196 - `"synthetic_marker"`
207 default: synthetic_marker
197208 
198209 - `role: "assistant" or "user"`
199210 
from line 216
205216 
206217 - `type: "compliance_local_session_message"`
207218 
208 - `"compliance_local_session_message"`
219 default: compliance_local_session_message
209220 
210221- `next_page: string or null`
211222 
212223 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.
213224 
214- `session: object { id, created_at, organization_uuid, 5 more }`
225- `session: object`
215226 
216227 The local session the messages belong to. `user.email_address` is always null on this endpoint; the messages endpoint does not resolve email addresses.
217228 
from line 234
223234 
224235 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.
225236 
237 format: date-time
238 
226239 - `organization_uuid: string`
227240 
228241 UUID of the child organization the session belongs to
from line 246
233246 
234247 - `type: "compliance_local_session"`
235248 
236 - `"compliance_local_session"`
249 default: compliance_local_session
237250 
238251 - `updated_at: string`
239252 
240253 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.
241254 
242 - `user: object { id, email_address }`
255 format: date-time
243256 
257 - `user: object`
258 
244259 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.
245260 
246261 - `id: string`
from line 272
257272 
258273### Example
259274 
260```http
275```bash
261276curl https://api.anthropic.com/v1/compliance/apps/sessions/local/$LOCAL_SESSION_ID/messages \
262277 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
263278```
264279 
265#### Response
280#### Response (200)
266281 
267282```json
268283{
from line 318
303318}
304319```
305320 
306## Domain Types
321## Domain types
307322 
308323### Message List Response
309324 
310- `MessageListResponse object { id, content, created_at, 4 more }`
325- `MessageListResponse object`
311326 
312327 A single user or assistant turn in a local session transcript.
313328 
from line 330
315330 
316331 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.
317332 
318 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
333 - `content: array of object or object or object`
319334 
320335 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`.
321336 
322 - `Text object { text, truncated, type }`
337 - `Text object`
323338 
324339 Text content block.
325340 
from line 346
331346 
332347 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.
333348 
349 default: false
350 
334351 - `type: "text"`
335352 
336 - `"text"`
353 default: text
337354 
338 - `ToolUse object { id, input, name, 2 more }`
355 - `ToolUse object`
339356 
340357 Tool invocation requested by the assistant.
341358 
from line 372
355372 
356373 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request the server maximum.
357374 
375 default: false
376 
358377 - `type: "tool_use"`
359378 
360 - `"tool_use"`
379 default: tool_use
361380 
362 - `ToolResult object { content, is_error, name, 3 more }`
381 - `ToolResult object`
363382 
364383 Result returned by a tool invocation.
365384 
366 - `content: array of object { text, type }`
385 - `content: array of object`
367386 
368387 Text content returned by the tool. Non-text item types are omitted and signalled via `truncated` with an in-band item-count marker.
369388 
from line 392
373392 
374393 - `type: "text"`
375394 
376 - `"text"`
395 default: text
377396 
378397 - `is_error: boolean`
379398 
from line 410
391410 
392411 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.
393412 
413 default: false
414 
394415 - `type: "tool_result"`
395416 
396 - `"tool_result"`
417 default: tool_result
397418 
398419 - `created_at: string`
399420 
400421 When the message was recorded (RFC 3339, UTC)
401422 
423 format: date-time
424 
402425 - `model: string or null`
403426 
404427 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.
405428 
406 - `provenance: object { reason, type } or object { type } or object { type } or null`
429 - `provenance: object or object or object or null`
407430 
408431 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.
409432 
410 - `ContentUnavailable object { reason, type }`
433 - `ContentUnavailable object`
411434 
412435 The turn's content cannot be returned; `content` is empty.
413436 
from line 440
417440 
418441 - `type: "content_unavailable"`
419442 
420 - `"content_unavailable"`
443 default: content_unavailable
421444 
422 - `ClientAsserted object { type }`
445 - `ClientAsserted object`
423446 
424447 Assistant content the client supplied as conversation history
425448 rather than produced by Claude during this session. `content` shows
from line 452
429452 
430453 - `type: "client_asserted"`
431454 
432 - `"client_asserted"`
455 default: client_asserted
433456 
434 - `SyntheticMarker object { type }`
457 - `SyntheticMarker object`
435458 
436459 A transcript marker generated by the endpoint rather than sent by
437460 either party during the session. Marker messages indicate that the
from line 468
445468 
446469 - `type: "synthetic_marker"`
447470 
448 - `"synthetic_marker"`
471 default: synthetic_marker
449472 
450473 - `role: "assistant" or "user"`
451474 
from line 480
457480 
458481 - `type: "compliance_local_session_message"`
459482 
460 - `"compliance_local_session_message"`
483 default: compliance_local_session_message
461484 

api/compliance/apps/sessions/local/messages/list Changed · +57 / -42 lines

# Retrieve local session messages ## Path parameters ## Query parameters ## Headers ## Returns ## Example ### Response (200) ## Retrieve local session messages ### Path Parameters ### Query Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: Retrieve local session messages
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions/local/messages/list
4---
1# Retrieve local session messages
52 
6## Retrieve local session messages
3**GET** `/v1/compliance/apps/sessions/local/{local_session_id}/messages`
74 
8**get** `/v1/compliance/apps/sessions/local/{local_session_id}/messages`
9 
105Read one local session's transcript, oldest-first by default.
116 
127Retention is enforced read-side: turns at or before the child
from line 12
1712honored for 24 hours: a cursor older than that is rejected with an
1813explicit 400; restart the walk to read under the current boundary.
1914 
20### Path Parameters
15## Path parameters
2116 
2217- `local_session_id: string`
2318 
24### Query Parameters
19## Query parameters
2520 
2621- `limit: optional number`
2722 
2823 Maximum results (default: 100, max: 1000)
2924 
25 default: 100, maximum: 1000, minimum: 1
26 
3027- `order: optional "asc" or "desc"`
3128 
3229 Sort direction. `asc` (oldest-first, default) or `desc`.
3330 
31 default: asc
32 
3433 - `"asc"`
3534 
3635 - `"desc"`
from line 42
4342 
4443 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.
4544 
45 default: 10000, maximum: 2147483647, minimum: -1
46 
4647- `tool_use_input_max_bytes: optional number`
4748 
4849 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.
4950 
50### Header Parameters
51 default: 10000, maximum: 2147483647, minimum: -1
5152 
53## Headers
54 
5255- `"x-api-key": optional string`
5356 
54### Returns
57## Returns
5558 
56- `data: array of object { id, content, created_at, 4 more }`
59- `data: array of object`
5760 
5861 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.
5962 
from line 64
6164 
6265 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.
6366 
64 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
67 - `content: array of object or object or object`
6568 
6669 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`.
6770 
68 - `Text object { text, truncated, type }`
71 - `Text object`
6972 
7073 Text content block.
7174 
from line 80
7780 
7881 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.
7982 
83 default: false
84 
8085 - `type: "text"`
8186 
82 - `"text"`
87 default: text
8388 
84 - `ToolUse object { id, input, name, 2 more }`
89 - `ToolUse object`
8590 
8691 Tool invocation requested by the assistant.
8792 
from line 106
101106 
102107 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request the server maximum.
103108 
109 default: false
110 
104111 - `type: "tool_use"`
105112 
106 - `"tool_use"`
113 default: tool_use
107114 
108 - `ToolResult object { content, is_error, name, 3 more }`
115 - `ToolResult object`
109116 
110117 Result returned by a tool invocation.
111118 
112 - `content: array of object { text, type }`
119 - `content: array of object`
113120 
114121 Text content returned by the tool. Non-text item types are omitted and signalled via `truncated` with an in-band item-count marker.
115122 
from line 126
119126 
120127 - `type: "text"`
121128 
122 - `"text"`
129 default: text
123130 
124131 - `is_error: boolean`
125132 
from line 144
137144 
138145 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.
139146 
147 default: false
148 
140149 - `type: "tool_result"`
141150 
142 - `"tool_result"`
151 default: tool_result
143152 
144153 - `created_at: string`
145154 
146155 When the message was recorded (RFC 3339, UTC)
147156 
157 format: date-time
158 
148159 - `model: string or null`
149160 
150161 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.
151162 
152 - `provenance: object { reason, type } or object { type } or object { type } or null`
163 - `provenance: object or object or object or null`
153164 
154165 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.
155166 
156 - `ContentUnavailable object { reason, type }`
167 - `ContentUnavailable object`
157168 
158169 The turn's content cannot be returned; `content` is empty.
159170 
from line 174
163174 
164175 - `type: "content_unavailable"`
165176 
166 - `"content_unavailable"`
177 default: content_unavailable
167178 
168 - `ClientAsserted object { type }`
179 - `ClientAsserted object`
169180 
170181 Assistant content the client supplied as conversation history
171182 rather than produced by Claude during this session. `content` shows
from line 186
175186 
176187 - `type: "client_asserted"`
177188 
178 - `"client_asserted"`
189 default: client_asserted
179190 
180 - `SyntheticMarker object { type }`
191 - `SyntheticMarker object`
181192 
182193 A transcript marker generated by the endpoint rather than sent by
183194 either party during the session. Marker messages indicate that the
from line 202
191202 
192203 - `type: "synthetic_marker"`
193204 
194 - `"synthetic_marker"`
205 default: synthetic_marker
195206 
196207 - `role: "assistant" or "user"`
197208 
from line 214
203214 
204215 - `type: "compliance_local_session_message"`
205216 
206 - `"compliance_local_session_message"`
217 default: compliance_local_session_message
207218 
208219- `next_page: string or null`
209220 
210221 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.
211222 
212- `session: object { id, created_at, organization_uuid, 5 more }`
223- `session: object`
213224 
214225 The local session the messages belong to. `user.email_address` is always null on this endpoint; the messages endpoint does not resolve email addresses.
215226 
from line 232
221232 
222233 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.
223234 
235 format: date-time
236 
224237 - `organization_uuid: string`
225238 
226239 UUID of the child organization the session belongs to
from line 244
231244 
232245 - `type: "compliance_local_session"`
233246 
234 - `"compliance_local_session"`
247 default: compliance_local_session
235248 
236249 - `updated_at: string`
237250 
238251 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.
239252 
240 - `user: object { id, email_address }`
253 format: date-time
241254 
255 - `user: object`
256 
242257 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.
243258 
244259 - `id: string`
from line 268
253268 
254269 Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.
255270 
256### Example
271## Example
257272 
258```http
273```bash
259274curl https://api.anthropic.com/v1/compliance/apps/sessions/local/$LOCAL_SESSION_ID/messages \
260275 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
261276```
262277 
263#### Response
278### Response (200)
264279 
265280```json
266281{

api/compliance/apps/sessions/local/retrieve Changed · +14 / -15 lines

# Retrieve a local session ## Path parameters ## Headers ## Returns ## Example ### Response (200) ## Retrieve a local session ### Path Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: Retrieve a local session
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions/local/retrieve
4---
1# Retrieve a local session
52 
6## Retrieve a local session
3**GET** `/v1/compliance/apps/sessions/local/{local_session_id}`
74 
8**get** `/v1/compliance/apps/sessions/local/{local_session_id}`
9 
105Retrieve one local session.
116 
127The response is the same session object the list endpoint returns,
from line 9
149enforced when the response is served: a session whose every
1510inference call has aged out returns 404.
1611 
17### Path Parameters
12## Path parameters
1813 
1914- `local_session_id: string`
2015 
21### Header Parameters
16## Headers
2217 
2318- `"x-api-key": optional string`
2419 
25### Returns
20## Returns
2621 
2722- `id: string`
2823 
from line 27
3227 
3328 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.
3429 
30 format: date-time
31 
3532- `organization_uuid: string`
3633 
3734 UUID of the child organization the session belongs to
from line 39
4239 
4340- `type: "compliance_local_session"`
4441 
45 - `"compliance_local_session"`
42 default: compliance_local_session
4643 
4744- `updated_at: string`
4845 
4946 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.
5047 
51- `user: object { id, email_address }`
48 format: date-time
5249 
50- `user: object`
51 
5352 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.
5453 
5554 - `id: string`
from line 63
6463 
6564 Workspace identifier (tagged ID, prefixed `wrkspc_`). Null for sessions not attributed to a workspace.
6665 
67### Example
66## Example
6867 
69```http
68```bash
7069curl https://api.anthropic.com/v1/compliance/apps/sessions/local/$LOCAL_SESSION_ID \
7170 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
7271```
7372 
74#### Response
73### Response (200)
7574 
7675```json
7776{

api/compliance/apps/sessions/remote Changed · +87 / -163 lines

### Query parameters ### Headers #### Response (200) ## Domain types ## Remote › Messages ### Retrieve remote session messages #### Path parameters #### Query parameters #### Headers #### Returns #### Example ##### Response (200) ### Query Parameters ### Header Parameters #### Response ## Domain Types # Messages ## Retrieve remote session messages ### Path Parameters ### Query Parameters ### Header Parameters #### Response ## Domain Types ### Message List Response

from line 1
1---
2title: Remote
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions/remote
4---
5 
61# Remote
72 
83## List remote sessions
94 
10**get** `/v1/compliance/apps/sessions/remote`
5**GET** `/v1/compliance/apps/sessions/remote`
116 
127List remote sessions (Cowork sessions that run in Anthropic-managed
138cloud environments) across the organizations the key may read.
from line 22
2722forward-only: pass the response's `next_page` value back as `page` to
2823retrieve the next page, and stop when `next_page` is null.
2924 
30### Query Parameters
25### Query parameters
3126 
32- `created_at: optional object { gt, gte, lt, lte }`
27- `created_at: optional object`
3328 
3429 - `gt: optional string`
3530 
3631 Filter remote sessions created after this time (RFC 3339 format)
3732 
33 format: date-time
34 
3835 - `gte: optional string`
3936 
4037 Filter remote sessions created at or after this time (RFC 3339 format)
4138 
39 format: date-time
40 
4241 - `lt: optional string`
4342 
4443 Filter remote sessions created before this time (RFC 3339 format)
4544 
45 format: date-time
46 
4647 - `lte: optional string`
4748 
4849 Filter remote sessions created at or before this time (RFC 3339 format)
4950 
51 format: date-time
52 
5053- `limit: optional number`
5154 
5255 Maximum results (default: 100, max: 500)
5356 
57 default: 100, maximum: 500, minimum: 1
58 
5459- `organization_ids: optional array of string`
5560 
5661 Filter to specific child organization identifiers. Omit to enumerate every child organization the key may read.
5762 
63 maxItems: 500
64 
5865- `page: optional string`
5966 
6067 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.
from line 70
6370 
6471 Filter to sessions owned by specific users (max 10 per request). Agent-owned sessions are excluded when this filter is set.
6572 
66### Header Parameters
73 maxItems: 10
6774 
75### Headers
76 
6877- `"x-api-key": optional string`
6978 
7079### Returns
7180 
72- `data: array of object { id, agent_id, claude_project_id, 7 more }`
81- `data: array of object`
7382 
7483 - `id: string`
7584 
from line 96
8796 
8897 When the session was created (RFC 3339, UTC)
8998 
99 format: date-time
100 
90101 - `organization_uuid: string`
91102 
92103 UUID of the organization the session belongs to
from line 106
95106 
96107 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.
97108 
98 - `started_by_user: object { id, email_address } or null`
109 - `started_by_user: object or null`
99110 
100111 A user associated with a remote session.
101112 
from line 126
115126 
116127 When the session was last modified (RFC 3339, UTC)
117128 
118 - `user: object { id, email_address } or null`
129 format: date-time
119130 
131 - `user: object or null`
132 
120133 A user associated with a remote session.
121134 
122135 - `id: string`
from line 146
133146 
134147### Example
135148 
136```http
149```bash
137150curl https://api.anthropic.com/v1/compliance/apps/sessions/remote \
138151 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
139152```
140153 
141#### Response
154#### Response (200)
142155 
143156```json
144157{
from line 174
161174}
162175```
163176 
164## Domain Types
177## Domain types
165178 
166179### Remote List Response
167180 
168- `RemoteListResponse object { id, agent_id, claude_project_id, 7 more }`
181- `RemoteListResponse object`
169182 
170183 Metadata for one remote session, as returned in the list response
171184 and in the messages response's `session` field.
from line 202
189202 
190203 When the session was created (RFC 3339, UTC)
191204 
205 format: date-time
206 
192207 - `organization_uuid: string`
193208 
194209 UUID of the organization the session belongs to
from line 212
197212 
198213 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.
199214 
200 - `started_by_user: object { id, email_address } or null`
215 - `started_by_user: object or null`
201216 
202217 A user associated with a remote session.
203218 
from line 232
217232 
218233 When the session was last modified (RFC 3339, UTC)
219234 
220 - `user: object { id, email_address } or null`
235 format: date-time
221236 
237 - `user: object or null`
238 
222239 A user associated with a remote session.
223240 
224241 - `id: string`
from line 246
229246 
230247 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.
231248 
232# Messages
249## Remote › Messages
233250 
234## Retrieve remote session messages
251### Retrieve remote session messages
235252 
236**get** `/v1/compliance/apps/sessions/remote/{claude_remote_session_id}/messages`
253**GET** `/v1/compliance/apps/sessions/remote/{claude_remote_session_id}/messages`
237254 
238255Retrieve one remote session's transcript: user prompts, assistant
239256responses, and tool calls and results. Thinking blocks and images are
from line 273
256273and for sessions outside the organizations the key may read. A
257274malformed session identifier returns 400.
258275 
259### Path Parameters
276#### Path parameters
260277 
261278- `claude_remote_session_id: string`
262279 
263280 The remote session identifier (`cse_...`) to retrieve
264281 
265### Query Parameters
282#### Query parameters
266283 
267284- `limit: optional number`
268285 
269286 Maximum results (default: 100, max: 1000)
270287 
288 default: 100, maximum: 1000, minimum: 1
289 
271290- `order: optional "asc" or "desc"`
272291 
273292 Sort direction. `asc` (oldest-first) or `desc`.
274293 
294 default: asc
295 
275296 - `"asc"`
276297 
277298 - `"desc"`
from line 305
284305 
285306 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.
286307 
308 default: 10000, maximum: 2147483647, minimum: -1
309 
287310- `tool_use_input_max_bytes: optional number`
288311 
289312 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.
290313 
291### Header Parameters
314 default: 10000, maximum: 2147483647, minimum: -1
292315 
316#### Headers
317 
293318- `"x-api-key": optional string`
294319 
295### Returns
320#### Returns
296321 
297- `data: array of object { id, content, content_unavailable, 3 more }`
322- `data: array of object`
298323 
299324 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.
300325 
from line 327
302327 
303328 Unique identifier for the message, e.g. `csev_abc123`
304329 
305 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
330 - `content: array of object or object or object`
306331 
307332 Content blocks within the message
308333 
309 - `Text object { text, truncated, type }`
334 - `Text object`
310335 
311336 Text content block.
312337 
from line 343
318343 
319344 True when `text` exceeded the server-defined maximum (approximately 1 MiB) and was shortened.
320345 
346 default: false
347 
321348 - `type: "text"`
322349 
323 - `"text"`
350 default: text
324351 
325 - `ToolUse object { id, input, name, 2 more }`
352 - `ToolUse object`
326353 
327354 Tool invocation requested by the assistant.
328355 
from line 369
342369 
343370 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request full content, subject to the server-side maximum.
344371 
372 default: false
373 
345374 - `type: "tool_use"`
346375 
347 - `"tool_use"`
376 default: tool_use
348377 
349 - `ToolResult object { content, is_error, name, 3 more }`
378 - `ToolResult object`
350379 
351380 Result returned by a tool invocation.
352381 
353 - `content: array of object { text, type }`
382 - `content: array of object`
354383 
355384 Text content returned by the tool. Non-text item types are omitted.
356385 
from line 389
360389 
361390 - `type: "text"`
362391 
363 - `"text"`
392 default: text
364393 
365394 - `is_error: boolean`
366395 
from line 407
378407 
379408 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.
380409 
410 default: false
411 
381412 - `type: "tool_result"`
382413 
383 - `"tool_result"`
414 default: tool_result
384415 
385416 - `content_unavailable: boolean`
386417 
387418 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'.
388419 
420 default: false
421 
389422 - `created_at: string`
390423 
391424 When the message was recorded (RFC 3339, UTC)
392425 
426 format: date-time
427 
393428 - `role: "assistant" or "user"`
394429 
395430 Message sender (`user` or `assistant`)
from line 441
406441 
407442 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.
408443 
409- `session: object { id, agent_id, claude_project_id, 7 more }`
444- `session: object`
410445 
411446 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.
412447 
from line 461
426461 
427462 When the session was created (RFC 3339, UTC)
428463 
464 format: date-time
465 
429466 - `organization_uuid: string`
430467 
431468 UUID of the organization the session belongs to
from line 471
434471 
435472 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.
436473 
437 - `started_by_user: object { id, email_address } or null`
474 - `started_by_user: object or null`
438475 
439476 A user associated with a remote session.
440477 
from line 491
454491 
455492 When the session was last modified (RFC 3339, UTC)
456493 
457 - `user: object { id, email_address } or null`
494 format: date-time
458495 
496 - `user: object or null`
497 
459498 A user associated with a remote session.
460499 
461500 - `id: string`
from line 505
466505 
467506 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.
468507 
469### Example
508#### Example
470509 
471```http
510```bash
472511curl https://api.anthropic.com/v1/compliance/apps/sessions/remote/$CLAUDE_REMOTE_SESSION_ID/messages \
473512 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
474513```
475514 
476#### Response
515##### Response (200)
477516 
478517```json
479518{
from line 553
514553 }
515554}
516555```
517 
518## Domain Types
519 
520### Message List Response
521 
522- `MessageListResponse object { id, content, content_unavailable, 3 more }`
523 
524 A single user or assistant turn in a remote session transcript.
525 
526 `content` is a discriminated union of `text`, `tool_use`, and
527 `tool_result` blocks.
528 
529 - `id: string`
530 
531 Unique identifier for the message, e.g. `csev_abc123`
532 
533 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
534 
535 Content blocks within the message
536 
537 - `Text object { text, truncated, type }`
538 
539 Text content block.
540 
541 - `text: string`
542 
543 Text content from the user or the assistant
544 
545 - `truncated: boolean`
546 
547 True when `text` exceeded the server-defined maximum (approximately 1 MiB) and was shortened.
548 
549 - `type: "text"`
550 
551 - `"text"`
552 
553 - `ToolUse object { id, input, name, 2 more }`
554 
555 Tool invocation requested by the assistant.
556 
557 - `id: string or null`
558 
559 Tool-use ID, e.g. 'toolu_01AbC...'
560 
561 - `input: string`
562 
563 Arguments passed to the tool, as a JSON-encoded string. May be shortened — see the `truncated` field
564 
565 - `name: string`
566 
567 Name of the tool invoked
568 
569 - `truncated: boolean`
570 
571 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request full content, subject to the server-side maximum.
572 
573 - `type: "tool_use"`
574 
575 - `"tool_use"`
576 
577 - `ToolResult object { content, is_error, name, 3 more }`
578 
579 Result returned by a tool invocation.
580 
581 - `content: array of object { text, type }`
582 
583 Text content returned by the tool. Non-text item types are omitted.
584 
585 - `text: string`
586 
587 Text returned by the tool
588 
589 - `type: "text"`
590 
591 - `"text"`
592 
593 - `is_error: boolean`
594 
595 True when the tool reported an error
596 
597 - `name: string`
598 
599 Name of the tool that produced this result
600 
601 - `tool_use_id: string or null`
602 
603 ID of the tool_use block this result responds to
604 
605 - `truncated: boolean`
606 
607 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.
608 
609 - `type: "tool_result"`
610 
611 - `"tool_result"`
612 
613 - `content_unavailable: boolean`
614 
615 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'.
616 
617 - `created_at: string`
618 
619 When the message was recorded (RFC 3339, UTC)
620 
621 - `role: "assistant" or "user"`
622 
623 Message sender (`user` or `assistant`)
624 
625 - `"assistant"`
626 
627 - `"user"`
628 
629 - `sent_by_user_id: string or null`
630 
631 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`.
632556 

api/compliance/apps/sessions/remote/list Changed · +30 / -17 lines

# List remote sessions ## Query parameters ## Headers ## Returns ## Example ### Response (200) ## List remote sessions ### Query Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: List remote sessions
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions/remote/list
4---
1# List remote sessions
52 
6## List remote sessions
3**GET** `/v1/compliance/apps/sessions/remote`
74 
8**get** `/v1/compliance/apps/sessions/remote`
9 
105List remote sessions (Cowork sessions that run in Anthropic-managed
116cloud environments) across the organizations the key may read.
127 
from line 20
2520forward-only: pass the response's `next_page` value back as `page` to
2621retrieve the next page, and stop when `next_page` is null.
2722 
28### Query Parameters
23## Query parameters
2924 
30- `created_at: optional object { gt, gte, lt, lte }`
25- `created_at: optional object`
3126 
3227 - `gt: optional string`
3328 
3429 Filter remote sessions created after this time (RFC 3339 format)
3530 
31 format: date-time
32 
3633 - `gte: optional string`
3734 
3835 Filter remote sessions created at or after this time (RFC 3339 format)
3936 
37 format: date-time
38 
4039 - `lt: optional string`
4140 
4241 Filter remote sessions created before this time (RFC 3339 format)
4342 
43 format: date-time
44 
4445 - `lte: optional string`
4546 
4647 Filter remote sessions created at or before this time (RFC 3339 format)
4748 
49 format: date-time
50 
4851- `limit: optional number`
4952 
5053 Maximum results (default: 100, max: 500)
5154 
55 default: 100, maximum: 500, minimum: 1
56 
5257- `organization_ids: optional array of string`
5358 
5459 Filter to specific child organization identifiers. Omit to enumerate every child organization the key may read.
5560 
61 maxItems: 500
62 
5663- `page: optional string`
5764 
5865 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.
from line 68
6168 
6269 Filter to sessions owned by specific users (max 10 per request). Agent-owned sessions are excluded when this filter is set.
6370 
64### Header Parameters
71 maxItems: 10
6572 
73## Headers
74 
6675- `"x-api-key": optional string`
6776 
68### Returns
77## Returns
6978 
70- `data: array of object { id, agent_id, claude_project_id, 7 more }`
79- `data: array of object`
7180 
7281 - `id: string`
7382 
from line 94
8594 
8695 When the session was created (RFC 3339, UTC)
8796 
97 format: date-time
98 
8899 - `organization_uuid: string`
89100 
90101 UUID of the organization the session belongs to
from line 104
93104 
94105 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.
95106 
96 - `started_by_user: object { id, email_address } or null`
107 - `started_by_user: object or null`
97108 
98109 A user associated with a remote session.
99110 
from line 124
113124 
114125 When the session was last modified (RFC 3339, UTC)
115126 
116 - `user: object { id, email_address } or null`
127 format: date-time
117128 
129 - `user: object or null`
130 
118131 A user associated with a remote session.
119132 
120133 - `id: string`
from line 142
129142 
130143 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.
131144 
132### Example
145## Example
133146 
134```http
147```bash
135148curl https://api.anthropic.com/v1/compliance/apps/sessions/remote \
136149 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
137150```
138151 
139#### Response
152### Response (200)
140153 
141154```json
142155{

api/compliance/apps/sessions/remote/messages Changed · +66 / -39 lines

### Path parameters ### Query parameters ### Headers #### Response (200) ## Domain types ### Path Parameters ### Query Parameters ### Header Parameters #### Response ## Domain Types

from line 1
1---
2title: Messages
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions/remote/messages
4---
5 
61# Messages
72 
83## Retrieve remote session messages
94 
10**get** `/v1/compliance/apps/sessions/remote/{claude_remote_session_id}/messages`
5**GET** `/v1/compliance/apps/sessions/remote/{claude_remote_session_id}/messages`
116 
127Retrieve one remote session's transcript: user prompts, assistant
138responses, and tool calls and results. Thinking blocks and images are
from line 25
3025and for sessions outside the organizations the key may read. A
3126malformed session identifier returns 400.
3227 
33### Path Parameters
28### Path parameters
3429 
3530- `claude_remote_session_id: string`
3631 
3732 The remote session identifier (`cse_...`) to retrieve
3833 
39### Query Parameters
34### Query parameters
4035 
4136- `limit: optional number`
4237 
4338 Maximum results (default: 100, max: 1000)
4439 
40 default: 100, maximum: 1000, minimum: 1
41 
4542- `order: optional "asc" or "desc"`
4643 
4744 Sort direction. `asc` (oldest-first) or `desc`.
4845 
46 default: asc
47 
4948 - `"asc"`
5049 
5150 - `"desc"`
from line 57
5857 
5958 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.
6059 
60 default: 10000, maximum: 2147483647, minimum: -1
61 
6162- `tool_use_input_max_bytes: optional number`
6263 
6364 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.
6465 
65### Header Parameters
66 default: 10000, maximum: 2147483647, minimum: -1
6667 
68### Headers
69 
6770- `"x-api-key": optional string`
6871 
6972### Returns
7073 
71- `data: array of object { id, content, content_unavailable, 3 more }`
74- `data: array of object`
7275 
7376 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.
7477 
from line 79
7679 
7780 Unique identifier for the message, e.g. `csev_abc123`
7881 
79 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
82 - `content: array of object or object or object`
8083 
8184 Content blocks within the message
8285 
83 - `Text object { text, truncated, type }`
86 - `Text object`
8487 
8588 Text content block.
8689 
from line 95
9295 
9396 True when `text` exceeded the server-defined maximum (approximately 1 MiB) and was shortened.
9497 
98 default: false
99 
95100 - `type: "text"`
96101 
97 - `"text"`
102 default: text
98103 
99 - `ToolUse object { id, input, name, 2 more }`
104 - `ToolUse object`
100105 
101106 Tool invocation requested by the assistant.
102107 
from line 121
116121 
117122 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request full content, subject to the server-side maximum.
118123 
124 default: false
125 
119126 - `type: "tool_use"`
120127 
121 - `"tool_use"`
128 default: tool_use
122129 
123 - `ToolResult object { content, is_error, name, 3 more }`
130 - `ToolResult object`
124131 
125132 Result returned by a tool invocation.
126133 
127 - `content: array of object { text, type }`
134 - `content: array of object`
128135 
129136 Text content returned by the tool. Non-text item types are omitted.
130137 
from line 141
134141 
135142 - `type: "text"`
136143 
137 - `"text"`
144 default: text
138145 
139146 - `is_error: boolean`
140147 
from line 159
152159 
153160 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.
154161 
162 default: false
163 
155164 - `type: "tool_result"`
156165 
157 - `"tool_result"`
166 default: tool_result
158167 
159168 - `content_unavailable: boolean`
160169 
161170 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'.
162171 
172 default: false
173 
163174 - `created_at: string`
164175 
165176 When the message was recorded (RFC 3339, UTC)
166177 
178 format: date-time
179 
167180 - `role: "assistant" or "user"`
168181 
169182 Message sender (`user` or `assistant`)
from line 193
180193 
181194 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.
182195 
183- `session: object { id, agent_id, claude_project_id, 7 more }`
196- `session: object`
184197 
185198 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.
186199 
from line 213
200213 
201214 When the session was created (RFC 3339, UTC)
202215 
216 format: date-time
217 
203218 - `organization_uuid: string`
204219 
205220 UUID of the organization the session belongs to
from line 223
208223 
209224 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.
210225 
211 - `started_by_user: object { id, email_address } or null`
226 - `started_by_user: object or null`
212227 
213228 A user associated with a remote session.
214229 
from line 243
228243 
229244 When the session was last modified (RFC 3339, UTC)
230245 
231 - `user: object { id, email_address } or null`
246 format: date-time
232247 
248 - `user: object or null`
249 
233250 A user associated with a remote session.
234251 
235252 - `id: string`
from line 259
242259 
243260### Example
244261 
245```http
262```bash
246263curl https://api.anthropic.com/v1/compliance/apps/sessions/remote/$CLAUDE_REMOTE_SESSION_ID/messages \
247264 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
248265```
249266 
250#### Response
267#### Response (200)
251268 
252269```json
253270{
from line 306
289306}
290307```
291308 
292## Domain Types
309## Domain types
293310 
294311### Message List Response
295312 
296- `MessageListResponse object { id, content, content_unavailable, 3 more }`
313- `MessageListResponse object`
297314 
298315 A single user or assistant turn in a remote session transcript.
299316 
from line 321
304321 
305322 Unique identifier for the message, e.g. `csev_abc123`
306323 
307 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
324 - `content: array of object or object or object`
308325 
309326 Content blocks within the message
310327 
311 - `Text object { text, truncated, type }`
328 - `Text object`
312329 
313330 Text content block.
314331 
from line 337
320337 
321338 True when `text` exceeded the server-defined maximum (approximately 1 MiB) and was shortened.
322339 
340 default: false
341 
323342 - `type: "text"`
324343 
325 - `"text"`
344 default: text
326345 
327 - `ToolUse object { id, input, name, 2 more }`
346 - `ToolUse object`
328347 
329348 Tool invocation requested by the assistant.
330349 
from line 363
344363 
345364 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request full content, subject to the server-side maximum.
346365 
366 default: false
367 
347368 - `type: "tool_use"`
348369 
349 - `"tool_use"`
370 default: tool_use
350371 
351 - `ToolResult object { content, is_error, name, 3 more }`
372 - `ToolResult object`
352373 
353374 Result returned by a tool invocation.
354375 
355 - `content: array of object { text, type }`
376 - `content: array of object`
356377 
357378 Text content returned by the tool. Non-text item types are omitted.
358379 
from line 383
362383 
363384 - `type: "text"`
364385 
365 - `"text"`
386 default: text
366387 
367388 - `is_error: boolean`
368389 
from line 401
380401 
381402 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.
382403 
404 default: false
405 
383406 - `type: "tool_result"`
384407 
385 - `"tool_result"`
408 default: tool_result
386409 
387410 - `content_unavailable: boolean`
388411 
389412 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'.
390413 
414 default: false
415 
391416 - `created_at: string`
392417 
393418 When the message was recorded (RFC 3339, UTC)
419 
420 format: date-time
394421 
395422 - `role: "assistant" or "user"`
396423 

api/compliance/apps/sessions/remote/messages/list Changed · +49 / -32 lines

# Retrieve remote session messages ## Path parameters ## Query parameters ## Headers ## Returns ## Example ### Response (200) ## Retrieve remote session messages ### Path Parameters ### Query Parameters ### Header Parameters ### Returns ### Example #### Response

from line 1
1---
2title: Retrieve remote session messages
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions/remote/messages/list
4---
1# Retrieve remote session messages
52 
6## Retrieve remote session messages
3**GET** `/v1/compliance/apps/sessions/remote/{claude_remote_session_id}/messages`
74 
8**get** `/v1/compliance/apps/sessions/remote/{claude_remote_session_id}/messages`
9 
105Retrieve one remote session's transcript: user prompts, assistant
116responses, and tool calls and results. Thinking blocks and images are
127not included.
from line 23
2823and for sessions outside the organizations the key may read. A
2924malformed session identifier returns 400.
3025 
31### Path Parameters
26## Path parameters
3227 
3328- `claude_remote_session_id: string`
3429 
3530 The remote session identifier (`cse_...`) to retrieve
3631 
37### Query Parameters
32## Query parameters
3833 
3934- `limit: optional number`
4035 
4136 Maximum results (default: 100, max: 1000)
4237 
38 default: 100, maximum: 1000, minimum: 1
39 
4340- `order: optional "asc" or "desc"`
4441 
4542 Sort direction. `asc` (oldest-first) or `desc`.
4643 
44 default: asc
45 
4746 - `"asc"`
4847 
4948 - `"desc"`
from line 55
5655 
5756 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.
5857 
58 default: 10000, maximum: 2147483647, minimum: -1
59 
5960- `tool_use_input_max_bytes: optional number`
6061 
6162 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.
6263 
63### Header Parameters
64 default: 10000, maximum: 2147483647, minimum: -1
6465 
66## Headers
67 
6568- `"x-api-key": optional string`
6669 
67### Returns
70## Returns
6871 
69- `data: array of object { id, content, content_unavailable, 3 more }`
72- `data: array of object`
7073 
7174 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.
7275 
from line 77
7477 
7578 Unique identifier for the message, e.g. `csev_abc123`
7679 
77 - `content: array of object { text, truncated, type } or object { id, input, name, 2 more } or object { content, is_error, name, 3 more }`
80 - `content: array of object or object or object`
7881 
7982 Content blocks within the message
8083 
81 - `Text object { text, truncated, type }`
84 - `Text object`
8285 
8386 Text content block.
8487 
from line 93
9093 
9194 True when `text` exceeded the server-defined maximum (approximately 1 MiB) and was shortened.
9295 
96 default: false
97 
9398 - `type: "text"`
9499 
95 - `"text"`
100 default: text
96101 
97 - `ToolUse object { id, input, name, 2 more }`
102 - `ToolUse object`
98103 
99104 Tool invocation requested by the assistant.
100105 
from line 119
114119 
115120 True when `input` was shortened. Pass `tool_use_input_max_bytes=-1` to request full content, subject to the server-side maximum.
116121 
122 default: false
123 
117124 - `type: "tool_use"`
118125 
119 - `"tool_use"`
126 default: tool_use
120127 
121 - `ToolResult object { content, is_error, name, 3 more }`
128 - `ToolResult object`
122129 
123130 Result returned by a tool invocation.
124131 
125 - `content: array of object { text, type }`
132 - `content: array of object`
126133 
127134 Text content returned by the tool. Non-text item types are omitted.
128135 
from line 139
132139 
133140 - `type: "text"`
134141 
135 - `"text"`
142 default: text
136143 
137144 - `is_error: boolean`
138145 
from line 157
150157 
151158 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.
152159 
160 default: false
161 
153162 - `type: "tool_result"`
154163 
155 - `"tool_result"`
164 default: tool_result
156165 
157166 - `content_unavailable: boolean`
158167 
159168 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'.
160169 
170 default: false
171 
161172 - `created_at: string`
162173 
163174 When the message was recorded (RFC 3339, UTC)
164175 
176 format: date-time
177 
165178 - `role: "assistant" or "user"`
166179 
167180 Message sender (`user` or `assistant`)
from line 191
178191 
179192 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.
180193 
181- `session: object { id, agent_id, claude_project_id, 7 more }`
194- `session: object`
182195 
183196 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.
184197 
from line 211
198211 
199212 When the session was created (RFC 3339, UTC)
200213 
214 format: date-time
215 
201216 - `organization_uuid: string`
202217 
203218 UUID of the organization the session belongs to
from line 221
206221 
207222 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.
208223 
209 - `started_by_user: object { id, email_address } or null`
224 - `started_by_user: object or null`
210225 
211226 A user associated with a remote session.
212227 
from line 241
226241 
227242 When the session was last modified (RFC 3339, UTC)
228243 
229 - `user: object { id, email_address } or null`
244 format: date-time
230245 
246 - `user: object or null`
247 
231248 A user associated with a remote session.
232249 
233250 - `id: string`
from line 255
238255 
239256 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.
240257 
241### Example
258## Example
242259 
243```http
260```bash
244261curl https://api.anthropic.com/v1/compliance/apps/sessions/remote/$CLAUDE_REMOTE_SESSION_ID/messages \
245262 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
246263```
247264 
248#### Response
265### Response (200)
249266 
250267```json
251268{

api/compliance/code Changed · +55 / -131 lines

## Code › Artifacts ### List Code Artifacts #### Query parameters #### Headers #### Returns #### Example ##### Response (200) ### Download Code Artifact Version Content #### Path parameters #### Headers #### Example ### Delete Code Artifact #### Path parameters #### Headers #### Returns #### Example ##### Response (200) # Artifacts ## List Code Artifacts ### Query Parameters ### Header Parameters ### Returns ### Example #### Response ## Download Code Artifact Version Content ### Path Parameters ### Header Parameters ### Example ## Delete Code Artifact ### Path Parameters ### Header Parameters ### Returns ### Example #### Response ## Domain Types ### Artifact List Response ### Artifact Delete Response

from line 1
1---
2title: Code
3url: https://platform.claude.com/docs/en/api/compliance/code
4---
5 
61# Code
72 
8# Artifacts
3## Code › Artifacts
94 
10## List Code Artifacts
5### List Code Artifacts
116 
12**get** `/v1/compliance/apps/code/artifacts`
7**GET** `/v1/compliance/apps/code/artifacts`
138 
149List Claude Code Artifacts owned by organizations under the parent
1510organization.
from line 19
2419Artifacts owned by a since-deleted child organization are not
2520returned.
2621 
27### Query Parameters
22#### Query parameters
2823 
2924- `limit: optional number`
3025 
3126 Maximum results (default: 20, max: 100)
3227 
28 default: 20, maximum: 100, minimum: 1
29 
3330- `organization_ids: optional array of string`
3431 
3532 Filter by organization IDs (accepts `org_...` or organization UUID, up to 500). Enumerate IDs via `GET /v1/compliance/organizations`.
3633 
34 maxItems: 500
35 
3736- `page: optional string`
3837 
3938 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.
4039 
41- `updated_at: optional object { gt, gte, lt, lte }`
40- `updated_at: optional object`
4241 
4342 - `gt: optional string`
4443 
4544 Return only Artifacts updated after this time (RFC 3339 format). See `updated_at.gte` for the completeness caveat.
4645 
46 format: date-time
47 
4748 - `gte: optional string`
4849 
4950 Return only Artifacts updated at or after this time (RFC 3339 format). Time filters match an eventually-consistent index and Artifacts published before this field was recorded never match — omit the time filter for compliance-complete enumeration. For incremental export, apply a generous overlap margin between windows and dedupe by `id`: adjacent tiling silently misses items whose index update lagged their publish.
5051 
52 format: date-time
53 
5154 - `lt: optional string`
5255 
5356 Return only Artifacts updated before this time (RFC 3339 format). Multiple time operators are AND-ed to the tightest bound. See `updated_at.gte` for the completeness caveat.
5457 
58 format: date-time
59 
5560 - `lte: optional string`
5661 
5762 Return only Artifacts updated at or before this time (RFC 3339 format). See `updated_at.gte` for the completeness caveat.
5863 
64 format: date-time
65 
5966- `user_ids: optional array of string`
6067 
6168 Filter by owner user IDs (up to 200). Enumerate IDs via `GET /v1/compliance/organizations/{org_uuid}/users`.
6269 
63### Header Parameters
70 maxItems: 200
6471 
72#### Headers
73 
6574- `"x-api-key": optional string`
6675 
67### Returns
76#### Returns
6877 
69- `data: array of object { id, organization_uuid, owner_user_id, 5 more }`
78- `data: array of object`
7079 
7180 Page of Artifacts
7281 
from line 111
102111 
103112 Artifact last update timestamp, or null for Artifacts published before this field was recorded
104113 
105 - `user: object { id, email_address } or null`
114 format: date-time
106115 
116 - `user: object or null`
117 
107118 The user who owns a Code Artifact.
108119 
109120 Fields that reference this type are null when the Artifact was
from line 130
119130 
120131 User's email address
121132 
122 - `versions: array of object { id, created_at, name }`
133 - `versions: array of object`
123134 
124135 Up to roughly 20 most-recently-published versions of this Artifact (older versions are not retained). Metadata only — use `GET /v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` to download a version's content.
125136 
from line 142
131142 
132143 When this version was published
133144 
145 format: date-time
146 
134147 - `name: string`
135148 
136149 Artifact title at this version. Falls back to the version identifier when the title for an older version is no longer retained.
from line 156
143156 
144157 Token to retrieve the next page. Use this as the 'page' parameter in your next request
145158 
146### Example
159#### Example
147160 
148```http
161```bash
149162curl https://api.anthropic.com/v1/compliance/apps/code/artifacts \
150163 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
151164```
152165 
153#### Response
166##### Response (200)
154167 
155168```json
156169{
from line 193
180193}
181194```
182195 
183## Download Code Artifact Version Content
196### Download Code Artifact Version Content
184197 
185**get** `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}`
198**GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}`
186199 
187200Streams the content of one version of a Claude Code Artifact as the
188201response body.
from line 210
197210only truncation signal for encoded content. `Content-MD5` is emitted
198211only for identity-stored content; validate against it when present.
199212 
200### Path Parameters
213#### Path parameters
201214 
202215- `artifact_id: string`
203216 
from line 220
207220 
208221 Opaque version identifier from the Artifact's `versions` list
209222 
210### Header Parameters
223#### Headers
211224 
212225- `"x-api-key": optional string`
213226 
214### Example
227#### Example
215228 
216```http
229```bash
217230curl https://api.anthropic.com/v1/compliance/apps/code/artifacts/$ARTIFACT_ID/versions/$VERSION_ID \
218231 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
219232```
220233 
221## Delete Code Artifact
234### Delete Code Artifact
222235 
223**delete** `/v1/compliance/apps/code/artifacts/{artifact_id}`
236**DELETE** `/v1/compliance/apps/code/artifacts/{artifact_id}`
224237 
225238Permanently deletes a Code Artifact and all its versions. This is a
226239destructive operation that cannot be undone. A 200 response means the
from line 244
231244organization. Returns 404 on a repeated delete of an already-deleted
232245Artifact.
233246 
234### Path Parameters
247#### Path parameters
235248 
236249- `artifact_id: string`
237250 
238251 The Artifact ID (tagged ID, e.g., cart_abc123)
239252 
240### Header Parameters
253#### Headers
241254 
242255- `"x-api-key": optional string`
243256 
244### Returns
257#### Returns
245258 
246259- `id: string`
247260 
from line 264
251264 
252265 Constant string confirming deletion
253266 
254 - `"code_artifact_deleted"`
267 default: code_artifact_deleted
255268 
256### Example
269#### Example
257270 
258```http
271```bash
259272curl https://api.anthropic.com/v1/compliance/apps/code/artifacts/$ARTIFACT_ID \
260273 -X DELETE \
261274 -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"
262275```
263276 
264#### Response
277##### Response (200)
265278 
266279```json
267280{
from line 282
269282 "type": "code_artifact_deleted"
270283}
271284```
272 
273## Domain Types
274 
275### Artifact List Response
276 
277- `ArtifactListResponse object { id, organization_uuid, owner_user_id, 5 more }`
278 
279 A hosted site published via Claude Code.
280 
281 - `id: string`
282 
283 Artifact identifier (tagged ID)
284 
285 - `organization_uuid: string`
286 
287 Organization UUID this Artifact belongs to
288 
289 - `owner_user_id: string or null`
290 
291 Artifact owner's user identifier (tagged ID), or null for Artifacts published by an agent session rather than a user account. When set, it survives after the owner's account is deleted or the owner leaves every organization under the parent.
292 
293 - `published_version_id: string or null`
294 
295 Identifier of the version a non-owner viewer would render when `read_mode` permits them — the version the owner has pinned for non-owner readers if one is pinned, otherwise the owner's latest. When `read_mode` is `owner` no non-owner renders any version; the field still reports which version would be served were read_mode widened.
296 
297 - `read_mode: "org" or "owner" or "public" or "users"`
298 
299 Who can view this Artifact: only its owner, a named set of users, every member of its organization, or anyone on the internet (`public`)
300 
301 - `"org"`
302 
303 - `"owner"`
304 
305 - `"public"`
306 
307 - `"users"`
308 
309 - `updated_at: string or null`
310 
311 Artifact last update timestamp, or null for Artifacts published before this field was recorded
312 
313 - `user: object { id, email_address } or null`
314 
315 The user who owns a Code Artifact.
316 
317 Fields that reference this type are null when the Artifact was
318 published by an agent session rather than a user account, when the
319 owner's account has been deleted, or when the owner is no longer a
320 member of an organization the key may read.
321 
322 - `id: string`
323 
324 User identifier (tagged ID)
325 
326 - `email_address: string`
327 
328 User's email address
329 
330 - `versions: array of object { id, created_at, name }`
331 
332 Up to roughly 20 most-recently-published versions of this Artifact (older versions are not retained). Metadata only — use `GET /v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` to download a version's content.
333 
334 - `id: string`
335 
336 Opaque version identifier
337 
338 - `created_at: string or null`
339 
340 When this version was published
341 
342 - `name: string`
343 
344 Artifact title at this version. Falls back to the version identifier when the title for an older version is no longer retained.
345 
346### Artifact Delete Response
347 
348- `ArtifactDeleteResponse object { id, type }`
349 
350 Response for deleting a Code Artifact.
351 
352 - `id: string`
353 
354 The ID of the Artifact that was deleted
355 
356 - `type: "code_artifact_deleted"`
357 
358 Constant string confirming deletion
359 
360 - `"code_artifact_deleted"`
361285 
Feedback