The Chat object
Each chat is represented by a JSON object with the following fields:string
required
Unique identifier for the chat (UUIDv4).
string
required
Display title of the chat. Auto-generated from the first user message if not provided during creation.
string | null
ISO 8601 timestamp when the chat was pinned, or
null if it is not pinned. Updated by toggling the pinned state.string
required
ISO 8601 timestamp when the chat was created. This value never changes.
string
required
ISO 8601 timestamp when the chat was last updated (new message, pin toggle, or other mutation). Ordered chronologically.
string | null
The ID of the currently active agent run inside this chat, or
null when no run is in progress. While this is set, sending another message returns a 409 CONFLICT.Lifecycle
A chat moves through a simple lifecycle from creation to archival.1
Create a chat
Send a
POST request to /api/v1/chats. You can optionally provide a title. If omitted, the title is set automatically from the first user message.2
Send messages
Add messages by posting to
/api/v1/chats/{chatId}/messages. Each message becomes part of the chat’s history and updates updatedAt.3
Wait for the run to finish
Only one run can be active inside a chat at any time. The
activeRunId field tells you whether a run is currently in progress. If you try to send a new message while activeRunId is set, the API returns 409 CONFLICT.4
Delete when done
Remove a chat and all its contents with
DELETE /api/v1/chats/{chatId}. This action is permanent and cannot be undone.Pinning
Pinning lets you mark important chats so they are easy to find. Pinning is a toggle: calling the pin endpoint repeatedly switches the state on and off.POST /api/v1/chats/{chatId}/pin
pinnedAt is set to the current ISO 8601 timestamp. When you unpin it, pinnedAt becomes null. The updatedAt field is also updated every time the pinned state changes.
Listing and filtering
To retrieve the chats you have access to, send aGET request to the chats collection endpoint.
GET /api/v1/chats
updatedAt in descending order, so the most recently active chats appear first. Use query parameters to navigate pages. If a chat is owned by another user, it is not included in the results because VyomFlow returns 404 for resources outside your ownership scope rather than 403.