## 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
  }
}
```
