Real-time SSE event stream in the odio API
All backends push state changes as Server-Sent Events (SSE). Connect once and get a unified stream of everything happening on the node.
Endpoint
Section titled “Endpoint”GET /eventsQuery parameters
Section titled “Query parameters”| Parameter | Description | Example |
|---|---|---|
backend | Only receive events from this backend | ?backend=mpris |
types | Only receive these event types | ?types=player.updated,player.added |
exclude | Exclude these event types | ?exclude=player.position |
keepalive | Keepalive interval in seconds, an integer from 10 to 120 (default 30) | ?keepalive=30 |
server.info keepalive events are always sent, even when backend or types filter everything else, and can’t be excluded. An invalid parameter makes the server answer 400 Bad Request instead of opening the stream.
Event types
Section titled “Event types”| Event | Backend | Trigger |
|---|---|---|
player.updated | mpris | Playback state, volume, or metadata change |
player.added | mpris | New player appeared |
player.removed | mpris | Player closed |
player.position | mpris | Periodic position tick |
player.tracklist.updated | mpris | Tracklist replaced, or a track added, removed, or its metadata changed |
audio.updated | pulseaudio | Sink input added or changed |
audio.removed | pulseaudio | Sink input removed |
service.updated | systemd | Unit state change |
bluetooth.updated | bluetooth | Adapter or device state change |
power.action | power | Reboot or power-off triggered |
upgrade.info | upgrade | Detector status changed, or upgrade run lifecycle |
upgrade.progress | upgrade | Live progress line from a running upgrade |