# Chat ## List Sessions `beta.chat.list(ChatListParams**kwargs) -> SyncPaginatedCursor[ChatListResponse]` **get** `/api/v1/chat` List all chat sessions for the current project. ### Parameters - `organization_id: Optional[str]` - `page_size: Optional[int]` - `page_token: Optional[str]` - `project_id: Optional[str]` ### Returns - `class ChatListResponse: …` Summary of a chat session, including its title and last run metadata. - `last_updated_at: str` ISO-format timestamp showing when the session was last updated. - `session_id: str` Unique session identifier. - `generated_title: Optional[str]` Auto-generated title derived from the first user message. - `index_ids: Optional[List[str]]` Indexes this session is bound to. Null on unbound sessions. - `job_metadata: Optional[JobMetadata]` Token usage and status from the most recent run. Null if the session has not been run yet. - `duration_ms: Optional[float]` - `error: Optional[str]` - `export_config_ids: Optional[List[str]]` - `is_error: Optional[bool]` - `total_input_tokens: Optional[int]` - `total_output_tokens: Optional[int]` - `turns: Optional[int]` ### Example ```python import os from llama_cloud import LlamaCloud client = LlamaCloud( api_key=os.environ.get("LLAMA_CLOUD_API_KEY"), # This is the default and can be omitted ) page = client.beta.chat.list() page = page.items[0] print(page.session_id) ``` #### Response ```json { "items": [ { "last_updated_at": "2026-04-22T12:34:41.342245", "session_id": "ses-abc123", "generated_title": "What were the main findings in Q3?...", "index_ids": [ "idx-abc123", "idx-def456" ], "job_metadata": { "duration_ms": 0, "error": "error", "export_config_ids": [ "string" ], "is_error": true, "total_input_tokens": 0, "total_output_tokens": 0, "turns": 0 } } ], "next_page_token": "next_page_token" } ``` ## Create Session `beta.chat.create(ChatCreateParams**kwargs) -> ChatCreateResponse` **post** `/api/v1/chat` Create a chat session, optionally bound to indexes (locked after the first message). ### Parameters - `organization_id: Optional[str]` - `project_id: Optional[str]` - `index_ids: Optional[Sequence[str]]` Indexes this session will retrieve from. Once set and the first message has been sent, the source set is locked for the session's lifetime. Leave null to create an unbound session. ### Returns - `class ChatCreateResponse: …` Summary of a chat session, including its title and last run metadata. - `last_updated_at: str` ISO-format timestamp showing when the session was last updated. - `session_id: str` Unique session identifier. - `generated_title: Optional[str]` Auto-generated title derived from the first user message. - `index_ids: Optional[List[str]]` Indexes this session is bound to. Null on unbound sessions. - `job_metadata: Optional[JobMetadata]` Token usage and status from the most recent run. Null if the session has not been run yet. - `duration_ms: Optional[float]` - `error: Optional[str]` - `export_config_ids: Optional[List[str]]` - `is_error: Optional[bool]` - `total_input_tokens: Optional[int]` - `total_output_tokens: Optional[int]` - `turns: Optional[int]` ### Example ```python import os from llama_cloud import LlamaCloud client = LlamaCloud( api_key=os.environ.get("LLAMA_CLOUD_API_KEY"), # This is the default and can be omitted ) chat = client.beta.chat.create() print(chat.session_id) ``` #### Response ```json { "last_updated_at": "2026-04-22T12:34:41.342245", "session_id": "ses-abc123", "generated_title": "What were the main findings in Q3?...", "index_ids": [ "idx-abc123", "idx-def456" ], "job_metadata": { "duration_ms": 0, "error": "error", "export_config_ids": [ "string" ], "is_error": true, "total_input_tokens": 0, "total_output_tokens": 0, "turns": 0 } } ``` ## Get Full Session `beta.chat.retrieve(strsession_id, ChatRetrieveParams**kwargs) -> ChatRetrieveResponse` **get** `/api/v1/chat/{session_id}` Retrieve a full session by ID, including its event history. ### Parameters - `session_id: str` - `organization_id: Optional[str]` - `project_id: Optional[str]` ### Returns - `class ChatRetrieveResponse: …` Full chat session including its complete event history. - `events: List[Event]` Ordered list of events that make up the conversation history. - `class EventThinkingDeltaEvent: …` - `content: str` - `type: Optional[Literal["thinking_delta"]]` - `"thinking_delta"` - `class EventTextDeltaEvent: …` - `content: str` - `type: Optional[Literal["text_delta"]]` - `"text_delta"` - `class EventThinkingEvent: …` - `content: str` - `type: Optional[Literal["thinking"]]` - `"thinking"` - `class EventTextEvent: …` - `content: str` - `type: Optional[Literal["text"]]` - `"text"` - `class EventToolCallEvent: …` - `arguments: Dict[str, object]` - `call_id: str` - `name: str` - `type: Optional[Literal["tool_call"]]` - `"tool_call"` - `class EventToolResultEvent: …` - `call_id: str` - `name: str` - `result: object` - `image_attachment: Optional[EventToolResultEventImageAttachment]` Coordinates for lazily resolving a page screenshot presigned URL. - `attachment_name: str` - `source_id: str` - `type: Optional[Literal["tool_result"]]` - `"tool_result"` - `class EventStopEvent: …` - `error: Optional[str]` - `is_error: bool` - `usage: EventStopEventUsage` - `duration_ms: Optional[float]` - `total_input_tokens: Optional[int]` - `total_output_tokens: Optional[int]` - `turns: Optional[int]` - `type: Optional[Literal["stop"]]` - `"stop"` - `class EventUserInputEvent: …` - `content: str` - `type: Optional[Literal["user_input"]]` - `"user_input"` - `last_updated_at: str` ISO-format timestamp showing when the session was last updated. - `session_id: str` Unique session identifier. - `generated_title: Optional[str]` Auto-generated title derived from the first user message. - `index_ids: Optional[List[str]]` Indexes this session is bound to. Null on unbound sessions. - `job_metadata: Optional[JobMetadata]` Token usage and status from the most recent run. Null if the session has not been run yet. - `duration_ms: Optional[float]` - `error: Optional[str]` - `export_config_ids: Optional[List[str]]` - `is_error: Optional[bool]` - `total_input_tokens: Optional[int]` - `total_output_tokens: Optional[int]` - `turns: Optional[int]` ### Example ```python import os from llama_cloud import LlamaCloud client = LlamaCloud( api_key=os.environ.get("LLAMA_CLOUD_API_KEY"), # This is the default and can be omitted ) chat = client.beta.chat.retrieve( session_id="session_id", ) print(chat.session_id) ``` #### Response ```json { "events": [ { "content": "content", "type": "thinking_delta" } ], "last_updated_at": "2026-04-22T12:34:41.342245", "session_id": "ses-abc123", "generated_title": "What were the main findings in Q3?...", "index_ids": [ "idx-abc123", "idx-def456" ], "job_metadata": { "duration_ms": 0, "error": "error", "export_config_ids": [ "string" ], "is_error": true, "total_input_tokens": 0, "total_output_tokens": 0, "turns": 0 } } ``` ## Delete Session `beta.chat.delete(strsession_id, ChatDeleteParams**kwargs)` **delete** `/api/v1/chat/{session_id}` Delete a session. ### Parameters - `session_id: str` - `organization_id: Optional[str]` - `project_id: Optional[str]` ### Example ```python import os from llama_cloud import LlamaCloud client = LlamaCloud( api_key=os.environ.get("LLAMA_CLOUD_API_KEY"), # This is the default and can be omitted ) client.beta.chat.delete( session_id="session_id", ) ``` ## Get Session Summary `beta.chat.get_summary(strsession_id, ChatGetSummaryParams**kwargs) -> ChatGetSummaryResponse` **get** `/api/v1/chat/{session_id}/summary` Retrieve a session summary by ID. ### Parameters - `session_id: str` - `organization_id: Optional[str]` - `project_id: Optional[str]` ### Returns - `class ChatGetSummaryResponse: …` Summary of a chat session, including its title and last run metadata. - `last_updated_at: str` ISO-format timestamp showing when the session was last updated. - `session_id: str` Unique session identifier. - `generated_title: Optional[str]` Auto-generated title derived from the first user message. - `index_ids: Optional[List[str]]` Indexes this session is bound to. Null on unbound sessions. - `job_metadata: Optional[JobMetadata]` Token usage and status from the most recent run. Null if the session has not been run yet. - `duration_ms: Optional[float]` - `error: Optional[str]` - `export_config_ids: Optional[List[str]]` - `is_error: Optional[bool]` - `total_input_tokens: Optional[int]` - `total_output_tokens: Optional[int]` - `turns: Optional[int]` ### Example ```python import os from llama_cloud import LlamaCloud client = LlamaCloud( api_key=os.environ.get("LLAMA_CLOUD_API_KEY"), # This is the default and can be omitted ) response = client.beta.chat.get_summary( session_id="session_id", ) print(response.session_id) ``` #### Response ```json { "last_updated_at": "2026-04-22T12:34:41.342245", "session_id": "ses-abc123", "generated_title": "What were the main findings in Q3?...", "index_ids": [ "idx-abc123", "idx-def456" ], "job_metadata": { "duration_ms": 0, "error": "error", "export_config_ids": [ "string" ], "is_error": true, "total_input_tokens": 0, "total_output_tokens": 0, "turns": 0 } } ``` ## Stream Messages `beta.chat.stream(strsession_id, ChatStreamParams**kwargs) -> object` **post** `/api/v1/chat/{session_id}/messages/stream` Stream agent events for a chat turn as Server-Sent Events. ### Parameters - `session_id: str` - `index_ids: Sequence[str]` Indexes to retrieve data from. - `prompt: str` User message for this chat turn. - `organization_id: Optional[str]` - `project_id: Optional[str]` ### Returns - `object` ### Example ```python import os from llama_cloud import LlamaCloud client = LlamaCloud( api_key=os.environ.get("LLAMA_CLOUD_API_KEY"), # This is the default and can be omitted ) response = client.beta.chat.stream( session_id="session_id", index_ids=["idx-abc123", "idx-def456"], prompt="What were the main findings in Q3?", ) print(response) ``` #### Response ```json {} ``` ## Domain Types ### Chat List Response - `class ChatListResponse: …` Summary of a chat session, including its title and last run metadata. - `last_updated_at: str` ISO-format timestamp showing when the session was last updated. - `session_id: str` Unique session identifier. - `generated_title: Optional[str]` Auto-generated title derived from the first user message. - `index_ids: Optional[List[str]]` Indexes this session is bound to. Null on unbound sessions. - `job_metadata: Optional[JobMetadata]` Token usage and status from the most recent run. Null if the session has not been run yet. - `duration_ms: Optional[float]` - `error: Optional[str]` - `export_config_ids: Optional[List[str]]` - `is_error: Optional[bool]` - `total_input_tokens: Optional[int]` - `total_output_tokens: Optional[int]` - `turns: Optional[int]` ### Chat Create Response - `class ChatCreateResponse: …` Summary of a chat session, including its title and last run metadata. - `last_updated_at: str` ISO-format timestamp showing when the session was last updated. - `session_id: str` Unique session identifier. - `generated_title: Optional[str]` Auto-generated title derived from the first user message. - `index_ids: Optional[List[str]]` Indexes this session is bound to. Null on unbound sessions. - `job_metadata: Optional[JobMetadata]` Token usage and status from the most recent run. Null if the session has not been run yet. - `duration_ms: Optional[float]` - `error: Optional[str]` - `export_config_ids: Optional[List[str]]` - `is_error: Optional[bool]` - `total_input_tokens: Optional[int]` - `total_output_tokens: Optional[int]` - `turns: Optional[int]` ### Chat Retrieve Response - `class ChatRetrieveResponse: …` Full chat session including its complete event history. - `events: List[Event]` Ordered list of events that make up the conversation history. - `class EventThinkingDeltaEvent: …` - `content: str` - `type: Optional[Literal["thinking_delta"]]` - `"thinking_delta"` - `class EventTextDeltaEvent: …` - `content: str` - `type: Optional[Literal["text_delta"]]` - `"text_delta"` - `class EventThinkingEvent: …` - `content: str` - `type: Optional[Literal["thinking"]]` - `"thinking"` - `class EventTextEvent: …` - `content: str` - `type: Optional[Literal["text"]]` - `"text"` - `class EventToolCallEvent: …` - `arguments: Dict[str, object]` - `call_id: str` - `name: str` - `type: Optional[Literal["tool_call"]]` - `"tool_call"` - `class EventToolResultEvent: …` - `call_id: str` - `name: str` - `result: object` - `image_attachment: Optional[EventToolResultEventImageAttachment]` Coordinates for lazily resolving a page screenshot presigned URL. - `attachment_name: str` - `source_id: str` - `type: Optional[Literal["tool_result"]]` - `"tool_result"` - `class EventStopEvent: …` - `error: Optional[str]` - `is_error: bool` - `usage: EventStopEventUsage` - `duration_ms: Optional[float]` - `total_input_tokens: Optional[int]` - `total_output_tokens: Optional[int]` - `turns: Optional[int]` - `type: Optional[Literal["stop"]]` - `"stop"` - `class EventUserInputEvent: …` - `content: str` - `type: Optional[Literal["user_input"]]` - `"user_input"` - `last_updated_at: str` ISO-format timestamp showing when the session was last updated. - `session_id: str` Unique session identifier. - `generated_title: Optional[str]` Auto-generated title derived from the first user message. - `index_ids: Optional[List[str]]` Indexes this session is bound to. Null on unbound sessions. - `job_metadata: Optional[JobMetadata]` Token usage and status from the most recent run. Null if the session has not been run yet. - `duration_ms: Optional[float]` - `error: Optional[str]` - `export_config_ids: Optional[List[str]]` - `is_error: Optional[bool]` - `total_input_tokens: Optional[int]` - `total_output_tokens: Optional[int]` - `turns: Optional[int]` ### Chat Get Summary Response - `class ChatGetSummaryResponse: …` Summary of a chat session, including its title and last run metadata. - `last_updated_at: str` ISO-format timestamp showing when the session was last updated. - `session_id: str` Unique session identifier. - `generated_title: Optional[str]` Auto-generated title derived from the first user message. - `index_ids: Optional[List[str]]` Indexes this session is bound to. Null on unbound sessions. - `job_metadata: Optional[JobMetadata]` Token usage and status from the most recent run. Null if the session has not been run yet. - `duration_ms: Optional[float]` - `error: Optional[str]` - `export_config_ids: Optional[List[str]]` - `is_error: Optional[bool]` - `total_input_tokens: Optional[int]` - `total_output_tokens: Optional[int]` - `turns: Optional[int]`