Research Chat

Follow-up questions with streaming responses

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.