Webhook Events

Event nameThemeDescription
session.open.success,
session.close.success
SessionTriggered during the start and end of a session
peer.join.success,
peer.leave.success,
peer.join.failure,
peer.leave.failure
PeerTriggered when a peer join/leave succeeds/fails
room.end.successRoomTriggered when a room ends
track.recording.started.success,
track.recording.success,
track.recording.failure
Track RecordingTriggered during the start, end, and failure of a track recording
stream.recording.success,
stream.recording.failure
Stream RecordingTriggered at the end of a stream recording
recording.success,
recording.failed
SFU RecordingTriggered at the end of a SFU recording
beam.started.success,
beam.stopped.success,
beam.recording.success,
beam.failure
RTMP Streaming & Browser RecordingTriggered during the start, end, and failure of RTMP streaming and/or browser recording
hls.started.success,
hls.stopped.success,
hls.recording.success,
hls.failure
HLS Streaming EventsTriggered during the start, end, and failure of HLS streaming and/or HLS recording
role.change.successRole Change EventsTriggered when a role is updated
transcription.started.success,
transcription.success,
transcription.failure
Transcription EventsTriggered at the start and end of transcription
ingest.start.success,
ingest.end.success,
ingest.start.failure,
ingest.failure
RTMP Ingestion EventsTriggered at the start and end of RTMP Ingestion

Event payload

Event is a JSON dictionary which has the following keys.

NameTypeDescription
versionstringVersion of the event

Example: 2.0
idstringId of the event

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
app_idstringApp ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f6
account_idstringCustomer ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f4
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
timestamptimestamp (in UTC)Timestamp of the event

Example: 2020-11-11T16:32:17Z
typestringType of the event

Example: peer.join.success
datadictEvent data. Its keys will be different for different type of event.

Example: < See description below >

Sample event

{ "version": "2.0", "id": "6c75de35-b778-4fb0-88ae-114c28dc285f", "account_id": "60b8e13a6eb86d8101b57354", "timestamp": "2021-08-08T07:04:15Z", "type": "peer.join.success", "data": { "joined_at": "2021-08-08T07:04:15.001380432Z", "peer_id": "83b869e1-9a4b-4037-84b2-913cf76e4392", "role": "host", "room_id": "60b8e13a6eb86d8101b57354", "room_name": "test room", "session_id": "610f81ee870dde099a249948", "template_id": "66112497abcd52312556c4gg", "user_id": "user.001", "user_name": "test user" } }

Session Events

session.open.success

This event will be sent when session opens successfully.

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2021-11-30T12:58:49Z", "type": "session.open.success", "data": { "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }

session.close.success

This event will be sent when session closes successfully.

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
session_durationintDuration the user spent in the room in seconds

Example: 36000
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
session_stopped_attimestamp (in UTC)Timestamp when session ended

Example: 2020-11-11T16:32:17Z

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2021-11-30T12:58:49Z", "type": "session.close.success", "data": { "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "session_duration": 600, "session_started_at": "2021-11-30T12:48:49.97291247Z", "session_stopped_at": "2021-11-30T12:58:49.97291247Z" } }

Peer Events

peer.join.success

This event will be sent when any peer joins the room successfully

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
user_idstringUser id assigned by the customer

Example: user.001
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
user_namestringUser name of the joining user

Example: Test user
user_datastringUser data of the joining user

Example: {"isHandRaised":true}
rolestringRole of the joining user

Example: host
joined_attimestamp (in UTC)Timestamp when user joined

Example: 2020-11-11T16:32:17Z
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
typestringDefines the type of peer to join the room. It is 'sip' for peers joining through SIP and 'regular' for peers joining directly

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:58:49Z", "type": "peer.join.success", "data": { "joined_at": "2021-11-30T12:58:49.97291247Z", "peer_id": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "type": "regular", "user_id": "************************", "user_name": "********", "user_data": "", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }

peer.leave.success

This event will be sent when peer leaves the room

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
user_idstringUser id assigned by the customer

Example: user.001
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
user_namestringUser name of the user

Example: Test user
user_datastringUser data of the user

Example: {"isHandRaised":true}
rolestringRole of the user

Example: host
left_attimestamp (in UTC)Timestamp when user left

Example: 2020-11-11T17:32:17Z
durationintDuration the user spent in the room in seconds

Example: 36000
reasonstringReason for the peer leaving, see more details below

Example: client request
messagestringReason specified while kicking peer out of room, see more details below

Example: removed due to misconduct
joined_attimestamp (in UTC)Timestamp when user joined

Example: 2020-11-11T16:32:17Z
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
typestringDefines the type of peer to join the room. It is 'sip' for peers joining through SIP and 'regular' for peers joining directly

