## Get Full Session

`client.chat.retrieve(stringsessionID, ChatRetrieveParamsquery?, RequestOptionsoptions?): ChatRetrieveResponse`

**get** `/api/v1/chat/{session_id}`

Retrieve a full session by ID, including its event history.

### Parameters

- `sessionID: string`

- `query: ChatRetrieveParams`

  - `organization_id?: string | null`

  - `project_id?: string | null`

### Returns

- `ChatRetrieveResponse`

  Full chat session including its complete event history.

  - `events: Array<StopEvent | TextDeltaEvent | TextEvent | 5 more>`

    Ordered list of events that make up the conversation history.

    - `StopEvent`

      - `error: string | null`

      - `is_error: boolean`

      - `usage: Usage`

        - `duration_ms?: number`

        - `total_input_tokens?: number | null`

        - `total_output_tokens?: number | null`

        - `turns?: number`

      - `skipped_index_ids?: Array<string>`

        Requested indexes this turn could not query.

      - `type?: "stop"`

        - `"stop"`

    - `TextDeltaEvent`

      - `content: string`

      - `type?: "text_delta"`

        - `"text_delta"`

    - `TextEvent`

      - `content: string`

      - `type?: "text"`

        - `"text"`

    - `ThinkingDeltaEvent`

      - `content: string`

      - `type?: "thinking_delta"`

        - `"thinking_delta"`

    - `ThinkingEvent`

      - `content: string`

      - `type?: "thinking"`

        - `"thinking"`

    - `ToolCallEvent`

      - `arguments: Record<string, unknown>`

      - `call_id: string`

      - `name: string`

      - `type?: "tool_call"`

        - `"tool_call"`

    - `ToolResultEvent`

      - `call_id: string`

      - `name: string`

      - `result: unknown`

      - `image_attachment?: ImageAttachment | null`

        Coordinates for lazily resolving a page screenshot presigned URL.

        - `attachment_name: string`

        - `source_id: string`

      - `type?: "tool_result"`

        - `"tool_result"`

    - `UserInputEvent`

      - `content: string`

      - `type?: "user_input"`

        - `"user_input"`

  - `last_updated_at: string`

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

  - `session_id: string`

    Unique session identifier.

  - `shared_access: "query" | "read_only"`

    What this chat's share link grants: read_only (transcript only) or query (viewers may ask new questions).

    - `"query"`

    - `"read_only"`

  - `generated_title?: string | null`

    Auto-generated title derived from the first user message.

  - `index_ids?: Array<string> | null`

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

  - `job_metadata?: JobMetadata | null`

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

    - `duration_ms?: number`

    - `error?: string | null`

    - `export_config_ids?: Array<string> | null`

    - `is_error?: boolean`

    - `total_input_tokens?: number | null`

    - `total_output_tokens?: number | null`

    - `turns?: number`

### Example

```typescript
import LlamaCloud from '@llamaindex/llama-cloud';

const client = new LlamaCloud({
  apiKey: process.env['LLAMA_CLOUD_API_KEY'], // This is the default and can be omitted
});

const chat = await client.chat.retrieve('session_id');

console.log(chat.session_id);
```

#### Response

```json
{
  "events": [
    {
      "error": "error",
      "is_error": true,
      "usage": {
        "duration_ms": 0,
        "total_input_tokens": 0,
        "total_output_tokens": 0,
        "turns": 0
      },
      "skipped_index_ids": [
        "string"
      ],
      "type": "stop"
    }
  ],
  "last_updated_at": "2026-04-22T12:34:41.342245",
  "session_id": "ses-abc123",
  "shared_access": "read_only",
  "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
  }
}
```
