Skip to main content
POST
Call this from the visitor’s browser. It takes the embed’s public widget key in X-ARUKZ-Widget-Key, and the browser’s Origin must be allowed by both the deployment’s allowed_origins and the platform-wide widget allowlist. See Website widget. You must also send the thread’s X-ARUKZ-Visitor-Token. The token is checked before the question is recorded or any model is called. A missing token, another thread’s token and an unknown conversation all return the same 404. The answer is generated from the assistant’s own knowledge, with citations. When the knowledge does not contain the answer, the assistant abstains: the response is still 201, with answer.abstained set to true and no citations. See How answers work. A thread answers one question at a time. Sending a question while the previous answer is still being generated returns 409. To retry safely after a dropped connection, send the same idempotency_key: if that question was already answered, you get the original turn back and the model is not called again. To show the answer as it is written, use Stream a widget message instead. When a request is refused, the response carries no Access-Control-Allow-Origin header, so in a cross-origin browser request fetch rejects with a network error instead of exposing the error body.
string
required
The conversation’s ID (UUID).
string
required
The deployment’s public widget key, arukz_wk_….
string
required
The visitor token returned when this thread was started.
string
required
Set by the browser. It must exactly match an origin allowed for this deployment. When you call from outside a browser, set it yourself.
string
required
The question. Up to 16,000 characters, and not empty after surrounding whitespace is trimmed. Newlines and tabs are allowed; other control characters are refused.
string
Your own key for this question, up to 128 characters of A-Z, a-z, 0-9, _, ., : and -. Resending a key that was already answered in this thread returns that earlier turn instead of asking again.
object
Your own string labels for the question. At most 20 entries; keys are 1 to 64 characters of lowercase a-z, 0-9, _, . and -, starting with a letter; values are up to 512 characters.

Response

Returns 201 Created with the updated conversation, the question and the answer.
object
required
The conversation after this turn, with the same fields as Get a widget conversation. If the thread was started without a title, its title is taken from the first line of the first question, shortened to 80 characters.
object
required
The visitor’s message, with role set to user. Same fields as answer.
object
required
The assistant’s message.
Last modified on September 26, 2026