# Chat ## List Sessions `ChatListPage beta().chat().list(ChatListParamsparams = ChatListParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **get** `/api/v1/chat` List all chat sessions for the current project. ### Parameters - `ChatListParams params` - `Optional organizationId` - `Optional pageSize` - `Optional pageToken` - `Optional projectId` ### Returns - `class ChatListResponse:` Summary of a chat session, including its title and last run metadata. - `String lastUpdatedAt` ISO-format timestamp showing when the session was last updated. - `String sessionId` Unique session identifier. - `Optional generatedTitle` Auto-generated title derived from the first user message. - `Optional> indexIds` Indexes this session is bound to. Null on unbound sessions. - `Optional jobMetadata` Token usage and status from the most recent run. Null if the session has not been run yet. - `Optional durationMs` - `Optional error` - `Optional> exportConfigIds` - `Optional isError` - `Optional totalInputTokens` - `Optional totalOutputTokens` - `Optional turns` ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.beta.chat.ChatListPage; import com.llamacloud_prod.api.models.beta.chat.ChatListParams; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); ChatListPage page = client.beta().chat().list(); } } ``` #### 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 `ChatCreateResponse beta().chat().create(ChatCreateParamsparams = ChatCreateParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **post** `/api/v1/chat` Create a chat session, optionally bound to indexes (locked after the first message). ### Parameters - `ChatCreateParams params` - `Optional organizationId` - `Optional projectId` - `Optional> indexIds` 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. - `String lastUpdatedAt` ISO-format timestamp showing when the session was last updated. - `String sessionId` Unique session identifier. - `Optional generatedTitle` Auto-generated title derived from the first user message. - `Optional> indexIds` Indexes this session is bound to. Null on unbound sessions. - `Optional jobMetadata` Token usage and status from the most recent run. Null if the session has not been run yet. - `Optional durationMs` - `Optional error` - `Optional> exportConfigIds` - `Optional isError` - `Optional totalInputTokens` - `Optional totalOutputTokens` - `Optional turns` ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.beta.chat.ChatCreateParams; import com.llamacloud_prod.api.models.beta.chat.ChatCreateResponse; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); ChatCreateResponse chat = client.beta().chat().create(); } } ``` #### 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 `ChatRetrieveResponse beta().chat().retrieve(ChatRetrieveParamsparams = ChatRetrieveParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **get** `/api/v1/chat/{session_id}` Retrieve a full session by ID, including its event history. ### Parameters - `ChatRetrieveParams params` - `Optional sessionId` - `Optional organizationId` - `Optional projectId` ### Returns - `class ChatRetrieveResponse:` Full chat session including its complete event history. - `List events` Ordered list of events that make up the conversation history. - `class ThinkingDelta:` - `String content` - `Optional type` - `THINKING_DELTA("thinking_delta")` - `class TextDelta:` - `String content` - `Optional type` - `TEXT_DELTA("text_delta")` - `class Thinking:` - `String content` - `Optional type` - `THINKING("thinking")` - `class Text:` - `String content` - `Optional type` - `TEXT("text")` - `class ToolCall:` - `Arguments arguments` - `String callId` - `String name` - `Optional type` - `TOOL_CALL("tool_call")` - `class ToolResult:` - `String callId` - `String name` - `JsonValue result` - `Optional imageAttachment` Coordinates for lazily resolving a page screenshot presigned URL. - `String attachmentName` - `String sourceId` - `Optional type` - `TOOL_RESULT("tool_result")` - `class Stop:` - `Optional error` - `boolean isError` - `Usage usage` - `Optional durationMs` - `Optional totalInputTokens` - `Optional totalOutputTokens` - `Optional turns` - `Optional type` - `STOP("stop")` - `class UserInput:` - `String content` - `Optional type` - `USER_INPUT("user_input")` - `String lastUpdatedAt` ISO-format timestamp showing when the session was last updated. - `String sessionId` Unique session identifier. - `Optional generatedTitle` Auto-generated title derived from the first user message. - `Optional> indexIds` Indexes this session is bound to. Null on unbound sessions. - `Optional jobMetadata` Token usage and status from the most recent run. Null if the session has not been run yet. - `Optional durationMs` - `Optional error` - `Optional> exportConfigIds` - `Optional isError` - `Optional totalInputTokens` - `Optional totalOutputTokens` - `Optional turns` ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.beta.chat.ChatRetrieveParams; import com.llamacloud_prod.api.models.beta.chat.ChatRetrieveResponse; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); ChatRetrieveResponse chat = client.beta().chat().retrieve("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(ChatDeleteParamsparams = ChatDeleteParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **delete** `/api/v1/chat/{session_id}` Delete a session. ### Parameters - `ChatDeleteParams params` - `Optional sessionId` - `Optional organizationId` - `Optional projectId` ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.beta.chat.ChatDeleteParams; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); client.beta().chat().delete("session_id"); } } ``` ## Get Session Summary `ChatGetSummaryResponse beta().chat().getSummary(ChatGetSummaryParamsparams = ChatGetSummaryParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **get** `/api/v1/chat/{session_id}/summary` Retrieve a session summary by ID. ### Parameters - `ChatGetSummaryParams params` - `Optional sessionId` - `Optional organizationId` - `Optional projectId` ### Returns - `class ChatGetSummaryResponse:` Summary of a chat session, including its title and last run metadata. - `String lastUpdatedAt` ISO-format timestamp showing when the session was last updated. - `String sessionId` Unique session identifier. - `Optional generatedTitle` Auto-generated title derived from the first user message. - `Optional> indexIds` Indexes this session is bound to. Null on unbound sessions. - `Optional jobMetadata` Token usage and status from the most recent run. Null if the session has not been run yet. - `Optional durationMs` - `Optional error` - `Optional> exportConfigIds` - `Optional isError` - `Optional totalInputTokens` - `Optional totalOutputTokens` - `Optional turns` ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.beta.chat.ChatGetSummaryParams; import com.llamacloud_prod.api.models.beta.chat.ChatGetSummaryResponse; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); ChatGetSummaryResponse response = client.beta().chat().getSummary("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 `JsonValue beta().chat().stream(ChatStreamParamsparams, RequestOptionsrequestOptions = RequestOptions.none())` **post** `/api/v1/chat/{session_id}/messages/stream` Stream agent events for a chat turn as Server-Sent Events. ### Parameters - `ChatStreamParams params` - `Optional sessionId` - `Optional organizationId` - `Optional projectId` - `List indexIds` Indexes to retrieve data from. - `String prompt` User message for this chat turn. ### Returns - `class ChatStreamResponse:` ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.models.beta.chat.ChatStreamParams; import com.llamacloud_prod.api.models.beta.chat.ChatStreamResponse; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); ChatStreamParams params = ChatStreamParams.builder() .sessionId("session_id") .addIndexId("idx-abc123") .addIndexId("idx-def456") .prompt("What were the main findings in Q3?") .build(); ChatStreamResponse response = client.beta().chat().stream(params); } } ``` #### Response ```json {} ```