Skip to main content
POST
Chat with an AI Agent
Send a single message with role: "user" and a parts array. Omit threadId to create a conversation; supply the returned ID on subsequent messages.

Conversation titles

You can supply an optional title when creating a conversation. It is trimmed, must contain 1–120 characters, and must be a single line without control characters. A supplied title is saved immediately and skips automatic naming. For example, an automation can use Daily pipeline review · 2026-09-26. When title is omitted, Aster generates a short title in the background using your organization’s default chat model, the first message’s text and attachment filenames, and bounded context about the agent’s name, description, and role. Chat continues without waiting for the title. If the model is unavailable or generation fails, the first-message fallback remains. The sidebar shows a spinner while generation is pending, with a screen-reader-only “Naming conversation…” label. Manual renames, including clearing the name, take precedence over generation. title is creation-only: sending it with an existing threadId returns 400. Use PATCH /api/renameConversation with { "threadId": "…", "name": "…" } to rename an existing conversation.

Response modes

For API clients and automations, send X-Stream-Response: false. The response is 202 Accepted with { "threadId": "…", "status": "in_progress" }. Poll GET /api/getConversation?threadId=… until streamStatus is terminal, then read the assistant messages. The title may become available independently of the assistant response. Without that header, the endpoint returns an AI SDK UI-message SSE stream. Both modes return the conversation ID in X-Thread-ID.