Peer Leave Reason

  1. client request: if the peer leaves the room (leave request is sent from the app/client-side).
    • Example scenarios:
      • If the peer clicks the Leave/End button.
      • If the peer refreshes or closes the tab while using one of 100ms demo links (https://<YOUR_SUB_DOMAIN>.app.100ms.live/preview/nnd-eke-tpp)
  2. peer kicked: if the peer is removed by someone else from an active room using the Client SDK or the Server API.
    • Example scenarios:
      • If the peer is removed by a role which has Can remove participant from the room permissions enabled in the template.
      • If the peer is removed using the remove peer API from the application server.

        Note: If you remove a peer from an active room using the client SDK or the server API, you can pass the reason as a message and the peer.leave.success event will contain the same in the message field.
  3. websocket closed: network issues
    • Example scenario:
      • If there's an abrupt network disconnection from the client side (peer) without any further attempts to reconnect, the 100ms server will close the WebSocket connection after 60 seconds. This can happen if the app is forcefully closed or the network is disconnected.
  4. ice connection state closed: network issues
    • Example scenario:
      • Suppose there's an abrupt network disconnection at the media transport level from the client side (peer) without any further attempts to reconnect. In that case, the 100ms server will close the WebSocket connection after 60 seconds. This can happen if network config changes prohibit media packets from being sent/received by the client. Possible causes could be firewall changes or connection overwhelming because of higher downloads than the network can handle.
  5. server removed peer: network issues
    • Example scenario:
      • If there are any server-side anomalies, like a server failure mid-way into the call, it will remove peers with this error. The occurrence of this is rare.

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:58:58Z", "type": "peer.leave.success", "data": { "duration": 40, "joined_at": "2021-11-30T12:58:49.97291247Z", "left_at": "2021-11-30T12:58:58.500451704Z", "peer_id": "********-****-****-****-***********", "reason": "client request", "message": "removed due to misconduct", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "type": "regular", "user_id": "************************", "user_name": "********", "user_data": "", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }

peer.join.failure

This event will be sent when a peer fails to join a room. This can occur when,

  1. Server is overloaded and results in timeout
  2. Network disconnection

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
user_idstringUser id assigned by the customer

Example: user.001
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
user_namestringUser name of the user

Example: Test user
user_datastringUser data of the user

Example: {"isHandRaised":true}
rolestringRole of the user

Example: host
joined_attimestamp (in UTC)Timestamp when user joined

Example: 2020-11-11T16:32:17Z
error_messagestringReason for failure

Example: Peer not joined
typestringDefines the type of peer to join the room. It is 'sip' for peers joining through SIP and 'regular' for peers joining directly

Peer join failure Reason

  1. role not allowed
  2. network disconnection
  3. duplicate peer id

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-25T09:10:35Z", "type": "peer.join.failure", "data": { "joined_at": "0001-01-01T00:00:00Z", "peer_id": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "user_id": "************************", "template_id": "************************", "type": "regular", "user_name": "********", "user_data": "", "error_message": "role not allowed" } }

peer.leave.failure

This event will be sent when the peer leave fails. This can occur when,

  1. peer.leave is called twice
  2. peer.leave is called before peer.join or if peer.join has failed
  3. peer.leave is called after peer is kicked out of room / room has ended

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
user_idstringUser id assigned by the customer

Example: user.001
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
user_namestringUser name of the user

Example: Test user
user_datastringUser data of the user

Example: {"isHandRaised":true}
rolestringRole of the user

Example: host
left_attimestamp (in UTC)Timestamp when user left

Example: 2020-11-11T17:32:17Z
durationintDuration the user spent in the room in seconds

Example: 36000
error_messagestringReason for failure

Example: Peer not joined
joined_attimestamp (in UTC)Timestamp when user joined

Example: 2020-11-11T16:32:17Z
typestringDefines the type of peer to join the room. It is 'sip' for peers joining through SIP and 'regular' for peers joining directly

Peer leave failure Reason

  1. peer not joined

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:55:51Z", "type": "peer.leave.failure", "data": { "duration": 0, "left_at": "0001-01-01T00:00:00Z", "joined_at": "2021-11-30T12:58:49.97291247Z", "peer_id": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "user_id": "************************", "template_id": "************************", "type": "regular", "user_name": "********", "user_data": "", "error_message": "Peer not joined" } }

Room Events

room.end.success

This event will be sent when room end is called and then it is successful.

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
user_idstringUser id assigned by the customer

Example: user.001
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
user_namestringUser name of the user

Example: Test user
rolestringRole of the user

Example: host
lock_roomboolFlag to indicate if the room was lock

Example: false
reasonstringReason specified with end room call

Example: End Room by admin
sourcestringSource of end room api call

Example: peer
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-25T09:10:35Z", "type": "room.end.success", "data": { "peer_id": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "user_id": "************************", "user_name": "********", "lock_room": false, "reason": "****************", "source": "peer", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }

room.end.failure

This event will be sent when room end is called and the it is unsuccessful.

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
user_idstringUser id assigned by the customer

Example: user.001
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
user_namestringUser name of the user

Example: Test user
rolestringRole of the user

Example: host
lock_roomboolFlag to indicate if the room was lock

Example: false
reasonstringReason specified with end room call

Example: End Room by admin
sourcestringSource of end room api call

Example: peer
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
error_messagestringError message to indicate the reason of failure

Example: session not found
error_codeintError code for failure

Example: 404

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-25T09:10:35Z", "type": "room.end.failure", "data": { "peer_id": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "user_id": "************************", "user_name": "********", "lock_room": false, "reason": "****************", "source": "peer", "session_started_at": "2021-11-30T12:58:49.97291247Z", "error_code": 404, "error_message": "session not found" } }

Role change Events

role.change.success

This event will be sent when the role change for a peer is successful.

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
user_idstringUser id assigned by the customer

Example: user.001
user_namestringUser name of the user

Example: Test user
user_datastringUser data of the user

Example: {"isHandRaised":true}
previous_rolestringPrevious role of the peer

Example: host
rolestringNew role of the user

Example: host
joined_attimestamp (in UTC)Timestamp when user joined

Example: 2020-11-11T16:32:17Z
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
role_changed_attimestamp (in UTC)Timestamp when role changed

Example: 2020-10-11T16:32:17Z
role_change_requested_bystringId of the peer who requested for role change. This field won't be present if role is changed using API

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2021-11-30T12:58:49Z", "type": "role.change.success", "data": { "joined_at": "2021-11-30T12:58:49.97291247Z", "peer_id": "********-****-****-****-***********", "role_change_requested_by": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "user_id": "************************", "user_name": "********", "user_data": "", "previous_role": "********", "session_started_at": "2021-11-30T12:48:49.97291247Z", "role_changed_at": "2021-11-30T12:58:49.97291247Z" } }

role.change.failure

This event will be sent when the role change for a peer fails. For example:

  1. When there's an attempt to change peer's role to a specific role whose limit has already been reached.

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
user_idstringUser id assigned by the customer

Example: user.001
user_namestringUser name of the user

Example: Test user
user_datastringUser data of the user

Example: {"isHandRaised":true}
rolestringNew role of the user

Example: host
joined_attimestamp (in UTC)Timestamp when user joined

Example: 2020-11-11T16:32:17Z
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
error_messagestringRole change error message (description)

Example: role limit reached
role_change_requested_bystringId of the peer who requested for role change. This field won't be present if role is changed using API

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2021-11-30T12:58:49Z", "type": "role.change.failure", "data": { "peer_id": "********-****-****-****-***********", "role_change_requested_by": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "user_id": "************************", "user_name": "********", "user_data": "", "session_started_at": "2021-11-30T12:48:49.97291247Z", "joined_at": "2021-11-30T12:58:49.97291247Z", "error_message": "role limit reached" } }

Track Recording Events

track.recording.started.success

This event will be sent when individual track recording is started

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312dff
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
peer_idstring100ms assigned id to identify the peer

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
stream_idstringID of the stream to which this track belongs

Example: 5a09bf30-c076-469f-bfd4-15eb068366e8
track_idstringID of the track being recorded Example: 3c1e5e95-fdd1-49ba-bb08-66a0b7493b5b
track_typestringType of the track being recorded, either video or audio

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2024-02-06T20:01:16Z", "type": "track.recording.started.success", "data": { "peer_id": "********-****-****-****-***********", "room_id": "************************", "session_id": "************************", "stream_id": "********-****-****-****-***********", "track_id": "********-****-****-****-***********", "track_type": "video" } }

track.recording.success

This event will be sent when individual track recording is completed

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312dff
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
peer_idstring100ms assigned id to identify the peer

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
stream_idstringID of the stream to which this track belongs

Example: 5a09bf30-c076-469f-bfd4-15eb068366e8
track_idstringID of the track being recorded Example: 3c1e5e95-fdd1-49ba-bb08-66a0b7493b5b
track_typestringType of the track being recorded, either video or audio
sizestringSize of the track recording in bytes
durationstringDuration of the track recording in seconds
recording_idstring100ms assigned id to the recording

Example: 5ff5881b80b66969e1fb35f4
recording_pathstringUpload path of the recorded track

Example: s3://bucket/prefix/ac.webm
recording_presigned_urlstringPresigned URL for the recorded track

Example: https://bucket/prefix/ac.webm

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2024-02-06T20:01:16Z", "type": "track.recording.success", "data": { "peer_id": "********-****-****-****-***********", "room_id": "************************", "session_id": "************************", "stream_id": "********-****-****-****-***********", "track_id": "********-****-****-****-***********", "track_type": "video", "size": 22989889, "recording_id": "************************", "recording_path": "s3://bucket/prefix/ac.webm", "recording_presigned_url": "https://bucket/prefix/ac.webm", } }

track.recording.failure

This event will be sent if an individual track recording fails

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312dff
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
peer_idstring100ms assigned id to identify the peer

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
stream_idstringID of the stream to which this track belongs

Example: 5a09bf30-c076-469f-bfd4-15eb068366e8
track_idstringID of the track being recorded Example: 3c1e5e95-fdd1-49ba-bb08-66a0b7493b5b
track_typestringType of the track being recorded, either video or audio
sizestringSize of the track recording in bytes
durationstringDuration of the track recording in seconds
recording_idstring100ms assigned id to the recording

Example: 5ff5881b80b66969e1fb35f4
recording_pathstringUpload path of the recorded track

Example: s3://bucket/prefix/ac.webm
error_messagestringError message indicating the reason for failure

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2024-02-06T20:01:16Z", "type": "track.recording.success", "data": { "peer_id": "********-****-****-****-***********", "room_id": "************************", "session_id": "************************", "stream_id": "********-****-****-****-***********", "track_id": "********-****-****-****-***********", "track_type": "video", "size": 22989889, "recording_id": "************************", "recording_path": "s3://bucket/prefix/ac.webm", "error_message": "INTERNAL_ERROR" } }

Stream Recording Events

stream.recording.success

This event will be sent when individual stream recording is completed

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312dff
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
peer_idstring100ms assigned id to identify the peer

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
stream_idstringID of the stream to which this track belongs

Example: 5a09bf30-c076-469f-bfd4-15eb068366e8
user_idstringUser id assigned by the customer

Example: user.001
sizestringSize of the track recording in bytes
durationstringDuration of the track recording in seconds
recording_idstring100ms assigned id to the recording

Example: 5ff5881b80b66969e1fb35f4
recording_pathstringUpload path of the recorded track

Example: s3://bucket/prefix/ac.webm
recording_presigned_urlstringPresigned URL for the recorded track

Example: https://bucket/prefix/ac.webm
stream_typestringType of the stream, regular, screen or audio

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2024-02-12T15:39:55Z", "type": "stream.recording.success", "data": { "duration": 185, "peer_id": "********-****-****-****-***********", "recording_id": "************************", "recording_path": "s3://bucket/prefix/ac.mp4", "recording_presigned_url": "https://bucket/prefix/ac.mp4", "room_id": "************************", "session_id": "************************", "size": 22989889, "stream_id": "********-****-****-****-***********", "type": "regular", "user_id": "********-****-****-****-***********" } }

stream.recording.failure

This event will be sent when individual stream recording fails

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312dff
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
peer_idstring100ms assigned id to identify the peer

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
stream_idstringID of the stream to which this track belongs

Example: 5a09bf30-c076-469f-bfd4-15eb068366e8
user_idstringUser id assigned by the customer

Example: user.001
sizestringSize of the track recording in bytes
durationstringDuration of the track recording in seconds
recording_idstring100ms assigned id to the recording

Example: 5ff5881b80b66969e1fb35f4
recording_pathstringUpload path of the recorded track

Example: s3://bucket/prefix/ac.webm
stream_typestringType of the stream, regular, screen or audio
error_messagestringError message indicating the reason for failure

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2024-02-12T15:39:55Z", "type": "stream.recording.failure", "data": { "duration": 1, "peer_id": "********-****-****-****-***********", "recording_id": "************************", "recording_path": "s3://bucket/prefix/ac.mp4", "room_id": "************************", "session_id": "************************", "size": 2298, "stream_id": "********-****-****-****-***********", "type": "regular", "user_id": "********-****-****-****-***********", "error_message": "INTERNAL_ERROR" } }

SFU Recording Events

recording.success

This event will be sent when final composed recording is generated and uploaded to the destination

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312dff
room_namestringRoom name assigned by you when creating room

Example: class-9-batch-2
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
locationstring(Deprecated, use recording_path) URI of the recorded video along with the storage type

Example: s3://bucket/prefix/ac.mp4
URLstring(Deprecated, use recording_presigned_url) HTTPS url to recorded session file on storage bucket

Example: https://upload-location/bucket/beam/ac.mp4
durationintDuration the user spent in the room in seconds

Example: 3600
recording_pathstringUpload path of the recorded video such as s3 URI

Example: s3://bucket/prefix/ac.mp4
recording_presigned_urlstringPresigned URL for the recorded video, for download. Valid for 24 hours

Example: https://upload-location/bucket/ac.mp4
chat_recording_pathstringUpload path of chat recording files such as s3 URI

Example: s3://bucket/prefix/ac.csv
chat_recording_presigned_urlstringPre signed url for chat recording files

Example: https://upload-location/bucket/chat.csv
sizeintSize of the recorded video (in bytes)

Example: 10024
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
session_stopped_attimestamp (in UTC)Timestamp when session ended

Example: 2020-11-11T16:32:17Z

Sample

{ "version": "1.0", "id": "********-****-****-****-***********", "app_id": "************************", "account_id": "************************", "timestamp": "2021-11-30T20:12:35Z", "type": "recording.success", "data": { "duration": 600, "room_id": "************************", "room_name": "TestRoom1", "session_id": "************************", "template_id": "************************", "recording_path": "s3://<file-bucket-address>.mp4", "recording_presigned_url": "https://<file-access-url>?<signature>", "chat_recording_path": "s3://<chat-recording-address>.csv", "chat_recording_presigned_url": "https://<chat-recording-access-url>?<signature>", "size": 13933649, "session_started_at": "2021-11-30T12:48:49.97291247Z", "session_stopped_at": "2021-11-30T12:58:49.97291247Z" } }

recording.failed

This event will be sent when failure occurs during final recording composition or upload to storage

Attributes

NameTypeDescription
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name assigned by you when creating room

Example: class-9-batch-2
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
errorstringError message

Example: Upload Failure
error_typestringError type

Example: CLOUD_ACCESS_ERROR
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
session_stopped_attimestamp (in UTC)Timestamp when session ended

Example: 2020-11-11T16:32:17Z

Error types

TypeMessageDescription
INPUT_ERRORNo input streams available to create recordingRecording could not be created because there were no streams for this session
CLOUD_ACCESS_ERRORError accessing cloud bucket. Please make sure upload config is correctUnable to access the configured cloud bucket to upload/download streams
CONFIG_ERROR, MEMORY_ERROR, PROCESSING_CMD_ERROR, API_ERRORINTERNAL_ERRORInternal errors

Sample

{ "version": "1.0", "id": "********-****-****-****-***********", "app_id": "************************", "account_id": "************************", "timestamp": "2021-11-23T09:04:25Z", "type": "recording.failed", "data": { "error": "INTERNAL_ERROR", "error_type": "CONFIG_ERROR", "room_id": "************************", "room_name": "TestRoom1", "session_id": "************************", "template_id": "************************", "session_started_at": "2021-11-30T12:48:49.97291247Z", "session_stopped_at": "2021-11-30T12:58:49.97291247Z" } }

RTMP Streaming & Browser Recording Events

beam.started.success

This event is sent when RTMP streaming and/or browser recording is successfully triggered

Attributes

NameTypeDescription
beam_idstringUnique beam id

Example: 61d3def54b616982bd80ed83
job_idstringBeam job id

Example: 60b8e1d96eb86d8101b57359
recording_enabledboolIndicates whether recording is enabled or not

Example: true
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
start_delayintTime taken by beam to start recording

Example: 12
state_namestringBeam state identifier

Example: Started
state_timestamptimestamp (in UTC)Timestamp at which beam state changed

Example: 2020-11-11T17:32:18Z
max_widthintMaximum width of the screen supported for streaming / recording in pixels

Example: 1280
max_heightintMaximum height of the screen supported for streaming / recording in pixels

Example: 720
meeting_urlstringmeeting_url provided at rtmp start

Example: "https://app.100ms.live/room_id"
rtmparrayList of RTMP objects provided at rtmp start

Example: [{"url": "http://test.com"}]
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:58:46Z", "type": "beam.started.success", "data": { "beam_id": "************************", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T12:58:46.400759043Z", "peer_id": "********-****-****-****-***********", "recording_enabled": true, "room_id": "************************", "session_id": "************************", "template_id": "************************", "start_delay": 12, "max_width": 1280, "max_height": 720, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "rtmp": [{ "url": "http://test.com" }], "session_started_at": "2021-11-30T12:58:49.97291247Z" } }

