Skip to main content
GET
/
v1
/
sessions
/
{session_id}
/
stream
curl -N https://api.dari.dev/v1/sessions/sess_123/stream \
  -H "Authorization: Bearer $DARI_API_KEY" \
  -H "Accept: text/event-stream"
id: sess_123:evt_1
event: user.message
data: {"id":"sess_123:evt_1","session_id":"sess_123","sequence_number":1,"message_id":"msg_123","type":"user.message","source":"user","actor":{"type":"user","id":"org_123"},"data":{"content":[{"type":"text","text":"Summarize this ticket."}],"metadata":null,"message_id":"msg_123"},"created_at":"2026-03-31T18:40:00Z"}

id: sess_123:evt_2
event: session.status_changed
data: {"id":"sess_123:evt_2","session_id":"sess_123","sequence_number":2,"message_id":null,"type":"session.status_changed","source":"platform","actor":{"type":"system","id":null},"data":{"from":"idle","to":"running"},"created_at":"2026-03-31T18:40:00Z"}

id: sess_123:evt_3
event: message.status_changed
data: {"id":"sess_123:evt_3","session_id":"sess_123","sequence_number":3,"message_id":"msg_123","type":"message.status_changed","source":"platform","actor":{"type":"system","id":null},"data":{"message_id":"msg_123","from":null,"to":"queued","attempt":1},"created_at":"2026-03-31T18:40:00Z"}

Documentation Index

Fetch the complete documentation index at: https://docs.dari.dev/llms.txt

Use this file to discover all available pages before exploring further.

Attach to a session and stream its canonical event ledger over Server-Sent Events (SSE). The stream includes user messages, status changes, assistant output events, tool lifecycle events, and webhook diagnostics in session order. The stream stays open while the session is reusable, including while the session is idle. Reconnect with Last-Event-ID to resume after the last event you processed.

Path Parameters

session_id
string
required
Session ID.

Headers

Authorization
string
required
Bearer token using your Dari API key.
Accept
string
Should be text/event-stream.
Last-Event-ID
string
Optional SSE resume cursor when reconnecting.

Streaming behavior

Each SSE event uses the same canonical event envelope returned by GET /v1/sessions/{session_id}/events. The SSE id is the event ID, and the SSE event is the event type. Representative event types include user.message, session.status_changed, message.status_changed, assistant.message_completed, tool.call_requested, tool.call_completed, tool.call_failed, tool.result_submitted, and webhook.delivery_failed.
curl -N https://api.dari.dev/v1/sessions/sess_123/stream \
  -H "Authorization: Bearer $DARI_API_KEY" \
  -H "Accept: text/event-stream"
id: sess_123:evt_1
event: user.message
data: {"id":"sess_123:evt_1","session_id":"sess_123","sequence_number":1,"message_id":"msg_123","type":"user.message","source":"user","actor":{"type":"user","id":"org_123"},"data":{"content":[{"type":"text","text":"Summarize this ticket."}],"metadata":null,"message_id":"msg_123"},"created_at":"2026-03-31T18:40:00Z"}

id: sess_123:evt_2
event: session.status_changed
data: {"id":"sess_123:evt_2","session_id":"sess_123","sequence_number":2,"message_id":null,"type":"session.status_changed","source":"platform","actor":{"type":"system","id":null},"data":{"from":"idle","to":"running"},"created_at":"2026-03-31T18:40:00Z"}

id: sess_123:evt_3
event: message.status_changed
data: {"id":"sess_123:evt_3","session_id":"sess_123","sequence_number":3,"message_id":"msg_123","type":"message.status_changed","source":"platform","actor":{"type":"system","id":null},"data":{"message_id":"msg_123","from":null,"to":"queued","attempt":1},"created_at":"2026-03-31T18:40:00Z"}