API
Streaming
Partner server-sent events, and the OpenAI-style stream.
Partner messages
POST the message JSON to /api/partner/v1/messages/stream, or to /api/partner/v1/conversations/{id}/messages/stream. The response is text/event-stream with Cache-Control: no-cache.
The turn finishes first. The reply text is then split into events of at most 80 characters. This is not token-by-token output from the model.
event: startwith data{"ok": true}.event: deltawith data{"text": "..."}.event: donewithconversation_id,message, andcredits.event: errorwitherrorandcodewhen the turn fails.
text/event-stream
event: start
data: {"ok": true}
event: delta
data: {"text": "The MOT is booked"}
event: done
data: {"ok": true, "conversation_id": "conv_…", "credits": 0}
Chat completions
Set stream true on POST /api/v1/chat/completions. The body is text/event-stream. Each line is data: {json} and the stream ends with data: [DONE]. A comment line is sent about every 15 seconds so the connection stays open. That shape follows the OpenAI stream, not the partner event names.