beam.stopped.success

This event is sent when RTMP streaming and/or browser recording is successfully stopped

Attributes

NameTypeDescription
beam_idstringUnique beam id

Example: 61d3def54b616982bd80ed83
job_idstringBeam job id

Example: 60b8e1d96eb86d8101b57359
recording_enabledboolIndicates whether recording is enabled or not

Example: true
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
state_namestringBeam state identifier

Example: Stopped
state_timestamptimestamp (in UTC)Timestamp at which beam state changed

Example: 2020-11-11T17:32:18Z
durationintDuration of RTMP streaming / recording in seconds

Example: 12
max_widthintMaximum width of the screen supported for streaming / recording in pixels

Example: 1280
max_heightintMaximum height of the screen supported for streaming / recording in pixels

Example: 720
meeting_urlstringmeeting_url provided at rtmp start

Example: "https://app.100ms.live/room_id"
rtmparrayList of RTMP objects provided at rtmp start

Example: [{"url": "http://test.com"}]
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
reasonstringThe reason why the beam session stopped. Can be either by the user or beam itself in cases like an error occuring

Example: client request

Beam Stop Reason

  1. client request: if a stop beam request is received. Can be triggered from app, or api, or through an internal stop request when end room is called.
    • Example scenarios:
      • If a peer clicks stop streaming, or stop recording, or end room when beam is running
      • If a stop request is sent through api
  2. max duration reached: if the max duration is reached. Configured in template as maxDuration, defaults to 4 hours.
    • Example scenarios:
      • If beam has been running for maxDuration and no stop request has been sent
  3. room ended: if the room has been ended but no stop request is sent. In such case, beam auto-detects room end, and stops in a minute if no stop request has been sent.
    • Example scenarios:
      • If meeting url set doesn't correspond to the room_id provided in the start request, calling room end won't send a stop request. So, beam detects this and stops.
  4. last peer left: if there's no one else in the room apart from beam for a long time. Currently, this is set to 5 minutes.
    • Example scenarios:
      • If everyone in the room leaves and forgets to stop beam, it'll be automatically stopped in 5 minutes.
  5. failure: <error_type>: if any failure occurs causing minion to stop. The error_type corresponds to the error_type in beam.failure webhook.
    • Example scenarios:
      • If a wrong meeting url is given, where the beam peer cannot join. Beam retries and fails with MAX_RETRIES_REACHED. In this case, reason will be failure: MAX_RETRIES_REACHED

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:59:57Z", "type": "beam.stopped.success", "data": { "beam_id": "************************", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T12:59:57.797972469Z", "peer_id": "********-****-****-****-***********", "recording_enabled": true, "room_id": "************************", "session_id": "************************", "template_id": "************************", "duration": 56, "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "rtmp": [{ "url": "http://test.com" }], "session_started_at": "2021-11-30T12:58:49.97291247Z", "reason": "client request" } }

