Webhook types
A webhook is a real-time callback that sends an HTTP POST request to your server-side app when a defined event happens in our Video Streaming service. This way, you instantly receive updates and can trigger automated actions without manual checks by constant pulling API. A single universal endpoint is used for all types of webhooks.- Live streams –
type: stream
- VOD videos –
type: vod
- VOD delete –
type: video_delete
- Restreamings –
type: restream
Webhooks for Live
When the state of a live stream changes, the system triggers a webhook with typestream
. The payload contains a message.stream object with stream properties.
Behaviour:
- A webhook is fired on key state changes, such as a stream going live or stopping.
- The payload allows you to track whether a stream is active, its source, and related metadata.
- Both PUSH and PULL origins are supported.
Field | Type | Description |
---|---|---|
id | int | Unique identifier of the stream |
live | bool | true if the stream is currently active, false if it has stopped |
backup_live | bool | true if the backup source is currently active |
recording | bool | true if the stream is being recorded |
client_user_id | string | Optional client-defined user ID, null if not provided |
client_entity_data | string | Optional client metadata associated with the stream, null if not provided |
pull | bool | true if the stream is pulled from an external origin, false if pushed |
uri | string | The source URI of the stream: |
stream_source_type | string | Type of the stream source: rtmp , srt , webrtc , https , etc |
Stream segments become available in the CDN (and player) within ~2–5 seconds after the
type: stream (live=true)
webhook is issued.Read more in the article Ingest & Backup.Webhooks for VOD
VOD create and update
A webhook with typevideo
fires when a VOD file is created, processed, or becomes playable. Use the payload to track processing progress and available renditions.
Behaviour:
- Sent on key status changes of a video: empty → pending → viewable → ready or error. 
- converted_videos[].status reflects per-rendition progress like processing or complete. 
Field | Type | Description |
---|---|---|
id | int | VideoID |
slug | string | Public identifier used in playback URLs |
name | string | Video name |
duration | int | Duration of the video in milliseconds |
stream_id | int | null | StreamID if it was recorded from a Live stream, otherwise null |
status | string | Processing status of the video: empty , pending , viewable , ready , error |
converted_videos | array | List of transcoded renditions with details |
└─ name | string | Rendition label (e.g., vod1080p ) |
└─ status | string | Rendition status |
└─ mp4_url | string | Direct URL for a rendition in MP4 fromat |
- Video status processing – status
- Rendition status processing – converted_videos/status
VOD delete
A webhook with typevideo_delete
notify your system that a VOD entity was deleted so you can purge caches, revoke URLs, and clean metadata.
Behaviour:
- Fired when a video is deleted via API or UI.
- Emitted once per deletion event.
Field | Type | Description |
---|---|---|
id | integer | VideoID |
slug | string | Public identifier used in playback URLs |
name | string | Video name |
status | string | Processing status of the video (e.g. viewable , ready ) |
deleted_at | timestamp | ISO-8601 UTC timestamp of when the deletion was committed in the system |
Webhooks for Restream
When a restream changes state (for example, starts or stops), the system sends a webhook with typerestream
.
The payload contains a message.restream object.
Behaviour:
- Fired whenever a restream goes live or stops.
- Allows you to track the status of a specific restream linked to a live stream.
Field | Type | Description |
---|---|---|
id | int | Unique identifier of the restream. |
name | string | Human-readable name of the restream. |
stream_id | int | ID of the source live stream that this restream is linked to. |
live | bool | true if the restream is currently active, false if it stopped. |
Sending events
We deliver webhooks from IP addresses92.223.112.0/24
and 92.223.123.0/24
. So put them into the whitelist.
Events are sent only once. If your server is unavailable, undelivered webhooks won’t be sent again.
How to enable webhooks
At the moment, webhooks can only be set up with our help. Tell us your end-point and we will install it in your account.

https://webhook.site/56ce9331-4ec4-4fa1-bf23-4c4e14276f24
to capture and display incoming webhook payloads for debugging. Create your own and send it to us to set up.