The whole hunk
from line 1, old and new numbered
/
lines
from line 1
1---
2title: Local
3url: https://platform.claude.com/docs/en/api/compliance/apps/sessions/local
4---
5
16# Local
27
38## List local sessions
from line 50
4550
4651### Headers
4752
53- `"anthropic-version": optional string`
54
55 The version of the Claude API you want to use.
56
57 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning).
58
4859- `"x-api-key": optional string`
4960
5061### Returns
from line 64
5364
5465 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.
5566
67 - `type: "compliance_local_session"`
68
69 default: compliance_local_session
70
5671 - `id: string`
5772
5873 Local session identifier, prefixed `clls_`. Unique within the parent organization. Treat as an opaque string; the format may change without notice.
from line 86
7186
7287 The product the session ran in: `cowork` (Cowork in Claude Desktop on the user's machine), `claude_code` (Claude Code), `claude_science` (Claude Science), or one of `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word`, and `office_agents/outlook` (Claude for Microsoft 365, by app; `office_agents` alone when the app is not identified). New values appear as coverage expands; treat unrecognized values as opaque. `null` when the surface was not recorded.
7388
74 - `type: "compliance_local_session"`
89 - `truncated: boolean`
7590
76 default: compliance_local_session
91 True when the session has more inference calls than the service can return for one session (100,000). The messages endpoint then returns only the session's earliest calls, up to that many, and ends before the session does; `updated_at` is a lower bound on the latest call and can differ between the list and retrieve endpoints. False for every session within that bound.
7792
93 default: false
94
7895 - `updated_at: string`
7996
8097 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.
from line 164
147164
148165### Headers
149166
167- `"anthropic-version": optional string`
168
169 The version of the Claude API you want to use.
170
171 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning).
172
150173- `"x-api-key": optional string`
151174
152175### Returns
153176
177- `type: "compliance_local_session"`
178
179 default: compliance_local_session
180
154181- `id: string`
155182
156183 Local session identifier, prefixed `clls_`. Unique within the parent organization. Treat as an opaque string; the format may change without notice.
from line 196
169196
170197 The product the session ran in: `cowork` (Cowork in Claude Desktop on the user's machine), `claude_code` (Claude Code), `claude_science` (Claude Science), or one of `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word`, and `office_agents/outlook` (Claude for Microsoft 365, by app; `office_agents` alone when the app is not identified). New values appear as coverage expands; treat unrecognized values as opaque. `null` when the surface was not recorded.
171198
172- `type: "compliance_local_session"`
199- `truncated: boolean`
173200
174 default: compliance_local_session
201 True when the session has more inference calls than the service can return for one session (100,000). The messages endpoint then returns only the session's earliest calls, up to that many, and ends before the session does; `updated_at` is a lower bound on the latest call and can differ between the list and retrieve endpoints. False for every session within that bound.
175202
203 default: false
204
176205- `updated_at: string`
177206
178207 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.
from line 258
229258 A session that a user ran on their own computer in a Claude app while
230259 signed in with their organization account.
231260
261 - `type: "compliance_local_session"`
262
263 default: compliance_local_session
264
232265 - `id: string`
233266
234267 Local session identifier, prefixed `clls_`. Unique within the parent organization. Treat as an opaque string; the format may change without notice.
from line 280
247280
248281 The product the session ran in: `cowork` (Cowork in Claude Desktop on the user's machine), `claude_code` (Claude Code), `claude_science` (Claude Science), or one of `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word`, and `office_agents/outlook` (Claude for Microsoft 365, by app; `office_agents` alone when the app is not identified). New values appear as coverage expands; treat unrecognized values as opaque. `null` when the surface was not recorded.
249282
250 - `type: "compliance_local_session"`
283 - `truncated: boolean`
251284
252 default: compliance_local_session
285 True when the session has more inference calls than the service can return for one session (100,000). The messages endpoint then returns only the session's earliest calls, up to that many, and ends before the session does; `updated_at` is a lower bound on the latest call and can differ between the list and retrieve endpoints. False for every session within that bound.
253286
287 default: false
288
254289 - `updated_at: string`
255290
256291 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.
from line 315
280315 A session that a user ran on their own computer in a Claude app while
281316 signed in with their organization account.
282317
318 - `type: "compliance_local_session"`
319
320 default: compliance_local_session
321
283322 - `id: string`
284323
285324 Local session identifier, prefixed `clls_`. Unique within the parent organization. Treat as an opaque string; the format may change without notice.
from line 337
298337
299338 The product the session ran in: `cowork` (Cowork in Claude Desktop on the user's machine), `claude_code` (Claude Code), `claude_science` (Claude Science), or one of `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word`, and `office_agents/outlook` (Claude for Microsoft 365, by app; `office_agents` alone when the app is not identified). New values appear as coverage expands; treat unrecognized values as opaque. `null` when the surface was not recorded.
300339
301 - `type: "compliance_local_session"`
340 - `truncated: boolean`
302341
303 default: compliance_local_session
342 True when the session has more inference calls than the service can return for one session (100,000). The messages endpoint then returns only the session's earliest calls, up to that many, and ends before the session does; `updated_at` is a lower bound on the latest call and can differ between the list and retrieve endpoints. False for every session within that bound.
304343
344 default: false
345
305346 - `updated_at: string`
306347
307348 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.
from line 421
380421
381422#### Headers
382423
424- `"anthropic-version": optional string`
425
426 The version of the Claude API you want to use.
427
428 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning).
429
383430- `"x-api-key": optional string`
384431
385432#### Returns
from line 435
388435
389436 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.
390437
438 - `type: "compliance_local_session_message"`
439
440 default: compliance_local_session_message
441
391442 - `id: string`
392443
393444 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.
from line 451
400451
401452 Text content block.
402453
454 - `type: "text"`
455
456 default: text
457
403458 - `text: string`
404459
405460 Text content from the user or the assistant
from line 465
410465
411466 default: false
412467
413 - `type: "text"`
414
415 default: text
416
417468 - `ToolUse object`
418469
419470 Tool invocation requested by the assistant.
420471
472 - `type: "tool_use"`
473
474 default: tool_use
475
421476 - `id: string or null`
422477
423478 Tool-use ID, e.g. 'toolu_01AbC...'
from line 491
436491
437492 default: false
438493
439 - `type: "tool_use"`
440
441 default: tool_use
442
443494 - `ToolResult object`
444495
445496 Result returned by a tool invocation.
446497
498 - `type: "tool_result"`
499
500 default: tool_result
501
447502 - `content: array of object`
448503
449504 Text content returned by the tool. Non-text item types are omitted and signalled via `truncated` with an in-band item-count marker.
450505
451 - `text: string`
452
453 Text returned by the tool
454
455506 - `type: "text"`
456507
457508 default: text
458509
510 - `text: string`
511
512 Text returned by the tool
513
459514 - `is_error: boolean`
460515
461516 True when the tool reported an error
from line 529
474529
475530 default: false
476531
477 - `type: "tool_result"`
478
479 default: tool_result
480
481532 - `created_at: string`
482533
483534 When the message was recorded (RFC 3339, UTC)
from line 547
496547
497548 The turn's content cannot be returned; `content` is empty.
498549
499 - `reason: string`
500
501 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.
502
503550 - `type: "content_unavailable"`
504551
505552 default: content_unavailable
506553
554 - `reason: string`
555
556 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.
557
507558 - `ClientAsserted object`
508559
509560 Assistant content the client supplied as conversation history
from line 591
540591
541592 - `"user"`
542593
543 - `type: "compliance_local_session_message"`
544
545 default: compliance_local_session_message
546
547594- `next_page: string or null`
548595
549596 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.
from line 599
552599
553600 The local session the messages belong to. `user.email_address` is always null on this endpoint; the messages endpoint does not resolve email addresses.
554601
602 - `type: "compliance_local_session"`
603
604 default: compliance_local_session
605
555606 - `id: string`
556607
557608 Local session identifier, prefixed `clls_`. Unique within the parent organization. Treat as an opaque string; the format may change without notice.
from line 621
570621
571622 The product the session ran in: `cowork` (Cowork in Claude Desktop on the user's machine), `claude_code` (Claude Code), `claude_science` (Claude Science), or one of `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word`, and `office_agents/outlook` (Claude for Microsoft 365, by app; `office_agents` alone when the app is not identified). New values appear as coverage expands; treat unrecognized values as opaque. `null` when the surface was not recorded.
572623
573 - `type: "compliance_local_session"`
624 - `truncated: boolean`
574625
575 default: compliance_local_session
626 True when the session has more inference calls than the service can return for one session (100,000). The messages endpoint then returns only the session's earliest calls, up to that many, and ends before the session does; `updated_at` is a lower bound on the latest call and can differ between the list and retrieve endpoints. False for every session within that bound.
576627
628 default: false
629
577630 - `updated_at: string`
578631
579632 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.
from line 686
633686 "created_at": "2025-03-12T18:22:41.123456Z",
634687 "organization_uuid": "a1b2c3d4-e5f6-4789-a012-3456789abcde",
635688 "product_surface": "cowork",
689 "truncated": true,
636690 "type": "compliance_local_session",
637691 "updated_at": "2025-03-12T18:22:41.123456Z",
638692 "user": {