beam.recording.success

This event is sent when beam successfully records the room and uploads the video to storage

Attributes

NameTypeDescription
beam_idstringUnique beam id

Example: 61d3def54b616982bd80ed83
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
created_attimestamp (in UTC)Timestamp at which recording was created

Example: 2020-11-11T17:12:17Z
durationintDuration of beam recording (seconds)

Example: 79
locationstring(Deprecated, use recording_presigned_url) HTTPS url to recorded session file on storage bucket

Example: https://upload-location/bucket/beam/ac.mp4*
started_attimestamp (in UTC)Beam recording started at

Example: 2020-11-11T17:12:27Z
stopped_attimestamp (in UTC)Beam recording stopped at

Example: 2020-11-11T17:32:15Z
max_widthintMaximum width of the screen supported for recording in pixels

Example: 1280
max_heightintMaximum height of the screen supported for recording in pixels

Example: 720
recording_idstring100ms assigned id to the recording

Example: 5ff5881b80b66969e1fb35f4
recording_pathstringUpload path of the recorded video such as s3 URI

Example: s3://bucket/prefix/ac.mp4
recording_presigned_urlstringPresigned URL for the recorded video, for download

Example: https://upload-location/bucket/ac.mp4
chat_recording_pathstringUpload path of chat recording files such as s3 URI

Example: s3://bucket/prefix/ac.csv
chat_recording_presigned_urlstringPre signed url for chat recording files

Example: https://upload-location/bucket/chat.csv
meeting_urlstringmeeting_url provided at rtmp start

Example: "https://app.100ms.live/room_id"
rtmparrayList of RTMP objects provided at rtmp start

Example: [{"url": "http://test.com"}]
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
sizeintSize of the recording (in bytes)

