GET request with Accept: text/event-stream and Lark pushes data changes to you as they happen.
Starting a stream
-N flag disables curl’s output buffering so events appear immediately.
Event format
Events follow the SSE specification. Each event has a type and a JSON data payload:Event types
| Event | Description |
|---|---|
put | Data at the path was replaced. The initial event is always a put with the full value at the subscribed path. |
patch | Data was partially updated. Only the changed fields are included. |
keep-alive | Sent periodically to keep the connection open. No data payload. |
cancel | The stream was terminated, typically because security rules revoked read access. |
auth_revoked | The auth token expired or was invalidated. |
Initial data
The first event on any stream is aput containing the complete current value at the path:
put and patch events as data changes.
Path semantics
Thepath field in each event is relative to the path you subscribed to. If you stream /players:
{"path":"/","data":{...}}means the entire/playerssubtree changed.{"path":"/alice/score","data":300}means only/players/alice/scorechanged.{"path":"/carol","data":{"name":"Carol","score":0}}means a new child/players/carolwas added.
Using SSE in code
Browser (EventSource)
Node.js
Use any SSE client library, or read the stream manually:When to use streaming
SSE streaming is useful when you need real-time updates but can’t use a WebSocket-based SDK:- Watching for changes from a backend service.
- Streaming events to a log or monitoring pipeline.
- Simple web clients where
EventSource(built into every browser, no dependencies) is enough.

