Follow an answer live
const url = 'https://api.asklucy.eu/v1/conversations/example/messages/example/events';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.asklucy.eu/v1/conversations/example/messages/example/events \ --header 'Authorization: Bearer <token>'Server-Sent Events for an assistant message. The answer is written
on the server whether or not anyone is watching, and any number of
clients can follow it. To pick up an answer in progress (after a
refresh, or on another device), get the message and open this stream
with its last_event_id as Last-Event-ID. Each event has an id,
an event name equal to the payload’s type, and JSON data
matching MessageEvent. The stream replays from the start (or after
Last-Event-ID) and ends after message.completed,
message.failed or message.cancelled; a finished answer replays
in full, then closes. Reconnect with Last-Event-ID to resume
without gaps. User messages have no events (404). While idle, the
server sends an SSE comment line (: keep-alive) every 15 seconds;
ignore it. Any API replica can serve any stream, so reconnecting
after a deploy or network change loses nothing.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”Resume the stream after this event.
Responses
Section titled “Responses”Event stream.
SSE frames; each data is a MessageEvent as JSON.
Example
id: 1event: message.starteddata: {"type":"message.started","message_id":"msg_9Qa1","at":"2026-11-02T15:04:05Z"}
id: 2event: message.deltadata: {"type":"message.delta","message_id":"msg_9Qa1","text":"Here is the"}Missing, expired or invalid token.
RFC 9457 problem details.
object
For quota-exceeded, the window that is used up.
object
Null for a rolling window that hasn’t started.
organization when the organization’s budget is closer to running out than the member’s own limit.
Field-level problems (400 only).
object
JSON pointer into the request body.
Example
{ "type": "https://docs.asklucy.eu/errors/answer-in-progress", "quota": { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } }}Headers
Section titled “Headers”Unique per request; quote it to support.
No such object in your organization.
RFC 9457 problem details.
object
For quota-exceeded, the window that is used up.
object
Null for a rolling window that hasn’t started.
organization when the organization’s budget is closer to running out than the member’s own limit.
Field-level problems (400 only).
object
JSON pointer into the request body.
Example
{ "type": "https://docs.asklucy.eu/errors/answer-in-progress", "quota": { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } }}Headers
Section titled “Headers”Unique per request; quote it to support.