Example: 10024

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:59:57Z", "type": "beam.recording.success", "data": { "beam_id": "************************", "created_at": "2021-11-30T12:59:57.672493658Z", "duration": 79, "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T12:59:57.679491494Z", "peer_id": "********-****-****-****-***********", "recording_id": "************************", "recording_path": "s3://bucket/prefix/ac.mp4", "recording_presigned_url": "https://<file access URL>", "chat_recording_path": "s3://<chat-recording-address>.csv", "chat_recording_presigned_url": "https://<chat-recording-access-url>?<signature>", "room_id": "************************", "started_at": "2021-11-30T12:58:34.051Z", "stopped_at": "2021-11-30T12:59:56.778Z", "session_id": "************************", "template_id": "************************", "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "rtmp": [{ "url": "http://test.com" }], "session_started_at": "2021-11-30T12:58:49.97291247Z", "size": 10024 } }

beam.failure

This event will be sent when there are failures in RTMP streaming and/or browser recording. This can occur when,

  1. Invalid RTMP URL
  2. Browser failed to load the web-app
  3. Incorrect storage (S3) credentials
  4. Other unexpected errors

Please check the below table for possible error types, messages and description.

Error types

TypeMessageDescription
INTERNAL_ERRORInternal errorInternal errors in beam.
MAX_RETRIES_REACHEDBeam couldn't connect to Meeting URL after <max_count> retries. Check if meeting URL is correct.Sent when Beam cannot join meeting URL after predefined number of max retries.
UPLOAD_ERRORFailed to upload recordings. Check if upload config is correct.Sent when there are failures in uploading recordings. This is most likely due to incorrect upload config.
BEAM_STOPPEDBeam stopped too earlyBeam takes a few seconds to start, if a stop request is sent before that, we send BEAM_STOPPED error.

Attributes

NameTypeDescription
beam_idstringUnique beam id

Example: 61d3def54b616982bd80ed83
job_idstringBeam job id

Example: 60b8e1d96eb86d8101b57359
recording_enabledboolIndicates whether recording is enabled or not

Example: true
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
error_codeintBeam error code

Example: 1
(Deprecated)
error_messagestringBeam error message (description)

Example: Failed to upload recordings. Check if upload config is correct.
error_typestringBeam error type

Example: UPLOAD_ERROR
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
state_namestringBeam state identifier

Example: Failed
(Deprecated)
state_timestamptimestamp (in UTC)Timestamp at which beam state changed

Example: 2020-11-11T17:32:18Z
(Deprecated)
durationintDuration of RTMP streaming / recording in seconds

Example: 12
max_widthintMaximum width of the screen supported for streaming / recording in pixels

Example: 1280
max_heightintMaximum height of the screen supported for streaming / recording in pixels

Example: 720
meeting_urlstringmeeting_url provided at rtmp start

Example: "https://app.100ms.live/room_id"
rtmparrayList of RTMP objects provided at rtmp start

Example: [{"url": "http://test.com"}]
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T20:36:55Z", "type": "beam.failure", "data": { "beam_id": "************************", "error_code": 1, "error_message": "Failed to upload recordings. Check if upload config is correct.", "error_type": "UPLOAD_ERROR", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T20:36:55.807155801Z", "peer_id": "********-****-****-****-***********", "recording_enabled": true, "room_id": "************************", "session_id": "************************", "template_id": "************************", "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "rtmp": [{ "url": "http://test.com" }], "duration": 56, "session_started_at": "2021-11-30T12:58:49.97291247Z" } }

HLS Streaming Events

hls.started.success

This event is sent when HLS streaming is successfully triggered

Attributes

NameTypeDescription
beam_idstringUnique beam id

Example: 61d3def54b616982bd80ed83
job_idstringBeam job id

Example: 60b8e1d96eb86d8101b57359
recording_single_file_per_layer_enabledboolIndicates whether HLS recording should be available as separate files for various dimensions supported. Output will be Individual mp4 file per HLS layer.

Example: false
recording_vod_playlist_enabledboolIndicates whether Video on Demand is enabled or not. Output will be a ZIP file of m3u8 format with all the chunks.

Example: false
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
meeting_urlstringmeeting_url provided at HLS start

Example: "https://app.100ms.live/room_id"
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
start_delayintTime taken by beam to start streaming

Example: 12
state_namestringBeam state identifier

Example: HLSStarted
state_timestamptimestamp (in UTC)Timestamp at which beam state changed

Example: 2020-11-11T17:32:18Z
max_widthintMaximum width of the screen supported for streaming / recording in pixels

Example: 1280
max_heightintMaximum height of the screen supported for streaming / recording in pixels

Example: 720
urlstringHLS live streaming url

Example: https://100ms-live.m3u8
started_attimestamp (in UTC)Timestamp at which HLS started

Example: 2020-11-11T17:32:18Z
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:58:46Z", "type": "hls.started.success", "data": { "beam_id": "************************", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T12:58:46.400759043Z", "peer_id": "********-****-****-****-***********", "recording_single_file_per_layer_enabled": false, "recording_vod_playlist_enabled": false, "room_id": "************************", "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "session_id": "************************", "template_id": "************************", "start_delay": 12, "max_width": 1280, "max_height": 720, "url": "https://100ms-live.m3u8", "started_at": "2021-11-30T12:58:46.400759043Z", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }

hls.stopped.success

This event is sent when HLS streaming is successfully stopped

Attributes

NameTypeDescription
beam_idstringUnique beam id

Example: 61d3def54b616982bd80ed83
job_idstringBeam job id

Example: 60b8e1d96eb86d8101b57359
recording_single_file_per_layer_enabledboolIndicates whether HLS recording should be available as separate files for various dimensions supported. Output will be Individual mp4 file per HLS layer.

Example: false
recording_vod_playlist_enabledboolIndicates whether Video on Demand is enabled or not. Output will be a ZIP file of m3u8 format with all the chunks.

Example: false
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
max_widthintMaximum width of the screen supported for HLS streaming / recording in pixels

Example: 1280
max_heightintMaximum height of the screen supported for HLS streaming / recording in pixels

Example: 720
meeting_urlstringmeeting_url provided at HLS start

Example: "https://app.100ms.live/room_id"
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
state_namestringBeam state identifier

Example: HLSStopped
state_timestamptimestamp (in UTC)Timestamp at which beam state changed

Example: 2020-11-11T17:32:18Z
urlstringHLS live streaming url

Example: https://100ms-live.m3u8
durationintDuration of HLS streaming in seconds

Example: 12
started_attimestamp (in UTC)Timestamp at which HLS started

Example: 2020-11-11T17:32:18Z
stopped_attimestamp (in UTC)Timestamp at which HLS stopped

Example: 2020-11-11T17:32:18Z
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z
reasonstringThe reason why the beam session stopped. Can be either by the user or beam itself in cases like an error occuring

Example: client request
live_transcription_enabledboolSpecifies if live transcription was enabled for the stream

