title: List chats url: https://platform.claude.com/docs/en/api/compliance/apps/chats/list
List chats
GET /v1/compliance/apps/chats
Lists chat metadata with filtering capabilities for targeted
compliance review. Results are sorted chronologically (time ascending)
by the order_by key, with ties broken by id.
Deprecation notice: Combining user_ids[] with any updated_at.*
filter is deprecated and will be rejected with HTTP 400 after
2026-09-22. For incremental polling by update time, omit user_ids[]
and set order_by=updated_at with after_id cursor pagination —
this returns the same chats across the whole organization in a single
request stream. For per-user listing, use created_at.* filters (or
no time filter) with the default order_by. user_ids[] with
order_by=updated_at is already rejected.
Query parameters
-
after_id: optional stringPagination cursor for retrieving the next page of results. To paginate, pass the
last_idvalue 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. -
before_id: optional stringPagination cursor for retrieving the previous page of results. To paginate, pass the
first_idvalue 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. -
created_at: optional object-
gt: optional stringFilter chats created after this time (RFC 3339 format)
format: date-time
-
gte: optional stringFilter chats created at or after this time (RFC 3339 format)
format: date-time
-
lt: optional stringFilter chats created before this time (RFC 3339 format)
format: date-time
-
lte: optional stringFilter chats created at or before this time (RFC 3339 format)
format: date-time
-
-
limit: optional numberMaximum results (default: 100, max: 1000)
default: 100, maximum: 1000, minimum: 1
-
order_by: optional "created_at" or "updated_at"Sort key for results.
created_at(default) sorts by chat creation time.updated_atsorts by last update time and is only supported for org-wide queries (omit user_ids[]). For org-wide queries, any time filter must match the sort key:created_at.*filters requireorder_by=created_at, andupdated_at.*filters requireorder_by=updated_at.default: created_at
-
"created_at" -
"updated_at"
-
-
organization_ids: optional array of stringFilter by organization IDs (accepts
org_...or organization UUID). Enumerate IDs viaGET /v1/compliance/organizations. -
project_ids: optional array of stringFilter by project IDs (accepts
claude_proj_...). Enumerate IDs viaGET /v1/compliance/apps/projects. Requires user_ids[]; not supported for org-wide queries. -
updated_at: optional object-
gt: optional stringFilter chats updated after this time (RFC 3339 format). Combining updated_at filters with
user_ids[]is deprecated and will be rejected after 2026-09-22; for updated_at-windowed polling, omituser_ids[]and useorder_by=updated_atwithafter_idpagination.format: date-time
-
gte: optional stringFilter chats updated at or after this time (RFC 3339 format). Combining updated_at filters with
user_ids[]is deprecated and will be rejected after 2026-09-22; for updated_at-windowed polling, omituser_ids[]and useorder_by=updated_atwithafter_idpagination.format: date-time
-
lt: optional stringFilter chats updated before this time (RFC 3339 format). Combining updated_at filters with
user_ids[]is deprecated and will be rejected after 2026-09-22; for updated_at-windowed polling, omituser_ids[]and useorder_by=updated_atwithafter_idpagination.format: date-time
-
lte: optional stringFilter chats updated at or before this time (RFC 3339 format). Combining updated_at filters with
user_ids[]is deprecated and will be rejected after 2026-09-22; for updated_at-windowed polling, omituser_ids[]and useorder_by=updated_atwithafter_idpagination.format: date-time
-
-
user_ids: optional array of stringFilter to chats created by specific users (max 10 per request). Omit for an org-wide query. Enumerate IDs via
GET /v1/compliance/organizations/{org_uuid}/users. Deprecated combination: passinguser_ids[]together with anyupdated_at.*filter is deprecated and will be rejected after 2026-09-22. Forupdated_at-windowed polling, omituser_ids[]and useorder_by=updated_atwithafter_idpagination.maxItems: 10
Headers
"x-api-key": optional string
Returns
-
data: array of objectList of chat metadata sorted chronologically by the request's
order_bykey (defaultcreated_at), tie break by id-
id: stringChat ID
-
created_at: stringCreation timestamp
format: date-time
-
deleted_at: string or nullDeletion timestamp if deleted
format: date-time
-
href: stringURL to view this chat in claude.ai
-
model: string or nullModel selected for this chat (e.g. 'claude-opus-5'). May be null for legacy chats that never had a model recorded.
-
name: stringChat name/title
-
organization_uuid: stringOrganization UUID this chat belongs to
-
project_id: string or nullProject ID this chat belongs to
-
updated_at: stringLast update timestamp
format: date-time
-
user: object or nullThe user who created the chat.
Null when the API key is restricted to one organization and the creator is no longer a member of it (for example, after they were removed from it).
A key for the whole parent organization returns the creator's
idand currentemail_addressfor every chat; on the list endpoint, passorganization_ids[]to keep the results to one organization. For the email address the creator had when the chat was created, queryGET /v1/compliance/activitieswithactivity_types[]=claude_chat_createdand acreated_atwindow around the chat'screated_at, find the event whoseclaude_chat_idmatches this chat'sid, and readactor.email_address. These events exist only for chats created after compliance logging was enabled for the organization.-
id: stringUser identifier
-
email_address: stringUser's email address
-
-
organization_id: stringDeprecated
Organization ID this chat belongs to
-
-
first_id: string or nullOpaque pagination cursor for the first chat in the current result set. Pass as
before_idon the next request to page backwards. Backward pagination is only supported for per-user queries (user_ids[]set); org-wide queries do not acceptbefore_id. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice. -
has_more: booleanWhether more records exist beyond the current result set
-
last_id: string or nullOpaque pagination cursor for the last chat in the current result set. Pass as
after_idon the next request to page forwards. Clients should treat this value as an opaque string and not attempt to parse or interpret its contents, as the format may change without notice.
Example
curl https://api.anthropic.com/v1/compliance/apps/chats \
-H 'anthropic-version: 2023-06-01' \
-H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY"Response (200)
{
"data": [
{
"id": "claude_chat_abc123",
"name": "Product Requirements Discussion",
"created_at": "2025-06-07T08:09:10Z",
"updated_at": "2025-06-07T09:10:11Z",
"organization_id": "org_abc123",
"organization_uuid": "abcdef01-2345-6789-abcd-ef0123456789",
"project_id": "claude_proj_xyz789",
"model": "claude-opus-5",
"user": {
"id": "user_xyz456",
"email_address": "user@example.com"
},
"href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789"
}
],
"has_more": false,
"first_id": "eyJrIjogImNyZWF0ZWRfYXQiLCAidCI6ICIyMDI1LTA2LTA3VDA4OjA5OjEwKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLTIzNDUtNjc4OS1hYmNkLWVmMDEyMzQ1Njc4OSJ9",
"last_id": "eyJrIjogImNyZWF0ZWRfYXQiLCAidCI6ICIyMDI1LTA2LTA3VDA4OjA5OjEwKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLTIzNDUtNjc4OS1hYmNkLWVmMDEyMzQ1Njc4OSJ9"
}