Event Stream
The signageOS Event Stream delivers real-time domain and telemetry events to your webhook endpoints as they occur on the platform.
Set up an exporter
To start receiving these events, create an exporter that subscribes to the event types you need:
For the concepts, see Introduction to Event Stream Distributor.
Webhook Delivery Format
Each event is delivered as an HTTP POST with a JSON body containing exactly five fields:
{
"id": "0197f2a4-3a5e-7b1c-9d2f-8c4e6a1b3d5f",
"kind": "domain",
"type": "Device.Connect.DeviceConnected",
"dispatchedAt": "2026-01-01T00:00:00.000Z",
"payload": { ... }
}
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier of the event instance, generated when the event is emitted. It stays the same across repeated deliveries of the same event — use it to deduplicate redeliveries. |
kind | "domain" | "telemetry" | Category of the event |
type | string | Fully-qualified event type identifier |
dispatchedAt | string | ISO 8601 timestamp of when the event happened on the platform. It stays the same across repeated deliveries of the same event. Deliveries can arrive out of order — buffer them for a short window and apply them in dispatchedAt order, never in arrival order or by X-SOS-Timestamp. |
payload | object | Event-specific data (see individual event pages) |
Webhook Headers
Every delivery includes the following HTTP headers:
| Header | Description | Presence |
|---|---|---|
X-SOS-Sequence-Number | Stringified integer — monotonically increasing delivery sequence | Domain events only |
X-SOS-Exporter-Config-Uid | UID of the exporter configuration that produced this delivery | All events |
X-SOS-Timestamp | Unix timestamp in seconds of the delivery attempt. A retried delivery is signed with a fresh value, so you can enforce a tight replay window when verifying the signature. Never use it to order or deduplicate events — use the body dispatchedAt and id for that | All events |
X-SOS-Signature | Base64 HMAC-SHA256, prefixed with v1=, over {METHOD}{url}{timestamp}{body} (uppercased HTTP method, concatenated, no separators) using your configured webhook secret | All events |
Event Catalogue
Alert
4 event types
Device
2 event types
Device / Provisioning Recipe
4 event types
Device / System Log
12 event types
Device / Telemetry
1 event type
Device / Verification
2 event types