HLS Stop Reason

  1. client request: if a stop beam request is received. Can be triggered from app, or api, or through an internal stop request when end room is called.
    • Example scenarios:
      • If a peer clicks stop streaming, or stop recording, or end room when beam is running
      • If a stop request is sent through api
  2. max duration reached: if the max duration is reached. Configured in template as maxDuration, defaults to 4 hours.
    • Example scenarios:
      • If beam has been running for maxDuration and no stop request has been sent
  3. room ended: if the room has been ended but no stop request is sent. In such case, beam auto-detects room end, and stops in a minute if no stop request has been sent.
    • Example scenarios:
      • If meeting url set doesn't correspond to the room_id provided in the start request, calling room end won't send a stop request. So, beam detects this and stops.
  4. last peer left: if there's no one else in the room apart from beam for a long time. Currently, this is set to 5 minutes.
    • Example scenarios:
      • If everyone in the room leaves and forgets to stop beam, it'll be automatically stopped in 5 minutes.
  5. failure: <error_type>: if any failure occurs causing minion to stop. The error_type corresponds to the error_type in beam.failure webhook.
    • Example scenarios:
      • If a wrong meeting url is given, where the beam peer cannot join. Beam retries and fails with MAX_RETRIES_REACHED. In this case, reason will be failure: MAX_RETRIES_REACHED

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:59:57Z", "type": "hls.stopped.success", "data": { "beam_id": "************************", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T12:59:57.797972469Z", "peer_id": "********-****-****-****-***********", "recording_single_file_per_layer_enabled": false, "recording_vod_playlist_enabled": false, "room_id": "************************", "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "session_id": "************************", "template_id": "************************", "duration": 56, "started_at": "2021-11-30T12:59:57.797972469Z", "stopped_at": "2021-11-30T12:59:57.797972469Z", "session_started_at": "2021-11-30T12:58:49.97291247Z", "reason": "client request" } }

hls.failure

This event will be sent when there are failures in HLS streaming and/or recording. This can occur when,

  1. The meeting_url is invalid
  2. Other unexpected errors with HLS streaming / recording.

Please check the below table for possible error types, messages and description.

Error types

TypeMessageDescription
INTERNAL_ERRORInternal errorInternal errors in beam.
MAX_RETRIES_REACHEDBeam couldn't connect to Meeting URL after <max_count> retries. Check if meeting URL is correct.Sent when Beam cannot join meeting URL after predefined number of max retries.
UPLOAD_ERRORFailed to upload recordings. Check if upload config is correct.Sent when there are failures in uploading recordings. This is most likely due to incorrect upload config.
BEAM_STOPPEDBeam stopped too earlyBeam takes a few seconds to start, if a stop request is sent before that, we send BEAM_STOPPED error.

Attributes

NameTypeDescription
beam_idstringUnique beam id

Example: 61d3def54b616982bd80ed83
job_idstringBeam job id

Example: 60b8e1d96eb86d8101b57359
recording_single_file_per_layer_enabledboolIndicates whether HLS recording should be available as separate files for various dimensions supported. Output will be Individual mp4 file per HLS layer.

Example: false
recording_vod_playlist_enabledboolIndicates whether Video on Demand is enabled or not. Output will be a ZIP file of m3u8 format with all the chunks.

Example: false
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
peer_idstring100ms assigned id to identify the joining user

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
max_widthintMaximum width of the screen supported for HLS streaming / recording in pixels

Example: 1280
max_heightintMaximum height of the screen supported for HLS streaming / recording in pixels

Example: 720
meeting_urlstringmeeting_url provided at HLS start

Example: "https://app.100ms.live/room_id"
error_codeintBeam error code

Example: 1
(Deprecated)
error_messagestringBeam error message (description)

Example: Failed to upload recordings. Check if upload config is correct.
error_typestringBeam error type

Example: UPLOAD_ERROR
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
state_namestringBeam state identifier

Example: HLSFailed
(Deprecated)
state_timestamptimestamp (in UTC)Timestamp at which beam state changed

Example: 2020-11-11T17:32:18Z
(Deprecated)
durationintDuration of HLS streaming in seconds

Example: 12
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T20:36:55Z", "type": "hls.failure", "data": { "beam_id": "************************", "error_code": 1, "error_message": "Failed to upload recordings. Check if upload config is correct.", "error_type": "UPLOAD_ERROR", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T20:36:55.807155801Z", "peer_id": "********-****-****-****-***********", "recording_single_file_per_layer_enabled": false, "recording_vod_playlist_enabled": false, "room_id": "************************", "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "session_id": "************************", "template_id": "************************", "duration": 56, "session_started_at": "2021-11-30T12:58:49.97291247Z" } }

hls.recording.success

This event will be sent when HLS recordings are successful and uploaded to the storage

Attributes

NameTypeDescription
beam_idstringUnique beam id

Example: 61d3def54b616982bd80ed83
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
durationintDuration of HLS recording in seconds

Example: 12
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg
hls_vod_recording_pathstringUpload path of the HLS VOD playlist such as s3 URL

Example: s3://bucket/prefix/ac.mp4
hls_vod_recording_presigned_urlstringThis will be a playable CDN URL for the VOD file or the pre-signed URL of the M3U8 file, depending upon the configured storage and the VOD upload format. Learn more about this here

Example: https://upload-location/bucket/hls-vod.zip , https://upload-location/bucket/hls-vod.m3u8
chat_recording_pathstringUpload path of chat recording files such as s3 URI

Example: s3://bucket/prefix/ac.csv
chat_recording_presigned_urlstringPre signed url for chat recording files

Example: https://upload-location/bucket/chat.csv
hls_vod_recording_sizeintSize of the HLS vod recording (in bytes)

Example: 10024
max_widthintMaximum width of the screen supported for HLS recording in pixels

Example: 1280
max_heightintMaximum height of the screen supported for HLS recording in pixels

Example: 720
meeting_urlstringmeeting_url provided at HLS start

Example: "https://app.100ms.live/room_id"
recording_created_attimestamp (in UTC)Timestamp at which recording was created

Example: 2020-11-11T17:12:17Z
started_attimestamp (in UTC)Timestamp at which HLS started

Example: 2020-11-11T17:32:18Z
stopped_attimestamp (in UTC)Timestamp at which HLS stopped

Example: 2020-11-11T17:32:18Z
recording_idstring100ms assigned id to the recording

Example: 5ff5881b80b66969e1fb35f4
recording_single_filesarrayList of recording details per layer. layer="0" is the highest quality layer

Example: < see below >
recording_hls_vod_playlist_locationstring(Deprecated, use hls_vod_recording_presigned_url) Pre signed url for HLS vod playlist url.

Example: < see below >*
recording_thumbnailsarrayList of thumbnails generated

Example: < see below >
session_started_attimestamp (in UTC)Timestamp when session started

