Conversation Resources
GET /api/orgs/{org_id}/chats/{chat_id}/artifacts
Section titled “GET /api/orgs/{org_id}/chats/{chat_id}/artifacts”List Conversation Artifacts
List all artifacts produced within a conversation (conversation-wide).
Phase 2 (chat-outcomes model): Artifact.chat_id is the sole NOT-NULL
anchor; the old assignment_id subquery path is gone.
Requires membership in the organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| chat_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | ConversationArtifactListResponse |
| 422 | Validation Error | HTTPValidationError |
GET /api/orgs/{org_id}/chats/{chat_id}/files
Section titled “GET /api/orgs/{org_id}/chats/{chat_id}/files”List Conversation Files
List all files attached to a conversation (conversation-wide).
Returns every File row where chat_id matches the conversation.
Because chat_id is the required NOT-NULL owner (Phase 2 chat-outcomes
model), this is the authoritative read for all files in a conversation.
Requires membership in the organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| chat_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | ConversationFileListResponse |
| 422 | Validation Error | HTTPValidationError |
GET /api/orgs/{org_id}/chats/{chat_id}/files/{file_id}/download
Section titled “GET /api/orgs/{org_id}/chats/{chat_id}/files/{file_id}/download”Download Conversation File
Download a file that belongs to this conversation.
The owning column is files.chat_id — membership in the conversation is
sufficient to download any file attached to it.
Validates that the file belongs to both this conversation and this organisation before streaming the bytes from S3.
Requires membership in the organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| chat_id | path | string (uuid) | yes | |
| file_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | object |
| 422 | Validation Error | HTTPValidationError |
GET /api/orgs/{org_id}/chats/{chat_id}/logs
Section titled “GET /api/orgs/{org_id}/chats/{chat_id}/logs”List Conversation Logs
List all log entries for a conversation.
Phase 2 (chat-outcomes model): ChatLog.chat_id is the direct owner
(table renamed from assignment_logs → chat_logs; assignment_id
column renamed to chat_id). Queries directly without any subquery.
Results are ordered by created_at ascending.
Requires membership in the organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| chat_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | ConversationLogsResponse |
| 422 | Validation Error | HTTPValidationError |
GET /api/orgs/{org_id}/chats/{chat_id}/related-memories
Section titled “GET /api/orgs/{org_id}/chats/{chat_id}/related-memories”Get Conversation Related Memories
Return memories related to a conversation.
Delegates to get_chat_related_memories in agent_memories.py. The
legacy /api/orgs/{org_id}/assignments/{chat_id}/related-memories path
has been removed; this is now the only endpoint for this resource.
Requires membership in the organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| chat_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | object |
| 422 | Validation Error | HTTPValidationError |
GET /api/orgs/{org_id}/chats/{chat_id}/todos
Section titled “GET /api/orgs/{org_id}/chats/{chat_id}/todos”List Conversation Todos
List all todo items for a conversation, ordered by position then created_at.
Mirrors the list the agent manages via the write_todos internal agent tool.
All todo items are anchored on chat_id (assignment_id was dropped in Phase 2).
Requires membership in the organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| chat_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | ConversationTodoListResponse |
| 422 | Validation Error | HTTPValidationError |
GET /api/orgs/{org_id}/chats/{chat_id}/transcripts
Section titled “GET /api/orgs/{org_id}/chats/{chat_id}/transcripts”Get Conversation Transcripts
Lightweight index of per-step LLM transcripts for an entire conversation.
Returns all agent_transcripts rows ordered by created_at ascending
then step ascending. Only scalar columns are selected — the heavy
request_messages, response_message, tool_definitions, and
model_params JSONB columns are never loaded. Instead,
request_message_count gives the number of messages in
request_messages (computed in Postgres via jsonb_array_length).
Use GET /transcripts/steps/{step_id} to lazy-load the full payload for
any individual step.
Gated to ADMIN or OWNER role.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| chat_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | ConversationTranscriptIndexResponse |
| 422 | Validation Error | HTTPValidationError |
GET /api/orgs/{org_id}/chats/{chat_id}/transcripts/steps/{step_id}
Section titled “GET /api/orgs/{org_id}/chats/{chat_id}/transcripts/steps/{step_id}”Get Transcript Step Detail
Full detail for a single transcript step — heavy JSONB included.
Returns request_messages, response_message, tool_definitions,
and model_params for a single agent_transcripts row. Designed to be
called lazily (on scroll / on selection) from the transcript debug page so
the index renders instantly and the heavy payload is fetched only for the
step being inspected.
The step must belong to the specified chat_id (i.e.
agent_transcripts.chat_id == chat_id). Returns 404 if the step is not
found or does not belong to this conversation.
Gated to ADMIN or OWNER role.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| chat_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes | |
| step_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | ConversationTranscriptStepResponse |
| 422 | Validation Error | HTTPValidationError |