Stream Lifecycle Webhooks & Signatures
Receive real-time HTTP POST webhooks when live broadcasts start, end, or encounter health anomalies. Validate payloads using HMAC-SHA256 signatures.
Supported Stream Events
Triggered the moment a broadcaster successfully completes the RTMP/SRT handshake and begins publishing media tracks.
{
"event": "stream.started",
"stream_id": "strm_98af21d09bc34e",
"tenant_id": "tnt_8812c",
"timestamp": "2026-08-18T19:40:00Z",
"protocol": "RTMP",
"resolution": "1920x1080",
"bitrate_kbps": 4500
}Triggered when the broadcaster disconnects. Contains full broadcast telemetry including peak concurrent viewers and DVR storage recording location.
{
"event": "stream.ended",
"stream_id": "strm_98af21d09bc34e",
"tenant_id": "tnt_8812c",
"duration_seconds": 3640,
"peak_viewers": 284,
"dvr_recording_url": "s3://vyntech-recordings/tnt_8812c/strm_98af21d09bc34e/output.mp4"
}Triggered when a multi-party meeting or call composite recording has finished processing and is ready for download or cloud playback.
{
"event": "room.recording.ready",
"room_id": "room_01J8F9X4Q2",
"recording_id": "rec_01J8FZ81M9",
"duration_seconds": 1820,
"download_url": "https://storage.googleapis.com/vyntech-recordings/room_01J8F9X4Q2.mp4"
}Triggered when an inbound voice or video call is routed to a registered virtual number in your organization.
{
"event": "call.incoming",
"call_id": "call_01J8K6T9Q0",
"caller_number": "+15551009999",
"callee_number": "+15551002000",
"room_id": "room_call_01J8K6T9Q0"
}Verifying Webhook Signatures (X-Vynstream-Signature)
When a webhook signing secret is configured (WEBHOOK_SIGNING_SECRET), every outbound payload contains an X-Vynstream-Signature HTTP header holding an HMAC-SHA256 signature:
Webhook HMAC Verification
Validate incoming webhook request integrity and ensure the payload originated from Vyntech Stream servers.