Example: 2020-11-11T16:32:17Z

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T20:36:55Z", "type": "hls.recording.success", "data": { "beam_id": "************************", "session_id": "************************", "template_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T20:36:55.807155801Z", "room_id": "************************", "duration": 56, "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "hls_vod_recording_path": "s3://<hls-vod-bucket-address>.m3u8", "hls_vod_recording_presigned_url": "https://<hls-vod-access-url>?<signature>", "chat_recording_path": "s3://<chat-recording-address>.csv", "chat_recording_presigned_url": "https://<chat-recording-access-url>?<signature>", "hls_vod_recording_size": 10024, "recording_id": "************************", "recording_single_files": [ { "asset_id": "646acb659348ac0ada47d9ef", "layer": "0", "recording_path": "s3://<file-0-bucket-address>.mp4", "recording_presigned_url": "https://<file-0-access-url>?<signature-0>", "size": 10024, "width": 1920, "height": 1080 }, { "asset_id": "646acb659348ac0ada47d0cb", "layer": "1", "recording_path": "s3://<file-1-bucket-address>.mp4", "recording_presigned_url": "https://<file-1-access-url>?<signature-1>", "size": 5012, "width": 1280, "height": 720 }, { "asset_id": "646acb659348ac0ada4748fc", "layer": "2", "recording_path": "s3://<file-2-bucket-address>.mp4", "recording_presigned_url": "https://<file-2-access-url>?<signature-2>", "size": 2506, "width": 640, "height": 480 }, { "asset_id": "646acb659348ac0aba470cdc", "layer": "3", "recording_path": "s3://<file-3-bucket-address>.mp4", "recording_presigned_url": "https://<file-3-access-url>?<signature-3>", "size": 1024, "width": 480, "height": 360 } ], "recording_thumbnails": [ { "width": 1280, "height": 720, "offset": 60, "location": "s3://<thumbnail-file-bucket-address>.png", "url": "https://<thumbnail-access-url>?<signature3>" } ], "recording_created_at": "2021-11-30T12:59:57.672493658Z", "started_at": "2021-11-30T12:59:57.797972469Z", "stopped_at": "2021-11-30T12:59:57.797972469Z", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }

Transcription Events

transcription.started.success

This event is sent when transcription is started post completion of the recording.

Attributes

NameTypeDescription
account_idstringCustomer ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f4
app_idstringApp ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f6
recording_idstring100ms assigned id to the recording

Example: 5ff5881b80b66969e1fb35f4
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
transcription_idstring100ms assigned id to identify the transcription

Example: 648aabbcafd9fc711c815270
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
durationintDuration of the recording file that is transcribed in seconds

Example: 25
summary_json_asset_idstring100ms assigned id to the generated summary (json) asset

Example: 64899f07651605b7aadc2579
transcript_json_asset_idstring100ms assigned id to the generated transcription (json) asset

Example: 64899f07651605b7aadc2578
transcript_srt_asset_idstring100ms assigned id to the generated transcription (srt) asset

Example: 64899f07651605b7aadc2577
transcript_txt_asset_idstring100ms assigned id to the generated transcription (txt) asset

Example: 64899f07651605b7aadc2576

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2023-06-15T06:17:39Z", "type": "transcription.started.success", "data": { "account_id": "***********************", "app_id": "***********************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2023-06-15T06:17:39.986637275Z", "recording_id": "***********************", "room_id": "***********************", "room_name": "***********", "transcription_id": "***********************", "session_id": "***********************", "duration": 23, "summary_json_asset_id": "***********************", "transcript_json_asset_id": "***********************", "transcript_srt_asset_id": "***********************", "transcript_txt_asset_id": "***********************" } }

transcription.success

This event is sent when transcription is successful and the assets are uploaded to the storage.

Attributes

NameTypeDescription
account_idstringCustomer ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f4
app_idstringApp ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f6
recording_idstring100ms assigned id to the recording

Example: 5ff5881b80b66969e1fb35f4
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
transcription_idstring100ms assigned id to identify the transcription

Example: 648aabbcafd9fc711c815270
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
durationintDuration of the recording file that is transcribed in seconds

Example: 25
summary_json_asset_idstring100ms assigned id to the generated summary (json) asset

Example: 64899f07651605b7aadc2579
summary_json_pathstringUpload path of the summary (json)

Example: s3://bucket/prefix/ac.mp4
summary_json_presigned_urlstringPre-signed URL of summary (json)
transcript_json_asset_idstring100ms assigned id to the generated transcription (json) asset

Example: 64899f07651605b7aadc2578
transcript_json_pathstringUpload path of the transcript (json)

Example: s3://bucket/prefix/ac.mp4
transcript_json_presigned_urlstringPre-signed URL of transcript (json)
transcript_srt_asset_idstring100ms assigned id to the generated transcription (srt) asset

Example: 64899f07651605b7aadc2577
transcript_srt_pathstringUpload path of the transcript (srt)

Example: s3://bucket/prefix/ac.mp4
transcript_srt_presigned_urlstringPre-signed URL of transcript (srt)
transcript_txt_asset_idstring100ms assigned id to the generated transcription (txt) asset

Example: 64899f07651605b7aadc2576
transcript_txt_pathstringUpload path of the transcript (txt)

Example: s3://bucket/prefix/ac.mp4
transcript_txt_presigned_urlstringPre-signed URL of transcript (txt)

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2023-06-15T06:17:39Z", "type": "transcription.success", "data": { "account_id": "***********************", "app_id": "***********************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2023-06-15T06:17:39.986637275Z", "recording_id": "***********************", "room_id": "***********************", "room_name": "***********", "transcription_id": "***********************", "session_id": "***********************", "duration": 23, "summary_json_asset_id": "***********************", "summary_json_path": "s3://<summary-json-address>.json", "summary_json_presigned_url": "https://<file-access-url>?<signature>", "transcript_json_asset_id": "***********************", "transcript_json_path": "s3://<transcript-json-address>.json", "transcript_json_presigned_url": "https://<file-access-url>?<signature>", "transcript_srt_asset_id": "***********************", "transcript_srt_path": "s3://<transcript-srt-address>.json", "transcript_srt_presigned_url": "https://<file-access-url>?<signature>", "transcript_txt_asset_id": "***********************", "transcript_txt_path": "s3://<transcript-txt-address>.json", "transcript_txt_presigned_url": "https://<file-access-url>?<signature>" } }

transcription.failure

This event is sent when transcription fails. Some files might still be generated even in case of a failure. A transcription is considered to have failed when:

  1. Summary was not generated even though it was enabled.
  2. No or partial transcription and summary assets were generated.

Attributes

NameTypeDescription
account_idstringCustomer ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f4
app_idstringApp ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f6
recording_idstring100ms assigned id to the recording

Example: 5ff5881b80b66969e1fb35f4
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
room_namestringRoom name provided when creating the room

Example: Test Room
session_idstring100ms assigned id to identify the session

Example: 5f9edc6bd238215aec7700df
metadata_idstringWebhook metadata ID

Example: 14f350f5-18c4-46ca-8a33-71cbcc836600
transcription_idstring100ms assigned id to identify the transcription

Example: 648aabbcafd9fc711c815270
metadata_timestamptimestamp (in UTC)Webhook message creation timestamp

Example: 2020-11-11T17:32:17Z
durationintDuration of the recording file that is transcribed in seconds

