Skip to main content
POST
/
v1
/
sessions
/
{session_id}
/
messages
/
stream
curl -N -X POST https://api.dari.dev/v1/sessions/sess_123/messages/stream \
  -H "Authorization: Bearer $DARI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "parts": [
      { "type": "text", "text": "Summarize this ticket and draft a reply." },
      { "type": "file", "file_id": "file_456" }
    ]
  }'
event: message.queued
data: {"id":"msg_125","session_id":"sess_123","status":"queued"}

event: message.output.delta
data: {"type":"text_delta","text":"Here is a draft "}

event: message.output.delta
data: {"type":"text_delta","text":"response for the customer..."}

event: message.completed
data: {"id":"msg_125","status":"completed","completed_at":"2026-03-31T18:40:12Z"}
Sends a message to a session and returns a streaming event response with incremental agent output. Use this endpoint when you want async execution plus streamed output over the same HTTP request.

Path Parameters

session_id
string
required
Session ID.

Headers

Authorization
string
required
Bearer token using your Dari API key.
Content-Type
string
required
Must be application/json

Request Body

parts
object[]
required
Ordered list of message parts.
metadata
object
Optional metadata attached to the message.

Streaming behavior

The response is a streaming event response rather than a JSON document. The stream should include the message ID early so clients can reconcile the run with later polling or file inspection. Representative events:
  • message.queued
  • message.output.delta
  • message.completed
  • message.failed
curl -N -X POST https://api.dari.dev/v1/sessions/sess_123/messages/stream \
  -H "Authorization: Bearer $DARI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "parts": [
      { "type": "text", "text": "Summarize this ticket and draft a reply." },
      { "type": "file", "file_id": "file_456" }
    ]
  }'
event: message.queued
data: {"id":"msg_125","session_id":"sess_123","status":"queued"}

event: message.output.delta
data: {"type":"text_delta","text":"Here is a draft "}

event: message.output.delta
data: {"type":"text_delta","text":"response for the customer..."}

event: message.completed
data: {"id":"msg_125","status":"completed","completed_at":"2026-03-31T18:40:12Z"}