> For the complete documentation index, see [llms.txt](https://docs.visualsentinel.com/llms.txt)

# Chat API

AI chat support system. This page lists all 12 endpoints in the Chat area of the Visual Sentinel REST API.

Base URL: `https://visualsentinel.com`. Unless an endpoint says otherwise it accepts an API key or a session cookie, see [Authentication](https://docs.visualsentinel.com/guides/authentication.md). Most error responses use the [ErrorResponse](https://docs.visualsentinel.com/reference/models/error-response.md) shape, see [Errors](https://docs.visualsentinel.com/guides/errors.md) and [Rate limits](https://docs.visualsentinel.com/guides/rate-limits.md).

## Endpoints

- [Get chat messages](#get-chat-messages): `GET /api/chat`
- [Send chat message](#send-chat-message): `POST /api/chat`
- [List chat sessions](#list-chat-sessions): `GET /api/chat/sessions`
- [Create chat session](#create-chat-session): `POST /api/chat/sessions`
- [Get chat session](#get-chat-session): `GET /api/chat/sessions/{id}`
- [Update chat session](#update-chat-session): `PATCH /api/chat/sessions/{id}`
- [Delete chat session](#delete-chat-session): `DELETE /api/chat/sessions/{id}`
- [Convert chat to support ticket](#convert-chat-to-ticket): `POST /api/chat/sessions/{id}/convert-to-ticket`
- [Submit chat feedback](#submit-chat-feedback): `POST /api/chat/feedback`
- [Upload chat attachment](#upload-chat-attachment): `POST /api/chat/upload`
- [List support tickets](#list-support-tickets): `GET /api/support/tickets`
- [Create support ticket](#create-support-ticket): `POST /api/support/tickets`

## Get chat messages

`GET /api/chat`

Get chat message history.

Authentication: session cookie only. API keys are refused.

**Responses**

- `200`: Chat messages.

## Send chat message

`POST /api/chat`

Send a message to the AI chat support system.

Authentication: session cookie only. API keys are refused.

**Responses**

- `200`: AI response.

## List chat sessions

`GET /api/chat/sessions`

Get all chat sessions for the current user.

Authentication: session cookie only. API keys are refused.

**Responses**

- `200`: Chat sessions.

## Create chat session

`POST /api/chat/sessions`

Start a new chat session.

Authentication: session cookie only. API keys are refused.

**Responses**

- `201`: Session created.

## Get chat session

`GET /api/chat/sessions/{id}`

Get a specific chat session with messages.

Authentication: session cookie only. API keys are refused.

**Parameters**

- `id` (path, string (uuid), required)

**Responses**

- `200`: Chat session with messages.

## Update chat session

`PATCH /api/chat/sessions/{id}`

Update a chat session (e.g., rename).

Authentication: session cookie only. API keys are refused.

**Parameters**

- `id` (path, string (uuid), required)

**Responses**

- `200`: Session updated.

## Delete chat session

`DELETE /api/chat/sessions/{id}`

Delete a chat session and its messages.

Authentication: session cookie only. API keys are refused.

**Parameters**

- `id` (path, string (uuid), required)

**Responses**

- `200`: Session deleted.

## Convert chat to support ticket

`POST /api/chat/sessions/{id}/convert-to-ticket`

Convert a chat session into a support ticket for human follow-up.

Authentication: session cookie only. API keys are refused.

**Parameters**

- `id` (path, string (uuid), required)

**Responses**

- `200`: Ticket created.

## Submit chat feedback

`POST /api/chat/feedback`

Submit feedback (thumbs up/down) for a chat response.

Authentication: session cookie only. API keys are refused.

**Responses**

- `200`: Feedback submitted.

## Upload chat attachment

`POST /api/chat/upload`

Upload an image or file attachment for a chat message.

Authentication: session cookie only. API keys are refused.

Request body (required): object (`multipart/form-data`).

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `file` | string (binary) | No |   |

**Responses**

- `200`: File uploaded.

## List support tickets

`GET /api/support/tickets`

Get all support tickets for the current user.

**Responses**

- `200`: Support tickets.

## Create support ticket

`POST /api/support/tickets`

Create a support ticket directly.

**Responses**

- `201`: Ticket created.

Generated from the OpenAPI 3.1 specification at [https://docs.visualsentinel.com/openapi.json](https://docs.visualsentinel.com/openapi.json), the same file the interactive reference reads.
