## Get Full Session

`ChatRetrieveResponse Beta.Chat.Retrieve(ChatRetrieveParamsparameters, CancellationTokencancellationToken = default)`

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

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

### Parameters

- `ChatRetrieveParams parameters`

  - `required string sessionID`

  - `string? organizationID`

  - `string? projectID`

### Returns

- `class ChatRetrieveResponse:`

  Full chat session including its complete event history.

  - `required IReadOnlyList<Event> Events`

    Ordered list of events that make up the conversation history.

    - `class Stop:`

      - `required string? Error`

      - `required Boolean IsError`

      - `required Usage Usage`

        - `Double DurationMs`

        - `Long? TotalInputTokens`

        - `Long? TotalOutputTokens`

        - `Long Turns`

      - `Type Type`

        - `"stop"Stop`

    - `class TextDelta:`

      - `required string Content`

      - `Type Type`

        - `"text_delta"TextDelta`

    - `class Text:`

      - `required string Content`

      - `Type Type`

        - `"text"Text`

    - `class ThinkingDelta:`

      - `required string Content`

      - `Type Type`

        - `"thinking_delta"ThinkingDelta`

    - `class Thinking:`

      - `required string Content`

      - `Type Type`

        - `"thinking"Thinking`

    - `class ToolCall:`

      - `required IReadOnlyDictionary<string, JsonElement> Arguments`

      - `required string CallID`

      - `required string Name`

      - `Type Type`

        - `"tool_call"ToolCall`

    - `class ToolResult:`

      - `required string CallID`

      - `required string Name`

      - `required JsonElement Result`

      - `ImageAttachment? ImageAttachment`

        Coordinates for lazily resolving a page screenshot presigned URL.

        - `required string AttachmentName`

        - `required string SourceID`

      - `Type Type`

        - `"tool_result"ToolResult`

    - `class UserInput:`

      - `required string Content`

      - `Type Type`

        - `"user_input"UserInput`

  - `required string LastUpdatedAt`

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

  - `required string SessionID`

    Unique session identifier.

  - `string? GeneratedTitle`

    Auto-generated title derived from the first user message.

  - `IReadOnlyList<string>? IndexIds`

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

  - `JobMetadata? JobMetadata`

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

    - `Double DurationMs`

    - `string? Error`

    - `IReadOnlyList<string>? ExportConfigIds`

    - `Boolean IsError`

    - `Long? TotalInputTokens`

    - `Long? TotalOutputTokens`

    - `Long Turns`

### Example

```csharp
ChatRetrieveParams parameters = new() { SessionID = "session_id" };

var chat = await client.Beta.Chat.Retrieve(parameters);

Console.WriteLine(chat);
```

#### Response

```json
{
  "events": [
    {
      "error": "error",
      "is_error": true,
      "usage": {
        "duration_ms": 0,
        "total_input_tokens": 0,
        "total_output_tokens": 0,
        "turns": 0
      },
      "type": "stop"
    }
  ],
  "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
  }
}
```
