> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.caesar.xyz/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.caesar.xyz/_mcp/server.

# Research Chat

Research chat lets you ask follow-up questions on an existing research job. Responses are generated asynchronously and can be streamed via Server-Sent Events (SSE).
When a response includes inline citations (e.g., `[1]`), the corresponding sources are returned in the `results` array by matching citation indices against the research job’s results.

## Create a chat message

Send a `POST` request to `/research/{job_id}/chat` with a JSON body containing `content` (and optional `snippets`).
The response returns the newly created chat message in a `processing` state.

## Stream the response (SSE)

Open an SSE connection to `/research/{job_id}/chat/{message_id}/stream`. Each `data:` line is a `chat.completion.chunk`
payload; the final chunk includes a `results` array when the content includes citations.

## Poll for a message

Fetch `/research/{job_id}/chat/{message_id}` to check status. While processing you will receive a `status` field.
When completed, the response includes `content` and a `results` array containing the research sources referenced by citation index in the content.

## List chat history

Call `/research/{job_id}/chat` to list messages newest-first. Assistant messages can include a `results` array containing the
research sources whose `citation_index` appears in that message’s content.