Streaming endpoints deliver events as they happen, using Server-Sent Events (SSE).Documentation Index
Fetch the complete documentation index at: https://docs.nusomi.com/llms.txt
Use this file to discover all available pages before exploring further.
Subscribe to a session
: keepalive comment fires every 15 seconds to keep proxies from idling out the connection.
Filter the stream
Server-side filters reduce bandwidth:| Param | Notes |
|---|---|
type | Repeat for multiple. |
confidence_gte | Drop low-confidence events. |
from_t_ms | Only events at or after this offset (useful for back-fill). |
Subscribing to all sessions of a workflow
session_id field on each event.
Resumption
If your connection drops, resume withLast-Event-ID:
SDK helpers
The TypeScript and Python SDKs exposeevents.stream() which handles reconnection, Last-Event-ID, and parsing automatically:
WebSocket alternative
For environments where SSE is awkward (browsers behind specific proxies, embedded clients), Nusomi also exposes a WebSocket endpoint with the same filtering semantics:{"type": "click", "id": "evt_...", "data": {...}}. WebSocket is at parity with SSE but slightly higher overhead per session — prefer SSE unless you specifically need bidirectional traffic (e.g. server-driven cancel).
Concurrency
Each API key has a default concurrent-stream limit (50 streams per key, 500 per workspace). Streams beyond the limit get429 stream_limit_exceeded.
Backpressure
If your consumer falls behind, Nusomi buffers up to 30 seconds of events per stream then starts dropping the oldest. A: dropped <n> comment is emitted whenever drops happen so your client can tell. To avoid this: process events asynchronously and offload heavy work to a queue.