## Create Session

`ChatCreateResponse Beta.Chat.Create(ChatCreateParams?parameters, CancellationTokencancellationToken = default)`

**post** `/api/v1/chat`

Create a chat session, optionally bound to indexes (locked after the first message).

### Parameters

- `ChatCreateParams parameters`

  - `string? organizationID`

    Query param

  - `string? projectID`

    Query param

  - `IReadOnlyList<string>? indexIds`

    Body param: 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.

  - `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
ChatCreateParams parameters = new();

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

Console.WriteLine(chat);
```

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