# 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<String> organizationId`

  - `Optional<Long> pageSize`

  - `Optional<String> pageToken`

  - `Optional<String> 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<String> generatedTitle`

    Auto-generated title derived from the first user message.

  - `Optional<List<String>> indexIds`

    Indexes this session is bound to. Null on unbound sessions.

  - `Optional<JobMetadata> jobMetadata`

    Token usage and status from the most recent run. Null if the session has not been run yet.

    - `Optional<Double> durationMs`

    - `Optional<String> error`

    - `Optional<List<String>> exportConfigIds`

    - `Optional<Boolean> isError`

    - `Optional<Long> totalInputTokens`

    - `Optional<Long> totalOutputTokens`

    - `Optional<Long> 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<String> organizationId`

  - `Optional<String> projectId`

  - `Optional<List<String>> 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<String> generatedTitle`

    Auto-generated title derived from the first user message.

  - `Optional<List<String>> indexIds`

    Indexes this session is bound to. Null on unbound sessions.

  - `Optional<JobMetadata> jobMetadata`

    Token usage and status from the most recent run. Null if the session has not been run yet.

    - `Optional<Double> durationMs`

    - `Optional<String> error`

    - `Optional<List<String>> exportConfigIds`

    - `Optional<Boolean> isError`

    - `Optional<Long> totalInputTokens`

    - `Optional<Long> totalOutputTokens`

    - `Optional<Long> 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<String> sessionId`

  - `Optional<String> organizationId`

  - `Optional<String> projectId`

### Returns

- `class ChatRetrieveResponse:`

  Full chat session including its complete event history.

  - `List<Event> events`

    Ordered list of events that make up the conversation history.

    - `class ThinkingDelta:`

      - `String content`

      - `Optional<Type> type`

        - `THINKING_DELTA("thinking_delta")`

    - `class TextDelta:`

      - `String content`

      - `Optional<Type> type`

        - `TEXT_DELTA("text_delta")`

    - `class Thinking:`

      - `String content`

      - `Optional<Type> type`

        - `THINKING("thinking")`

    - `class Text:`

      - `String content`

      - `Optional<Type> type`

        - `TEXT("text")`

    - `class ToolCall:`

      - `Arguments arguments`

      - `String callId`

      - `String name`

      - `Optional<Type> type`

        - `TOOL_CALL("tool_call")`

    - `class ToolResult:`

      - `String callId`

      - `String name`

      - `JsonValue result`

      - `Optional<ImageAttachment> imageAttachment`

        Coordinates for lazily resolving a page screenshot presigned URL.

        - `String attachmentName`

        - `String sourceId`

      - `Optional<Type> type`

        - `TOOL_RESULT("tool_result")`

    - `class Stop:`

      - `Optional<String> error`

      - `boolean isError`

      - `Usage usage`

        - `Optional<Double> durationMs`

        - `Optional<Long> totalInputTokens`

        - `Optional<Long> totalOutputTokens`

        - `Optional<Long> turns`

      - `Optional<Type> type`

        - `STOP("stop")`

    - `class UserInput:`

      - `String content`

      - `Optional<Type> type`

        - `USER_INPUT("user_input")`

  - `String lastUpdatedAt`

    ISO-format timestamp showing when the session was last updated.

  - `String sessionId`

    Unique session identifier.

  - `Optional<String> generatedTitle`

    Auto-generated title derived from the first user message.

  - `Optional<List<String>> indexIds`

    Indexes this session is bound to. Null on unbound sessions.

  - `Optional<JobMetadata> jobMetadata`

    Token usage and status from the most recent run. Null if the session has not been run yet.

    - `Optional<Double> durationMs`

    - `Optional<String> error`

    - `Optional<List<String>> exportConfigIds`

    - `Optional<Boolean> isError`

    - `Optional<Long> totalInputTokens`

    - `Optional<Long> totalOutputTokens`

    - `Optional<Long> 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<String> sessionId`

  - `Optional<String> organizationId`

  - `Optional<String> 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<String> sessionId`

  - `Optional<String> organizationId`

  - `Optional<String> 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<String> generatedTitle`

    Auto-generated title derived from the first user message.

  - `Optional<List<String>> indexIds`

    Indexes this session is bound to. Null on unbound sessions.

  - `Optional<JobMetadata> jobMetadata`

    Token usage and status from the most recent run. Null if the session has not been run yet.

    - `Optional<Double> durationMs`

    - `Optional<String> error`

    - `Optional<List<String>> exportConfigIds`

    - `Optional<Boolean> isError`

    - `Optional<Long> totalInputTokens`

    - `Optional<Long> totalOutputTokens`

    - `Optional<Long> 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<String> sessionId`

  - `Optional<String> organizationId`

  - `Optional<String> projectId`

  - `List<String> 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
{}
```