Example: 25
summary_json_asset_idstring100ms assigned id to the generated summary (json) asset

Example: 64899f07651605b7aadc2579
summary_json_pathstringUpload path of the summary (json)

Example: s3://bucket/prefix/ac.mp4
summary_json_presigned_urlstringPre-signed URL of summary (json)
transcript_json_asset_idstring100ms assigned id to the generated transcription (json) asset

Example: 64899f07651605b7aadc2578
transcript_json_pathstringUpload path of the transcript (json)

Example: s3://bucket/prefix/ac.mp4
transcript_json_presigned_urlstringPre-signed URL of transcript (json)
transcript_srt_asset_idstring100ms assigned id to the generated transcription (srt) asset

Example: 64899f07651605b7aadc2577
transcript_srt_pathstringUpload path of the transcript (srt)

Example: s3://bucket/prefix/ac.mp4
transcript_srt_presigned_urlstringPre-signed URL of transcript (srt)
transcript_txt_asset_idstring100ms assigned id to the generated transcription (txt) asset

Example: 64899f07651605b7aadc2576
transcript_txt_pathstringUpload path of the transcript (txt)

Example: s3://bucket/prefix/ac.mp4
transcript_txt_presigned_urlstringPre-signed URL of transcript (txt)

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2023-06-15T06:17:39Z", "type": "transcription.failure", "data": { "account_id": "***********************", "app_id": "***********************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2023-06-15T06:17:39.986637275Z", "recording_id": "***********************", "room_id": "***********************", "room_name": "***********", "transcription_id": "***********************", "session_id": "***********************", "duration": 23, "summary_json_asset_id": "***********************", "summary_json_path": "s3://<summary-json-address>.json", "summary_json_presigned_url": "https://<file-access-url>?<signature>", "transcript_json_asset_id": "***********************", "transcript_json_path": "s3://<transcript-json-address>.json", "transcript_json_presigned_url": "https://<file-access-url>?<signature>", "transcript_srt_asset_id": "***********************", "transcript_srt_path": "s3://<transcript-srt-address>.json", "transcript_srt_presigned_url": "https://<file-access-url>?<signature>", "transcript_txt_asset_id": "***********************", "transcript_txt_path": "s3://<transcript-txt-address>.json", "transcript_txt_presigned_url": "https://<file-access-url>?<signature>" } }

RTMP Ingestion Events

ingest.start.success

This event is sent when RTMP ingestion has successfully started.

Attributes

NameTypeDescription
idstringId of the event

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
account_idstringCustomer ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f4
app_idstringApp ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f6
timestamptimestamp (in UTC)Timestamp of the event

Example: 2020-11-11T16:32:17Z
typestringType of the event

Example: ingest.start.success
started_attimestamp (in UTC)Timestamp at which ingestion started

Example: 2020-11-11T17:32:18Z
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
ingest_idstring100ms assigned id to identify the ingestion

Example: 652d2dfb3bde33b03a9602da
stream_idstring100ms assigned id to identify the stream

Example: 652d2dfc037b60106eb62413
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "***********************", "app_id": "***********************", "timestamp": "2023-10-16T12:35:08Z", "type": "ingest.start.success", "data": { "account_id": "***********************", "app_id": "***********************", "ingest_id": "***********************", "room_id": "***********************", "started_at": "2023-10-16T12:35:08Z", "stream_id": "***********************", "template_id": "***********************" } }

ingest.end.success

This event is sent when RTMP ingestion has successfully ended.

Attributes

NameTypeDescription
idstringId of the event

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
account_idstringCustomer ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f4
app_idstringApp ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f6
timestamptimestamp (in UTC)Timestamp of the event

Example: 2020-11-11T16:32:17Z
typestringType of the event

Example: ingest.end.success
started_attimestamp (in UTC)Timestamp at which ingestion started

Example: 2020-11-11T17:32:18Z
completed_attimestamp (in UTC)Timestamp at which ingestion ended

Example: 2020-11-11T17:32:18Z
durationintDuration of the stream that is ingested (in seconds)

Example: 110
last_disconnected_atstringLast timestamp at which 100ms ingest servers stopped receiving media

Example: 2020-11-11T17:32:18Z
reasonstringReason for ending of ingestion. Possible reasons are : "publish error", "reconnection window expired", "stream closed", "internal error"
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
ingest_idstring100ms assigned id to identify the ingestion

Example: 652d2dfb3bde33b03a9602da
stream_idstring100ms assigned id to identify the stream

Example: 652d2dfc037b60106eb62413
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "***********************", "app_id": "***********************", "timestamp": "2023-10-16T12:36:58Z", "type": "ingest.end.success", "data": { "account_id": "***********************", "app_id": "***********************", "completed_at": "2023-10-16T12:36:58Z", "duration": 111, "ingest_id": "***********************", "last_disconnected_at": "2023-10-16T12:36:58Z", "reason": "reconnection window expired", "room_id": "***********************", "started_at": "2023-10-16T12:36:58Z", "stream_id": "***********************", "template_id": "***********************" } }

ingest.start.failure

This event is sent when RTMP ingestion has failed to start.

Attributes

NameTypeDescription
idstringId of the event

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
account_idstringCustomer ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f4
app_idstringApp ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f6
timestamptimestamp (in UTC)Timestamp of the event

Example: 2020-11-11T16:32:17Z
typestringType of the event

Example: ingest.start.failure
error_messagestringError message for failure of ingestion start. Possible messages are: "stream key disabled", "internal error", "no hls destinations", "remote session active", "already connected", "beam start error"
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "***********************", "app_id": "***********************", "timestamp": "2023-10-16T12:36:58Z", "type": "ingest.start.failure", "data": { "account_id": "***********************", "app_id": "***********************", "error_message": "stream key disabled", "room_id": "***********************", "template_id": "***********************" } }

ingest.failure

This event is sent when RTMP ingestion is failed.

Attributes

NameTypeDescription
idstringId of the event

Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4
account_idstringCustomer ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f4
app_idstringApp ID from which this event is generated

Example: 5ff5881b80b66969e1fb35f6
timestamptimestamp (in UTC)Timestamp of the event

Example: 2020-11-11T16:32:17Z
typestringType of the event

Example: ingest.failure
error_messagestringError message for failure of ingestion start. Possible messages are: "internal error"
ingest_idstring100ms assigned id to identify the ingestion

Example: 652d2dfb3bde33b03a9602da
room_idstring100ms assigned room id

Example: 5f9edc6ac238215aec2312df
template_idstringTemplate ID of the room

Example: 66112497abcd52312556c4gg

Sample

{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "***********************", "app_id": "***********************", "timestamp": "2023-10-16T12:36:58Z", "type": "ingest.failure", "data": { "account_id": "***********************", "app_id": "***********************", "error_message": "stream key disabled", "ingest_id": "***********************", "room_id": "***********************", "template_id": "***********************" } }

Have a suggestion? Recommend changes ->

Run in postman

Was this helpful?

1234