## Get Full Session

`client.Chat.Get(ctx, sessionID, query) (*ChatGetResponse, error)`

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

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

### Parameters

- `sessionID string`

- `query ChatGetParams`

  - `OrganizationID param.Field[string]`

  - `ProjectID param.Field[string]`

### Returns

- `type ChatGetResponse struct{…}`

  Full chat session including its complete event history.

  - `Events []ChatGetResponseEventUnion`

    Ordered list of events that make up the conversation history.

    - `type ChatGetResponseEventStop struct{…}`

      - `Error string`

      - `IsError bool`

      - `Usage ChatGetResponseEventStopUsage`

        - `DurationMs float64`

        - `TotalInputTokens int64`

        - `TotalOutputTokens int64`

        - `Turns int64`

      - `SkippedIndexIDs []string`

        Requested indexes this turn could not query.

      - `Type string`

        - `const ChatGetResponseEventStopTypeStop ChatGetResponseEventStopType = "stop"`

    - `type ChatGetResponseEventTextDelta struct{…}`

      - `Content string`

      - `Type string`

        - `const ChatGetResponseEventTextDeltaTypeTextDelta ChatGetResponseEventTextDeltaType = "text_delta"`

    - `type ChatGetResponseEventText struct{…}`

      - `Content string`

      - `Type string`

        - `const ChatGetResponseEventTextTypeText ChatGetResponseEventTextType = "text"`

    - `type ChatGetResponseEventThinkingDelta struct{…}`

      - `Content string`

      - `Type string`

        - `const ChatGetResponseEventThinkingDeltaTypeThinkingDelta ChatGetResponseEventThinkingDeltaType = "thinking_delta"`

    - `type ChatGetResponseEventThinking struct{…}`

      - `Content string`

      - `Type string`

        - `const ChatGetResponseEventThinkingTypeThinking ChatGetResponseEventThinkingType = "thinking"`

    - `type ChatGetResponseEventToolCall struct{…}`

      - `Arguments map[string, any]`

      - `CallID string`

      - `Name string`

      - `Type string`

        - `const ChatGetResponseEventToolCallTypeToolCall ChatGetResponseEventToolCallType = "tool_call"`

    - `type ChatGetResponseEventToolResult struct{…}`

      - `CallID string`

      - `Name string`

      - `Result any`

      - `ImageAttachment ChatGetResponseEventToolResultImageAttachment`

        Coordinates for lazily resolving a page screenshot presigned URL.

        - `AttachmentName string`

        - `SourceID string`

      - `Type string`

        - `const ChatGetResponseEventToolResultTypeToolResult ChatGetResponseEventToolResultType = "tool_result"`

    - `type ChatGetResponseEventUserInput struct{…}`

      - `Content string`

      - `Type string`

        - `const ChatGetResponseEventUserInputTypeUserInput ChatGetResponseEventUserInputType = "user_input"`

  - `LastUpdatedAt string`

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

  - `SessionID string`

    Unique session identifier.

  - `SharedAccess ChatGetResponseSharedAccess`

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

    - `const ChatGetResponseSharedAccessQuery ChatGetResponseSharedAccess = "query"`

    - `const ChatGetResponseSharedAccessReadOnly ChatGetResponseSharedAccess = "read_only"`

  - `GeneratedTitle string`

    Auto-generated title derived from the first user message.

  - `IndexIDs []string`

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

  - `JobMetadata ChatGetResponseJobMetadata`

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

    - `DurationMs float64`

    - `Error string`

    - `ExportConfigIDs []string`

    - `IsError bool`

    - `TotalInputTokens int64`

    - `TotalOutputTokens int64`

    - `Turns int64`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/run-llama/llama-parse-go"
  "github.com/run-llama/llama-parse-go/option"
)

func main() {
  client := llamacloud.NewClient(
    option.WithAPIKey("My API Key"),
  )
  chat, err := client.Chat.Get(
    context.TODO(),
    "session_id",
    llamacloud.ChatGetParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", chat.SessionID)
}
```

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