Chat

Send a message to a chat

Append a turn to a stateful chat and receive the reply. The server persists every message, sends the last 8 turns verbatim and compresses older ones into a rolling summary, so you only ever send the new message. The response shape depends on how the chat was created: a single-Mind chat returns content + messageId (plus parsed / tool_calls when structured output or tools were requested); a multi-Mind chat returns messages[] with one entry per Mind the moderator let speak (each Mind at most once per turn, up to 5 turns); a Study chat fans the message out to every ready Mind in the attached Audiences and returns aggregated outputData. Send role: "system" to store a note in the transcript without triggering any reply. Only the chat owner can post. This endpoint always responds with buffered JSON; for progress streaming use POST /v1/minds/{mindId}/completion with responseMode: "stream".

post/api/v1/chats/{chatId}/messages

Request

  • Base URL: https://api.getminds.ai
  • URL: https://api.getminds.ai/api/v1/chats/{chatId}/messages
  • Auth: HTTP bearer

Path parameters

chatIdstring uuid required

Chat UUID returned by POST /v1/chats.

Request body

contentstring

Message text. Required unless message is given.

clientRequestIdstring uuid

Study chats only: idempotency key for a message queued while Minds are still training (202). A retry with the same key returns the same queued question.

messagestring

Alias for content. message wins when both are present.

role'user' | 'system'

user triggers a reply. system stores the text in the transcript as context for later turns and returns immediately without calling the model or counting against message caps.

modelstring

Per-message model override for single-Mind chats. Must be one of the supported IDs for provider (e.g. claude-sonnet-5, gpt-5.4, gemini-3.7-flash); retired IDs are forwarded to their replacement. Must be sent together with provider.

provider'anthropic' | 'openai' | 'google'

Provider of model. Must be sent together with model. Precedence: request override, then your team's preferred provider, then the product default.

endUserNamestring nullable

Display name of the human end user for this turn. Omitted/empty means the Mind addresses the user neutrally (never the API-key owner's name). Aliases: userDisplayName, userName.

Response

Reply generated (or system note stored). Discriminate on the presence of messages (multi-Mind), outputData (Study), role: "system" (system note) or content (single Mind).

OR
OR
OR

Changes

No recorded changes to this operation across all 1 revision of this API.