Skip to main content
The Chat API returns a Server-Sent Events (SSE) stream. Each frame is a single JSON object preceded by data: and terminated by a blank line:
Every event is a flat JSON object with a type discriminator. The endpoint also supports stream: false, which returns a single JSON payload instead of a stream — see POST /api/chat/v2 for that shape.

Response headers

Event catalog

thread-info

First event. Confirms the server-side thread and message IDs.

workflow-run-id

Emitted once the run starts. Save workflowRunId to reconnect if your connection drops.

text-start

Marks the start of answer text.

text-delta

A chunk of the answer. Append delta to build the full answer (markdown).

text-end

Marks the end of answer text.

data-references

Literature references cited in the answer.

data-doi-reference-map

Maps inline citation numbers ([1], [2]) in the answer to DOI/PMID identifiers. May arrive multiple times during streaming. Complete when isFinal: true.

data-stop

Vera declined the request. No answer text follows, but finish still arrives with status: "complete" — a refusal is not a stream failure. Branch on code. message is an English explanation, safe to display as-is.
On the non-streaming path (stream: false) the same codes arrive as an error envelope: content_policy_stop as 422, question_too_long as 413.

finish

Stream complete. Close the connection after this event.

Reference shape

Each entry in a data-references event: