Skip to content
Start here

Realtime Kit

Realtime KitApps

Fetch all apps
client.realtimeKit.apps.get(AppGetParams { account_id } params, RequestOptionsoptions?): AppGetResponse { data, success }
GET/accounts/{account_id}/realtime/kit/apps
Create App
client.realtimeKit.apps.post(AppPostParams { account_id, name } params, RequestOptionsoptions?): AppPostResponse { data, success }
POST/accounts/{account_id}/realtime/kit/apps
ModelsExpand Collapse
AppGetResponse { data, success }
data?: Array<Data>
id?: string
created_at?: string
name?: string
success?: boolean
AppPostResponse { data, success }
data?: Data { app }
app?: App { id, created_at, name }
id?: string
created_at?: string
name?: string
success?: boolean

Realtime KitMeetings

Fetch all meetings for an App
client.realtimeKit.meetings.get(stringappId, MeetingGetParams { account_id, end_time, page_no, 3 more } params, RequestOptionsoptions?): MeetingGetResponse { data, paging, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings
Create a meeting
client.realtimeKit.meetings.create(stringappId, MeetingCreateParams { account_id, ai_config, live_stream_on_start, 6 more } params, RequestOptionsoptions?): MeetingCreateResponse { success, data }
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings
Fetch a meeting for an App
client.realtimeKit.meetings.getMeetingById(stringappId, stringmeetingId, MeetingGetMeetingByIDParams { account_id, name } params, RequestOptionsoptions?): MeetingGetMeetingByIDResponse { success, data }
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}
Update a meeting
client.realtimeKit.meetings.updateMeetingById(stringappId, stringmeetingId, MeetingUpdateMeetingByIDParams { account_id, ai_config, live_stream_on_start, 6 more } params, RequestOptionsoptions?): MeetingUpdateMeetingByIDResponse { success, data }
PATCH/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}
Replace a meeting
client.realtimeKit.meetings.replaceMeetingById(stringappId, stringmeetingId, MeetingReplaceMeetingByIDParams { account_id, ai_config, live_stream_on_start, 6 more } params, RequestOptionsoptions?): MeetingReplaceMeetingByIDResponse { success, data }
PUT/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}
Fetch all participants of a meeting
client.realtimeKit.meetings.getMeetingParticipants(stringappId, stringmeetingId, MeetingGetMeetingParticipantsParams { account_id, page_no, per_page } params, RequestOptionsoptions?): MeetingGetMeetingParticipantsResponse { data, paging, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants
Add a participant
client.realtimeKit.meetings.addParticipant(stringappId, stringmeetingId, MeetingAddParticipantParams { account_id, custom_participant_id, preset_name, 2 more } params, RequestOptionsoptions?): MeetingAddParticipantResponse { success, data }
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants
Fetch a participant's detail
client.realtimeKit.meetings.getMeetingParticipant(stringappId, stringmeetingId, stringparticipantId, MeetingGetMeetingParticipantParams { account_id } params, RequestOptionsoptions?): MeetingGetMeetingParticipantResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}
Edit a participant's detail
client.realtimeKit.meetings.editParticipant(stringappId, stringmeetingId, stringparticipantId, MeetingEditParticipantParams { account_id, name, picture, preset_name } params, RequestOptionsoptions?): MeetingEditParticipantResponse { success, data }
PATCH/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}
Delete a participant
client.realtimeKit.meetings.deleteMeetingParticipant(stringappId, stringmeetingId, stringparticipantId, MeetingDeleteMeetingParticipantParams { account_id } params, RequestOptionsoptions?): MeetingDeleteMeetingParticipantResponse { success, data }
DELETE/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}
Refresh participant's authentication token
client.realtimeKit.meetings.refreshParticipantToken(stringappId, stringmeetingId, stringparticipantId, MeetingRefreshParticipantTokenParams { account_id } params, RequestOptionsoptions?): MeetingRefreshParticipantTokenResponse { data, success }
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}/token
ModelsExpand Collapse
MeetingGetResponse { data, paging, success }
data: Array<Data>
id: string

ID of the meeting.

formatuuid
created_at: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
updated_at: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
live_stream_on_start?: boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat?: boolean

Specifies if Chat within a meeting should persist for a week.

record_on_start?: boolean

Specifies if the meeting should start getting recorded as soon as someone joins the meeting.

session_keep_alive_time_in_secs?: number

Time in seconds, for which a session remains active, after the last participant has left the meeting.

maximum600
minimum60
status?: "ACTIVE" | "INACTIVE"

Whether the meeting is ACTIVE or INACTIVE. Users will not be able to join an INACTIVE meeting.

One of the following:
"ACTIVE"
"INACTIVE"
summarize_on_end?: boolean

Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.

title?: string

Title of the meeting.

paging: Paging { end_offset, start_offset, total_count }
end_offset: number
start_offset: number
total_count: number
minimum0
success: boolean
MeetingCreateResponse { success, data }
success: boolean

Success status of the operation

data?: Data { id, created_at, updated_at, 9 more }

Data returned by the operation

id: string

ID of the meeting.

formatuuid
created_at: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
updated_at: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
ai_config?: AIConfig { summarization, transcription }

The AI Config allows you to customize the behavior of meeting transcriptions and summaries

summarization?: Summarization { summary_type, text_format, word_limit }

Summary Config

summary_type?: "general" | "team_meeting" | "sales_call" | 6 more

Defines the style of the summary, such as general, team meeting, or sales call.

One of the following:
"general"
"team_meeting"
"sales_call"
"client_check_in"
"interview"
"daily_standup"
"one_on_one_meeting"
"lecture"
"code_review"
text_format?: "plain_text" | "markdown"

Determines the text format of the summary, such as plain text or markdown.

One of the following:
"plain_text"
"markdown"
word_limit?: number

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
transcription?: Transcription { keywords, language, profanity_filter }

Transcription Configurations

keywords?: Array<string>

Adds specific terms to improve accurate detection during transcription.

language?: "en-US" | "en-IN" | "de" | 7 more

Specifies the language code for transcription to ensure accurate results.

One of the following:
"en-US"
"en-IN"
"de"
"hi"
"sv"
"ru"
"pl"
"el"
"fr"
"nl"
profanity_filter?: boolean

Control the inclusion of offensive language in transcriptions.

live_stream_on_start?: boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat?: boolean

Specifies if Chat within a meeting should persist for a week.

record_on_start?: boolean

Specifies if the meeting should start getting recorded as soon as someone joins the meeting.

recording_config?: RecordingConfig { audio_config, file_name_prefix, live_streaming_config, 4 more }

Recording Configurations to be used for this meeting. This level of configs takes higher preference over App level configs on the RealtimeKit developer portal.

audio_config?: AudioConfig { channel, codec, export_file }

Object containing configuration regarding the audio that is being recorded.

channel?: "mono" | "stereo"

Audio signal pathway within an audio file that carries a specific sound source.

One of the following:
"mono"
"stereo"
codec?: "MP3" | "AAC"

Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.

One of the following:
"MP3"
"AAC"
export_file?: boolean

Controls whether to export audio file seperately

file_name_prefix?: string

Adds a prefix to the beginning of the file name of the recording.

live_streaming_config?: LiveStreamingConfig { rtmp_url }
rtmp_url?: string

RTMP URL to stream to

formaturi
max_seconds?: number

Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.

maximum86400
minimum60
realtimekit_bucket_config?: RealtimekitBucketConfig { enabled }
enabled: boolean

Controls whether recordings are uploaded to RealtimeKit's bucket. If set to false, download_url, audio_download_url, download_url_expiry won't be generated for a recording.

storage_config?: StorageConfig | null
type: "aws" | "azure" | "digitalocean" | 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key?: string

Access key of the storage medium. Access key is not required for the gcs storage media type.

Note that this field is not readable by clients, only writeable.

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

One of the following:
"KEY"
"PASSWORD"
bucket?: string

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

SSH destination server password for SFTP type storage medium when auth_method is "PASSWORD". If auth_method is "KEY", this specifies the password for the ssh private key.

path?: string

Path relative to the bucket root at which the recording will be placed.

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"

region?: string

Region of the storage medium.

secret?: string

Secret key of the storage medium. Similar to access_key, it is only writeable by clients, not readable.

username?: string

SSH destination server username for SFTP type storage medium

video_config?: VideoConfig { codec, export_file, height, 2 more }
codec?: "H264" | "VP8"

Codec using which the recording will be encoded.

One of the following:
"H264"
"VP8"
export_file?: boolean

Controls whether to export video file seperately

height?: number

Height of the recording video in pixels

maximum1920
minimum1
watermark?: Watermark { position, size, url }

Watermark to be added to the recording

position?: "left top" | "right top" | "left bottom" | "right bottom"

Position of the watermark

One of the following:
"left top"
"right top"
"left bottom"
"right bottom"
size?: Size { height, width }

Size of the watermark

height?: number

Height of the watermark in px

minimum1
width?: number

Width of the watermark in px

minimum1
url?: string

URL of the watermark image

formaturi
width?: number

Width of the recording video in pixels

maximum1920
minimum1
session_keep_alive_time_in_secs?: number

Time in seconds, for which a session remains active, after the last participant has left the meeting.

maximum600
minimum60
status?: "ACTIVE" | "INACTIVE"

Whether the meeting is ACTIVE or INACTIVE. Users will not be able to join an INACTIVE meeting.

One of the following:
"ACTIVE"
"INACTIVE"
summarize_on_end?: boolean

Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.

title?: string

Title of the meeting.

MeetingGetMeetingByIDResponse { success, data }
success: boolean

Success status of the operation

data?: Data { id, created_at, updated_at, 9 more }

Data returned by the operation

id: string

ID of the meeting.

formatuuid
created_at: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
updated_at: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
ai_config?: AIConfig { summarization, transcription }

The AI Config allows you to customize the behavior of meeting transcriptions and summaries

summarization?: Summarization { summary_type, text_format, word_limit }

Summary Config

summary_type?: "general" | "team_meeting" | "sales_call" | 6 more

Defines the style of the summary, such as general, team meeting, or sales call.

One of the following:
"general"
"team_meeting"
"sales_call"
"client_check_in"
"interview"
"daily_standup"
"one_on_one_meeting"
"lecture"
"code_review"
text_format?: "plain_text" | "markdown"

Determines the text format of the summary, such as plain text or markdown.

One of the following:
"plain_text"
"markdown"
word_limit?: number

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
transcription?: Transcription { keywords, language, profanity_filter }

Transcription Configurations

keywords?: Array<string>

Adds specific terms to improve accurate detection during transcription.

language?: "en-US" | "en-IN" | "de" | 7 more

Specifies the language code for transcription to ensure accurate results.

One of the following:
"en-US"
"en-IN"
"de"
"hi"
"sv"
"ru"
"pl"
"el"
"fr"
"nl"
profanity_filter?: boolean

Control the inclusion of offensive language in transcriptions.

live_stream_on_start?: boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat?: boolean

Specifies if Chat within a meeting should persist for a week.

record_on_start?: boolean

Specifies if the meeting should start getting recorded as soon as someone joins the meeting.

recording_config?: RecordingConfig { audio_config, file_name_prefix, live_streaming_config, 4 more }

Recording Configurations to be used for this meeting. This level of configs takes higher preference over App level configs on the RealtimeKit developer portal.

audio_config?: AudioConfig { channel, codec, export_file }

Object containing configuration regarding the audio that is being recorded.

channel?: "mono" | "stereo"

Audio signal pathway within an audio file that carries a specific sound source.

One of the following:
"mono"
"stereo"
codec?: "MP3" | "AAC"

Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.

One of the following:
"MP3"
"AAC"
export_file?: boolean

Controls whether to export audio file seperately

file_name_prefix?: string

Adds a prefix to the beginning of the file name of the recording.

live_streaming_config?: LiveStreamingConfig { rtmp_url }
rtmp_url?: string

RTMP URL to stream to

formaturi
max_seconds?: number

Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.

maximum86400
minimum60
realtimekit_bucket_config?: RealtimekitBucketConfig { enabled }
enabled: boolean

Controls whether recordings are uploaded to RealtimeKit's bucket. If set to false, download_url, audio_download_url, download_url_expiry won't be generated for a recording.

storage_config?: StorageConfig | null
type: "aws" | "azure" | "digitalocean" | 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key?: string

Access key of the storage medium. Access key is not required for the gcs storage media type.

Note that this field is not readable by clients, only writeable.

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

One of the following:
"KEY"
"PASSWORD"
bucket?: string

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

SSH destination server password for SFTP type storage medium when auth_method is "PASSWORD". If auth_method is "KEY", this specifies the password for the ssh private key.

path?: string

Path relative to the bucket root at which the recording will be placed.

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"

region?: string

Region of the storage medium.

secret?: string

Secret key of the storage medium. Similar to access_key, it is only writeable by clients, not readable.

username?: string

SSH destination server username for SFTP type storage medium

video_config?: VideoConfig { codec, export_file, height, 2 more }
codec?: "H264" | "VP8"

Codec using which the recording will be encoded.

One of the following:
"H264"
"VP8"
export_file?: boolean

Controls whether to export video file seperately

height?: number

Height of the recording video in pixels

maximum1920
minimum1
watermark?: Watermark { position, size, url }

Watermark to be added to the recording

position?: "left top" | "right top" | "left bottom" | "right bottom"

Position of the watermark

One of the following:
"left top"
"right top"
"left bottom"
"right bottom"
size?: Size { height, width }

Size of the watermark

height?: number

Height of the watermark in px

minimum1
width?: number

Width of the watermark in px

minimum1
url?: string

URL of the watermark image

formaturi
width?: number

Width of the recording video in pixels

maximum1920
minimum1
session_keep_alive_time_in_secs?: number

Time in seconds, for which a session remains active, after the last participant has left the meeting.

maximum600
minimum60
status?: "ACTIVE" | "INACTIVE"

Whether the meeting is ACTIVE or INACTIVE. Users will not be able to join an INACTIVE meeting.

One of the following:
"ACTIVE"
"INACTIVE"
summarize_on_end?: boolean

Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.

title?: string

Title of the meeting.

MeetingUpdateMeetingByIDResponse { success, data }
success: boolean

Success status of the operation

data?: Data { id, created_at, updated_at, 9 more }

Data returned by the operation

id: string

ID of the meeting.

formatuuid
created_at: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
updated_at: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
ai_config?: AIConfig { summarization, transcription }

The AI Config allows you to customize the behavior of meeting transcriptions and summaries

summarization?: Summarization { summary_type, text_format, word_limit }

Summary Config

summary_type?: "general" | "team_meeting" | "sales_call" | 6 more

Defines the style of the summary, such as general, team meeting, or sales call.

One of the following:
"general"
"team_meeting"
"sales_call"
"client_check_in"
"interview"
"daily_standup"
"one_on_one_meeting"
"lecture"
"code_review"
text_format?: "plain_text" | "markdown"

Determines the text format of the summary, such as plain text or markdown.

One of the following:
"plain_text"
"markdown"
word_limit?: number

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
transcription?: Transcription { keywords, language, profanity_filter }

Transcription Configurations

keywords?: Array<string>

Adds specific terms to improve accurate detection during transcription.

language?: "en-US" | "en-IN" | "de" | 7 more

Specifies the language code for transcription to ensure accurate results.

One of the following:
"en-US"
"en-IN"
"de"
"hi"
"sv"
"ru"
"pl"
"el"
"fr"
"nl"
profanity_filter?: boolean

Control the inclusion of offensive language in transcriptions.

live_stream_on_start?: boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat?: boolean

Specifies if Chat within a meeting should persist for a week.

record_on_start?: boolean

Specifies if the meeting should start getting recorded as soon as someone joins the meeting.

recording_config?: RecordingConfig { audio_config, file_name_prefix, live_streaming_config, 4 more }

Recording Configurations to be used for this meeting. This level of configs takes higher preference over App level configs on the RealtimeKit developer portal.

audio_config?: AudioConfig { channel, codec, export_file }

Object containing configuration regarding the audio that is being recorded.

channel?: "mono" | "stereo"

Audio signal pathway within an audio file that carries a specific sound source.

One of the following:
"mono"
"stereo"
codec?: "MP3" | "AAC"

Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.

One of the following:
"MP3"
"AAC"
export_file?: boolean

Controls whether to export audio file seperately

file_name_prefix?: string

Adds a prefix to the beginning of the file name of the recording.

live_streaming_config?: LiveStreamingConfig { rtmp_url }
rtmp_url?: string

RTMP URL to stream to

formaturi
max_seconds?: number

Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.

maximum86400
minimum60
realtimekit_bucket_config?: RealtimekitBucketConfig { enabled }
enabled: boolean

Controls whether recordings are uploaded to RealtimeKit's bucket. If set to false, download_url, audio_download_url, download_url_expiry won't be generated for a recording.

storage_config?: StorageConfig | null
type: "aws" | "azure" | "digitalocean" | 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key?: string

Access key of the storage medium. Access key is not required for the gcs storage media type.

Note that this field is not readable by clients, only writeable.

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

One of the following:
"KEY"
"PASSWORD"
bucket?: string

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

SSH destination server password for SFTP type storage medium when auth_method is "PASSWORD". If auth_method is "KEY", this specifies the password for the ssh private key.

path?: string

Path relative to the bucket root at which the recording will be placed.

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"

region?: string

Region of the storage medium.

secret?: string

Secret key of the storage medium. Similar to access_key, it is only writeable by clients, not readable.

username?: string

SSH destination server username for SFTP type storage medium

video_config?: VideoConfig { codec, export_file, height, 2 more }
codec?: "H264" | "VP8"

Codec using which the recording will be encoded.

One of the following:
"H264"
"VP8"
export_file?: boolean

Controls whether to export video file seperately

height?: number

Height of the recording video in pixels

maximum1920
minimum1
watermark?: Watermark { position, size, url }

Watermark to be added to the recording

position?: "left top" | "right top" | "left bottom" | "right bottom"

Position of the watermark

One of the following:
"left top"
"right top"
"left bottom"
"right bottom"
size?: Size { height, width }

Size of the watermark

height?: number

Height of the watermark in px

minimum1
width?: number

Width of the watermark in px

minimum1
url?: string

URL of the watermark image

formaturi
width?: number

Width of the recording video in pixels

maximum1920
minimum1
session_keep_alive_time_in_secs?: number

Time in seconds, for which a session remains active, after the last participant has left the meeting.

maximum600
minimum60
status?: "ACTIVE" | "INACTIVE"

Whether the meeting is ACTIVE or INACTIVE. Users will not be able to join an INACTIVE meeting.

One of the following:
"ACTIVE"
"INACTIVE"
summarize_on_end?: boolean

Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.

title?: string

Title of the meeting.

MeetingReplaceMeetingByIDResponse { success, data }
success: boolean

Success status of the operation

data?: Data { id, created_at, updated_at, 9 more }

Data returned by the operation

id: string

ID of the meeting.

formatuuid
created_at: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
updated_at: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
ai_config?: AIConfig { summarization, transcription }

The AI Config allows you to customize the behavior of meeting transcriptions and summaries

summarization?: Summarization { summary_type, text_format, word_limit }

Summary Config

summary_type?: "general" | "team_meeting" | "sales_call" | 6 more

Defines the style of the summary, such as general, team meeting, or sales call.

One of the following:
"general"
"team_meeting"
"sales_call"
"client_check_in"
"interview"
"daily_standup"
"one_on_one_meeting"
"lecture"
"code_review"
text_format?: "plain_text" | "markdown"

Determines the text format of the summary, such as plain text or markdown.

One of the following:
"plain_text"
"markdown"
word_limit?: number

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
transcription?: Transcription { keywords, language, profanity_filter }

Transcription Configurations

keywords?: Array<string>

Adds specific terms to improve accurate detection during transcription.

language?: "en-US" | "en-IN" | "de" | 7 more

Specifies the language code for transcription to ensure accurate results.

One of the following:
"en-US"
"en-IN"
"de"
"hi"
"sv"
"ru"
"pl"
"el"
"fr"
"nl"
profanity_filter?: boolean

Control the inclusion of offensive language in transcriptions.

live_stream_on_start?: boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat?: boolean

Specifies if Chat within a meeting should persist for a week.

record_on_start?: boolean

Specifies if the meeting should start getting recorded as soon as someone joins the meeting.

recording_config?: RecordingConfig { audio_config, file_name_prefix, live_streaming_config, 4 more }

Recording Configurations to be used for this meeting. This level of configs takes higher preference over App level configs on the RealtimeKit developer portal.

audio_config?: AudioConfig { channel, codec, export_file }

Object containing configuration regarding the audio that is being recorded.

channel?: "mono" | "stereo"

Audio signal pathway within an audio file that carries a specific sound source.

One of the following:
"mono"
"stereo"
codec?: "MP3" | "AAC"

Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.

One of the following:
"MP3"
"AAC"
export_file?: boolean

Controls whether to export audio file seperately

file_name_prefix?: string

Adds a prefix to the beginning of the file name of the recording.

live_streaming_config?: LiveStreamingConfig { rtmp_url }
rtmp_url?: string

RTMP URL to stream to

formaturi
max_seconds?: number

Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.

maximum86400
minimum60
realtimekit_bucket_config?: RealtimekitBucketConfig { enabled }
enabled: boolean

Controls whether recordings are uploaded to RealtimeKit's bucket. If set to false, download_url, audio_download_url, download_url_expiry won't be generated for a recording.

storage_config?: StorageConfig | null
type: "aws" | "azure" | "digitalocean" | 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key?: string

Access key of the storage medium. Access key is not required for the gcs storage media type.

Note that this field is not readable by clients, only writeable.

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

One of the following:
"KEY"
"PASSWORD"
bucket?: string

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

SSH destination server password for SFTP type storage medium when auth_method is "PASSWORD". If auth_method is "KEY", this specifies the password for the ssh private key.

path?: string

Path relative to the bucket root at which the recording will be placed.

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"

region?: string

Region of the storage medium.

secret?: string

Secret key of the storage medium. Similar to access_key, it is only writeable by clients, not readable.

username?: string

SSH destination server username for SFTP type storage medium

video_config?: VideoConfig { codec, export_file, height, 2 more }
codec?: "H264" | "VP8"

Codec using which the recording will be encoded.

One of the following:
"H264"
"VP8"
export_file?: boolean

Controls whether to export video file seperately

height?: number

Height of the recording video in pixels

maximum1920
minimum1
watermark?: Watermark { position, size, url }

Watermark to be added to the recording

position?: "left top" | "right top" | "left bottom" | "right bottom"

Position of the watermark

One of the following:
"left top"
"right top"
"left bottom"
"right bottom"
size?: Size { height, width }

Size of the watermark

height?: number

Height of the watermark in px

minimum1
width?: number

Width of the watermark in px

minimum1
url?: string

URL of the watermark image

formaturi
width?: number

Width of the recording video in pixels

maximum1920
minimum1
session_keep_alive_time_in_secs?: number

Time in seconds, for which a session remains active, after the last participant has left the meeting.

maximum600
minimum60
status?: "ACTIVE" | "INACTIVE"

Whether the meeting is ACTIVE or INACTIVE. Users will not be able to join an INACTIVE meeting.

One of the following:
"ACTIVE"
"INACTIVE"
summarize_on_end?: boolean

Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.

title?: string

Title of the meeting.

MeetingGetMeetingParticipantsResponse { data, paging, success }
data: Array<Data>
id: string

ID of the participant.

formatuuid
created_at: string

When this object was created. The time is returned in ISO format.

formatdate-time
custom_participant_id: string

A unique participant ID generated by the client.

preset_name: string

Preset applied to the participant.

updated_at: string

When this object was updated. The time is returned in ISO format.

formatdate-time
name?: string | null

Name of the participant.

picture?: string | null

URL to a picture of the participant.

formaturi
paging: Paging { end_offset, start_offset, total_count }
end_offset: number
start_offset: number
total_count: number
minimum0
success: boolean
MeetingAddParticipantResponse { success, data }
success: boolean

Success status of the operation

data?: Data { id, token, created_at, 5 more }

Represents a participant.

id: string

ID of the participant.

formatuuid
token: string

The participant's auth token that can be used for joining a meeting from the client side.

created_at: string

When this object was created. The time is returned in ISO format.

formatdate-time
custom_participant_id: string

A unique participant ID generated by the client.

preset_name: string

Preset applied to the participant.

updated_at: string

When this object was updated. The time is returned in ISO format.

formatdate-time
name?: string | null

Name of the participant.

picture?: string | null

URL to a picture of the participant.

formaturi
MeetingGetMeetingParticipantResponse { data, success }
data: Data { id, created_at, custom_participant_id, 4 more }

Data returned by the operation

id: string

ID of the participant.

formatuuid
created_at: string

When this object was created. The time is returned in ISO format.

formatdate-time
custom_participant_id: string

A unique participant ID generated by the client.

preset_name: string

Preset applied to the participant.

updated_at: string

When this object was updated. The time is returned in ISO format.

formatdate-time
name?: string | null

Name of the participant.

picture?: string | null

URL to a picture of the participant.

formaturi
success: boolean

Success status of the operation

MeetingEditParticipantResponse { success, data }
success: boolean

Success status of the operation

data?: Data { id, token, created_at, 5 more }

Represents a participant.

id: string

ID of the participant.

formatuuid
token: string

The participant's auth token that can be used for joining a meeting from the client side.

created_at: string

When this object was created. The time is returned in ISO format.

formatdate-time
custom_participant_id: string

A unique participant ID generated by the client.

preset_name: string

Preset applied to the participant.

updated_at: string

When this object was updated. The time is returned in ISO format.

formatdate-time
name?: string | null

Name of the participant.

picture?: string | null

URL to a picture of the participant.

formaturi
MeetingDeleteMeetingParticipantResponse { success, data }
success: boolean

Success status of the operation

data?: Data { created_at, custom_participant_id, preset_id, updated_at }

Data returned by the operation

created_at: string

Timestamp this object was created at. The time is returned in ISO format.

formatdate-time
custom_participant_id: string

A unique participant ID generated by the client.

preset_id: string

ID of the preset applied to this participant.

formatuuid
updated_at: string

Timestamp this object was updated at. The time is returned in ISO format.

formatdate-time
MeetingRefreshParticipantTokenResponse { data, success }
data: Data { token }

Data returned by the operation

token: string

Regenerated participant's authentication token.

success: boolean

Success status of the operation

Realtime KitPresets

Fetch all presets
client.realtimeKit.presets.get(stringappId, PresetGetParams { account_id, page_no, per_page } params, RequestOptionsoptions?): PresetGetResponse { data, paging, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/presets
Create a preset
client.realtimeKit.presets.create(stringappId, PresetCreateParams { account_id, config, name, 2 more } params, RequestOptionsoptions?): PresetCreateResponse { data, success }
POST/accounts/{account_id}/realtime/kit/{app_id}/presets
Fetch details of a preset
client.realtimeKit.presets.getPresetById(stringappId, stringpresetId, PresetGetPresetByIDParams { account_id } params, RequestOptionsoptions?): PresetGetPresetByIDResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}
Delete a preset
client.realtimeKit.presets.delete(stringappId, stringpresetId, PresetDeleteParams { account_id } params, RequestOptionsoptions?): PresetDeleteResponse { data, success }
DELETE/accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}
Update a preset
client.realtimeKit.presets.update(stringappId, stringpresetId, PresetUpdateParams { account_id, config, name, 2 more } params, RequestOptionsoptions?): PresetUpdateResponse { data, success }
PATCH/accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}
ModelsExpand Collapse
PresetGetResponse { data, paging, success }
data: Array<Data>
id?: string

ID of the preset

formatuuid
created_at?: string

Timestamp this preset was created at

formatdate-time
name?: string

Name of the preset

updated_at?: string

Timestamp this preset was last updated

formatdate-time
paging: Paging { end_offset, start_offset, total_count }
end_offset: number
start_offset: number
total_count: number
minimum0
success: boolean
PresetCreateResponse { data, success }
data: Data { id, config, name, 2 more }

Data returned by the operation

id: string

ID of the preset

formatuuid
config: Config { max_screenshare_count, max_video_streams, media, view_type }
max_screenshare_count: number

Maximum number of screen shares that can be active at a given time

max_video_streams: MaxVideoStreams { desktop, mobile }

Maximum number of streams that are visible on a device

desktop: number

Maximum number of video streams visible on desktop devices

mobile: number

Maximum number of streams visible on mobile devices

media: Media { screenshare, video, audio }

Media configuration options. eg: Video quality

screenshare: Screenshare { frame_rate, quality }

Configuration options for participant screen shares

frame_rate: number

Frame rate of screen share

quality: "hd" | "vga" | "qvga"

Quality of screen share

One of the following:
"hd"
"vga"
"qvga"
video: Video { frame_rate, quality }

Configuration options for participant videos

frame_rate: number

Frame rate of participants' video

maximum30
quality: "hd" | "vga" | "qvga"

Video quality of participants

One of the following:
"hd"
"vga"
"qvga"
audio?: Audio { enable_high_bitrate, enable_stereo }

Control options for Audio quality.

enable_high_bitrate?: boolean

Enable High Quality Audio for your meetings

enable_stereo?: boolean

Enable Stereo for your meetings

view_type: "GROUP_CALL" | "WEBINAR" | "AUDIO_ROOM"

Type of the meeting

One of the following:
"GROUP_CALL"
"WEBINAR"
"AUDIO_ROOM"
name: string

Name of the preset

ui: UI { design_tokens, config_diff }
design_tokens: DesignTokens { border_radius, border_width, colors, 3 more }
border_radius: "rounded"
border_width: "thin"
colors: Colors { background, brand, danger, 5 more }
background: Background { 1000, 600, 700, 2 more }
"1000": string
"600": string
"700": string
"800": string
"900": string
brand: Brand { 300, 400, 500, 2 more }
"300": string
"400": string
"500": string
"600": string
"700": string
danger: string
success: string
text: string
text_on_brand: string
video_bg: string
warning: string
spacing_base: number
theme: "dark"
config_diff?: unknown
permissions?: Permissions { accept_waiting_requests, can_accept_production_requests, can_change_participant_permissions, 19 more }
accept_waiting_requests: boolean

Whether this participant can accept waiting requests

can_accept_production_requests: boolean
can_change_participant_permissions: boolean
can_edit_display_name: boolean
can_livestream: boolean
can_record: boolean
can_spotlight: boolean
chat: Chat { private, public }

Chat permissions

private: Private { can_receive, can_send, files, text }
can_receive: boolean
can_send: boolean
files: boolean
text: boolean
public: Public { can_send, files, text }
can_send: boolean

Can send messages in general

files: boolean

Can send file messages

text: boolean

Can send text messages

connected_meetings: ConnectedMeetings { can_alter_connected_meetings, can_switch_connected_meetings, can_switch_to_parent_meeting }
can_alter_connected_meetings: boolean
can_switch_connected_meetings: boolean
can_switch_to_parent_meeting: boolean
disable_participant_audio: boolean
disable_participant_screensharing: boolean
disable_participant_video: boolean
hidden_participant: boolean

Whether this participant is visible to others or not

kick_participant: boolean
media: Media { audio, screenshare, video }

Media permissions

audio: Audio { can_produce }

Audio permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce audio

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
screenshare: Screenshare { can_produce }

Screenshare permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce screen share video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
video: Video { can_produce }

Video permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
pin_participant: boolean
plugins: Plugins { can_close, can_edit_config, can_start, config }

Plugin permissions

can_close: boolean

Can close plugins that are already open

can_edit_config: boolean

Can edit plugin config

can_start: boolean

Can start plugins

config: string | UnionMember1 { access_control, handles_view_only }
One of the following:
string
UnionMember1 { access_control, handles_view_only }
access_control: "FULL_ACCESS" | "VIEW_ONLY"
One of the following:
"FULL_ACCESS"
"VIEW_ONLY"
handles_view_only: boolean
polls: Polls { can_create, can_view, can_vote }

Poll permissions

can_create: boolean

Can create polls

can_view: boolean

Can view polls

can_vote: boolean

Can vote on polls

recorder_type: "RECORDER" | "LIVESTREAMER" | "NONE"

Type of the recording peer

One of the following:
"RECORDER"
"LIVESTREAMER"
"NONE"
show_participant_list: boolean
waiting_room_type: "SKIP" | "ON_PRIVILEGED_USER_ENTRY" | "SKIP_ON_ACCEPT"

Waiting room type

One of the following:
"SKIP"
"ON_PRIVILEGED_USER_ENTRY"
"SKIP_ON_ACCEPT"
is_recorder?: boolean
success: boolean

Success status of the operation

PresetGetPresetByIDResponse { data, success }
data: Data { id, config, name, 2 more }

Data returned by the operation

id: string

ID of the preset

formatuuid
config: Config { max_screenshare_count, max_video_streams, media, view_type }
max_screenshare_count: number

Maximum number of screen shares that can be active at a given time

max_video_streams: MaxVideoStreams { desktop, mobile }

Maximum number of streams that are visible on a device

desktop: number

Maximum number of video streams visible on desktop devices

mobile: number

Maximum number of streams visible on mobile devices

media: Media { screenshare, video, audio }

Media configuration options. eg: Video quality

screenshare: Screenshare { frame_rate, quality }

Configuration options for participant screen shares

frame_rate: number

Frame rate of screen share

quality: "hd" | "vga" | "qvga"

Quality of screen share

One of the following:
"hd"
"vga"
"qvga"
video: Video { frame_rate, quality }

Configuration options for participant videos

frame_rate: number

Frame rate of participants' video

maximum30
quality: "hd" | "vga" | "qvga"

Video quality of participants

One of the following:
"hd"
"vga"
"qvga"
audio?: Audio { enable_high_bitrate, enable_stereo }

Control options for Audio quality.

enable_high_bitrate?: boolean

Enable High Quality Audio for your meetings

enable_stereo?: boolean

Enable Stereo for your meetings

view_type: "GROUP_CALL" | "WEBINAR" | "AUDIO_ROOM"

Type of the meeting

One of the following:
"GROUP_CALL"
"WEBINAR"
"AUDIO_ROOM"
name: string

Name of the preset

ui: UI { design_tokens, config_diff }
design_tokens: DesignTokens { border_radius, border_width, colors, 3 more }
border_radius: "rounded"
border_width: "thin"
colors: Colors { background, brand, danger, 5 more }
background: Background { 1000, 600, 700, 2 more }
"1000": string
"600": string
"700": string
"800": string
"900": string
brand: Brand { 300, 400, 500, 2 more }
"300": string
"400": string
"500": string
"600": string
"700": string
danger: string
success: string
text: string
text_on_brand: string
video_bg: string
warning: string
spacing_base: number
theme: "dark"
config_diff?: unknown
permissions?: Permissions { accept_waiting_requests, can_accept_production_requests, can_change_participant_permissions, 19 more }
accept_waiting_requests: boolean

Whether this participant can accept waiting requests

can_accept_production_requests: boolean
can_change_participant_permissions: boolean
can_edit_display_name: boolean
can_livestream: boolean
can_record: boolean
can_spotlight: boolean
chat: Chat { private, public }

Chat permissions

private: Private { can_receive, can_send, files, text }
can_receive: boolean
can_send: boolean
files: boolean
text: boolean
public: Public { can_send, files, text }
can_send: boolean

Can send messages in general

files: boolean

Can send file messages

text: boolean

Can send text messages

connected_meetings: ConnectedMeetings { can_alter_connected_meetings, can_switch_connected_meetings, can_switch_to_parent_meeting }
can_alter_connected_meetings: boolean
can_switch_connected_meetings: boolean
can_switch_to_parent_meeting: boolean
disable_participant_audio: boolean
disable_participant_screensharing: boolean
disable_participant_video: boolean
hidden_participant: boolean

Whether this participant is visible to others or not

kick_participant: boolean
media: Media { audio, screenshare, video }

Media permissions

audio: Audio { can_produce }

Audio permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce audio

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
screenshare: Screenshare { can_produce }

Screenshare permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce screen share video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
video: Video { can_produce }

Video permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
pin_participant: boolean
plugins: Plugins { can_close, can_edit_config, can_start, config }

Plugin permissions

can_close: boolean

Can close plugins that are already open

can_edit_config: boolean

Can edit plugin config

can_start: boolean

Can start plugins

config: string | UnionMember1 { access_control, handles_view_only }
One of the following:
string
UnionMember1 { access_control, handles_view_only }
access_control: "FULL_ACCESS" | "VIEW_ONLY"
One of the following:
"FULL_ACCESS"
"VIEW_ONLY"
handles_view_only: boolean
polls: Polls { can_create, can_view, can_vote }

Poll permissions

can_create: boolean

Can create polls

can_view: boolean

Can view polls

can_vote: boolean

Can vote on polls

recorder_type: "RECORDER" | "LIVESTREAMER" | "NONE"

Type of the recording peer

One of the following:
"RECORDER"
"LIVESTREAMER"
"NONE"
show_participant_list: boolean
waiting_room_type: "SKIP" | "ON_PRIVILEGED_USER_ENTRY" | "SKIP_ON_ACCEPT"

Waiting room type

One of the following:
"SKIP"
"ON_PRIVILEGED_USER_ENTRY"
"SKIP_ON_ACCEPT"
is_recorder?: boolean
success: boolean

Success status of the operation

PresetDeleteResponse { data, success }
data: Data { id, config, name, 2 more }

Data returned by the operation

id: string

ID of the preset

formatuuid
config: Config { max_screenshare_count, max_video_streams, media, view_type }
max_screenshare_count: number

Maximum number of screen shares that can be active at a given time

max_video_streams: MaxVideoStreams { desktop, mobile }

Maximum number of streams that are visible on a device

desktop: number

Maximum number of video streams visible on desktop devices

mobile: number

Maximum number of streams visible on mobile devices

media: Media { screenshare, video, audio }

Media configuration options. eg: Video quality

screenshare: Screenshare { frame_rate, quality }

Configuration options for participant screen shares

frame_rate: number

Frame rate of screen share

quality: "hd" | "vga" | "qvga"

Quality of screen share

One of the following:
"hd"
"vga"
"qvga"
video: Video { frame_rate, quality }

Configuration options for participant videos

frame_rate: number

Frame rate of participants' video

maximum30
quality: "hd" | "vga" | "qvga"

Video quality of participants

One of the following:
"hd"
"vga"
"qvga"
audio?: Audio { enable_high_bitrate, enable_stereo }

Control options for Audio quality.

enable_high_bitrate?: boolean

Enable High Quality Audio for your meetings

enable_stereo?: boolean

Enable Stereo for your meetings

view_type: "GROUP_CALL" | "WEBINAR" | "AUDIO_ROOM"

Type of the meeting

One of the following:
"GROUP_CALL"
"WEBINAR"
"AUDIO_ROOM"
name: string

Name of the preset

ui: UI { design_tokens, config_diff }
design_tokens: DesignTokens { border_radius, border_width, colors, 3 more }
border_radius: "rounded"
border_width: "thin"
colors: Colors { background, brand, danger, 5 more }
background: Background { 1000, 600, 700, 2 more }
"1000": string
"600": string
"700": string
"800": string
"900": string
brand: Brand { 300, 400, 500, 2 more }
"300": string
"400": string
"500": string
"600": string
"700": string
danger: string
success: string
text: string
text_on_brand: string
video_bg: string
warning: string
spacing_base: number
theme: "dark"
config_diff?: unknown
permissions?: Permissions { accept_waiting_requests, can_accept_production_requests, can_change_participant_permissions, 19 more }
accept_waiting_requests: boolean

Whether this participant can accept waiting requests

can_accept_production_requests: boolean
can_change_participant_permissions: boolean
can_edit_display_name: boolean
can_livestream: boolean
can_record: boolean
can_spotlight: boolean
chat: Chat { private, public }

Chat permissions

private: Private { can_receive, can_send, files, text }
can_receive: boolean
can_send: boolean
files: boolean
text: boolean
public: Public { can_send, files, text }
can_send: boolean

Can send messages in general

files: boolean

Can send file messages

text: boolean

Can send text messages

connected_meetings: ConnectedMeetings { can_alter_connected_meetings, can_switch_connected_meetings, can_switch_to_parent_meeting }
can_alter_connected_meetings: boolean
can_switch_connected_meetings: boolean
can_switch_to_parent_meeting: boolean
disable_participant_audio: boolean
disable_participant_screensharing: boolean
disable_participant_video: boolean
hidden_participant: boolean

Whether this participant is visible to others or not

kick_participant: boolean
media: Media { audio, screenshare, video }

Media permissions

audio: Audio { can_produce }

Audio permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce audio

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
screenshare: Screenshare { can_produce }

Screenshare permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce screen share video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
video: Video { can_produce }

Video permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
pin_participant: boolean
plugins: Plugins { can_close, can_edit_config, can_start, config }

Plugin permissions

can_close: boolean

Can close plugins that are already open

can_edit_config: boolean

Can edit plugin config

can_start: boolean

Can start plugins

config: string | UnionMember1 { access_control, handles_view_only }
One of the following:
string
UnionMember1 { access_control, handles_view_only }
access_control: "FULL_ACCESS" | "VIEW_ONLY"
One of the following:
"FULL_ACCESS"
"VIEW_ONLY"
handles_view_only: boolean
polls: Polls { can_create, can_view, can_vote }

Poll permissions

can_create: boolean

Can create polls

can_view: boolean

Can view polls

can_vote: boolean

Can vote on polls

recorder_type: "RECORDER" | "LIVESTREAMER" | "NONE"

Type of the recording peer

One of the following:
"RECORDER"
"LIVESTREAMER"
"NONE"
show_participant_list: boolean
waiting_room_type: "SKIP" | "ON_PRIVILEGED_USER_ENTRY" | "SKIP_ON_ACCEPT"

Waiting room type

One of the following:
"SKIP"
"ON_PRIVILEGED_USER_ENTRY"
"SKIP_ON_ACCEPT"
is_recorder?: boolean
success: boolean

Success status of the operation

PresetUpdateResponse { data, success }
data: Data { id, config, name, 2 more }

Data returned by the operation

id: string

ID of the preset

formatuuid
config: Config { max_screenshare_count, max_video_streams, media, view_type }
max_screenshare_count: number

Maximum number of screen shares that can be active at a given time

max_video_streams: MaxVideoStreams { desktop, mobile }

Maximum number of streams that are visible on a device

desktop: number

Maximum number of video streams visible on desktop devices

mobile: number

Maximum number of streams visible on mobile devices

media: Media { screenshare, video, audio }

Media configuration options. eg: Video quality

screenshare: Screenshare { frame_rate, quality }

Configuration options for participant screen shares

frame_rate: number

Frame rate of screen share

quality: "hd" | "vga" | "qvga"

Quality of screen share

One of the following:
"hd"
"vga"
"qvga"
video: Video { frame_rate, quality }

Configuration options for participant videos

frame_rate: number

Frame rate of participants' video

maximum30
quality: "hd" | "vga" | "qvga"

Video quality of participants

One of the following:
"hd"
"vga"
"qvga"
audio?: Audio { enable_high_bitrate, enable_stereo }

Control options for Audio quality.

enable_high_bitrate?: boolean

Enable High Quality Audio for your meetings

enable_stereo?: boolean

Enable Stereo for your meetings

view_type: "GROUP_CALL" | "WEBINAR" | "AUDIO_ROOM"

Type of the meeting

One of the following:
"GROUP_CALL"
"WEBINAR"
"AUDIO_ROOM"
name: string

Name of the preset

ui: UI { design_tokens, config_diff }
design_tokens: DesignTokens { border_radius, border_width, colors, 3 more }
border_radius: "rounded"
border_width: "thin"
colors: Colors { background, brand, danger, 5 more }
background: Background { 1000, 600, 700, 2 more }
"1000": string
"600": string
"700": string
"800": string
"900": string
brand: Brand { 300, 400, 500, 2 more }
"300": string
"400": string
"500": string
"600": string
"700": string
danger: string
success: string
text: string
text_on_brand: string
video_bg: string
warning: string
spacing_base: number
theme: "dark"
config_diff?: unknown
permissions?: Permissions { accept_waiting_requests, can_accept_production_requests, can_change_participant_permissions, 19 more }
accept_waiting_requests: boolean

Whether this participant can accept waiting requests

can_accept_production_requests: boolean
can_change_participant_permissions: boolean
can_edit_display_name: boolean
can_livestream: boolean
can_record: boolean
can_spotlight: boolean
chat: Chat { private, public }

Chat permissions

private: Private { can_receive, can_send, files, text }
can_receive: boolean
can_send: boolean
files: boolean
text: boolean
public: Public { can_send, files, text }
can_send: boolean

Can send messages in general

files: boolean

Can send file messages

text: boolean

Can send text messages

connected_meetings: ConnectedMeetings { can_alter_connected_meetings, can_switch_connected_meetings, can_switch_to_parent_meeting }
can_alter_connected_meetings: boolean
can_switch_connected_meetings: boolean
can_switch_to_parent_meeting: boolean
disable_participant_audio: boolean
disable_participant_screensharing: boolean
disable_participant_video: boolean
hidden_participant: boolean

Whether this participant is visible to others or not

kick_participant: boolean
media: Media { audio, screenshare, video }

Media permissions

audio: Audio { can_produce }

Audio permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce audio

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
screenshare: Screenshare { can_produce }

Screenshare permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce screen share video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
video: Video { can_produce }

Video permissions

can_produce: "ALLOWED" | "NOT_ALLOWED" | "CAN_REQUEST"

Can produce video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
pin_participant: boolean
plugins: Plugins { can_close, can_edit_config, can_start, config }

Plugin permissions

can_close: boolean

Can close plugins that are already open

can_edit_config: boolean

Can edit plugin config

can_start: boolean

Can start plugins

config: string | UnionMember1 { access_control, handles_view_only }
One of the following:
string
UnionMember1 { access_control, handles_view_only }
access_control: "FULL_ACCESS" | "VIEW_ONLY"
One of the following:
"FULL_ACCESS"
"VIEW_ONLY"
handles_view_only: boolean
polls: Polls { can_create, can_view, can_vote }

Poll permissions

can_create: boolean

Can create polls

can_view: boolean

Can view polls

can_vote: boolean

Can vote on polls

recorder_type: "RECORDER" | "LIVESTREAMER" | "NONE"

Type of the recording peer

One of the following:
"RECORDER"
"LIVESTREAMER"
"NONE"
show_participant_list: boolean
waiting_room_type: "SKIP" | "ON_PRIVILEGED_USER_ENTRY" | "SKIP_ON_ACCEPT"

Waiting room type

One of the following:
"SKIP"
"ON_PRIVILEGED_USER_ENTRY"
"SKIP_ON_ACCEPT"
is_recorder?: boolean
success: boolean

Success status of the operation

Realtime KitSessions

Fetch all sessions of an App
client.realtimeKit.sessions.getSessions(stringappId, SessionGetSessionsParams { account_id, associated_id, end_time, 8 more } params, RequestOptionsoptions?): SessionGetSessionsResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions
Fetch details of a session
client.realtimeKit.sessions.getSessionDetails(stringappId, stringsessionId, SessionGetSessionDetailsParams { account_id, include_breakout_rooms } params, RequestOptionsoptions?): SessionGetSessionDetailsResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}
Fetch participants list of a session
client.realtimeKit.sessions.getSessionParticipants(stringappId, stringsessionId, SessionGetSessionParticipantsParams { account_id, include_peer_events, page_no, 5 more } params, RequestOptionsoptions?): SessionGetSessionParticipantsResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/participants
Fetch details of a participant
client.realtimeKit.sessions.getSessionParticipantDetails(stringappId, stringsessionId, stringparticipantId, SessionGetSessionParticipantDetailsParams { account_id, filters, include_peer_events } params, RequestOptionsoptions?): SessionGetSessionParticipantDetailsResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/participants/{participant_id}
Fetch all chat messages of a session
client.realtimeKit.sessions.getSessionChat(stringappId, stringsessionId, SessionGetSessionChatParams { account_id } params, RequestOptionsoptions?): SessionGetSessionChatResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/chat
Fetch the complete transcript for a session
client.realtimeKit.sessions.getSessionTranscripts(stringappId, stringsessionId, SessionGetSessionTranscriptsParams { account_id } params, RequestOptionsoptions?): SessionGetSessionTranscriptsResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/transcript
Fetch summary of transcripts for a session
client.realtimeKit.sessions.getSessionSummary(stringappId, stringsessionId, SessionGetSessionSummaryParams { account_id } params, RequestOptionsoptions?): SessionGetSessionSummaryResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/summary
Generate summary of Transcripts for the session
client.realtimeKit.sessions.generateSummaryOfTranscripts(stringappId, stringsessionId, SessionGenerateSummaryOfTranscriptsParams { account_id } params, RequestOptionsoptions?): void
POST/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/summary
Fetch details of peer
client.realtimeKit.sessions.getParticipantDataFromPeerId(stringappId, stringpeerId, SessionGetParticipantDataFromPeerIDParams { account_id, filters } params, RequestOptionsoptions?): SessionGetParticipantDataFromPeerIDResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/peer-report/{peer_id}
ModelsExpand Collapse
SessionGetSessionsResponse { data, success }
data?: Data { sessions }
sessions?: Array<Session>
id: string

ID of the session

associated_id: string

ID of the meeting this session is associated with. In the case of V2 meetings, it is always a UUID. In V1 meetings, it is a room name of the form abcdef-ghijkl

created_at: string

timestamp when session created

live_participants: number

number of participants currently in the session

max_concurrent_participants: number

number of maximum participants that were in the session

meeting_display_name: string

Title of the meeting this session belongs to

minutes_consumed: number

number of minutes consumed since the session started

organization_id: string

App id that hosted this session

started_at: string

timestamp when session started

status: "LIVE" | "ENDED"

current status of session

One of the following:
"LIVE"
"ENDED"
type: "meeting" | "livestream" | "participant"

type of session

One of the following:
"meeting"
"livestream"
"participant"
updated_at: string

timestamp when session was last updated

breakout_rooms?: Array<unknown>
ended_at?: string

timestamp when session ended

meta?: unknown

Any meta data about session.

success?: boolean
SessionGetSessionDetailsResponse { data, success }
data?: Data { session }
session?: Session { id, associated_id, created_at, 12 more }
id: string

ID of the session

associated_id: string

ID of the meeting this session is associated with. In the case of V2 meetings, it is always a UUID. In V1 meetings, it is a room name of the form abcdef-ghijkl

created_at: string

timestamp when session created

live_participants: number

number of participants currently in the session

max_concurrent_participants: number

number of maximum participants that were in the session

meeting_display_name: string

Title of the meeting this session belongs to

minutes_consumed: number

number of minutes consumed since the session started

organization_id: string

App id that hosted this session

started_at: string

timestamp when session started

status: "LIVE" | "ENDED"

current status of session

One of the following:
"LIVE"
"ENDED"
type: "meeting" | "livestream" | "participant"

type of session

One of the following:
"meeting"
"livestream"
"participant"
updated_at: string

timestamp when session was last updated

breakout_rooms?: Array<unknown>
ended_at?: string

timestamp when session ended

meta?: unknown

Any meta data about session.

success?: boolean
SessionGetSessionParticipantsResponse { data, success }
data?: Data { participants }
participants?: Array<Participant>
id?: string

Participant ID. This maps to the corresponding peerId.

created_at?: string

timestamp when this participant was created.

custom_participant_id?: string

ID passed by client to create this participant.

display_name?: string

Display name of participant when joining the session.

duration?: number

number of minutes for which the participant was in the session.

joined_at?: string

timestamp at which participant joined the session.

left_at?: string

timestamp at which participant left the session.

preset_name?: string

Name of the preset associated with the participant.

updated_at?: string

timestamp when this participant's data was last updated.

user_id?: string

User id for this participant.

success?: boolean
SessionGetSessionParticipantDetailsResponse { data, success }
data?: Data { participant }
participant?: Participant { id, created_at, custom_participant_id, 9 more }
id?: string

Participant ID. This maps to the corresponding peerId.

created_at?: string

timestamp when this participant was created.

custom_participant_id?: string

ID passed by client to create this participant.

display_name?: string

Display name of participant when joining the session.

duration?: number

number of minutes for which the participant was in the session.

joined_at?: string

timestamp at which participant joined the session.

left_at?: string

timestamp at which participant left the session.

peer_stats?: PeerStats { config, device_info, events, 3 more }
config?: string
device_info?: DeviceInfo { browser, browser_version, cpus, 9 more }
browser?: string
browser_version?: string
cpus?: number
engine?: string
is_mobile?: boolean
memory?: number
os?: string
os_version?: string
sdk_name?: string
sdk_version?: string
user_agent?: string
webgl_support?: string
events?: Array<Event>
timestamp?: string
type?: string
ip_information?: IPInformation { city, country, ip_location, 5 more }
city?: string
country?: string
ip_location?: string
ipv4?: string
org?: string
portal?: string
region?: string
timezone?: string
precall_network_information?: PrecallNetworkInformation { backend_rtt, effective_networktype, fractional_loss, 6 more }
backend_rtt?: number
effective_networktype?: string
fractional_loss?: number
jitter?: number
reflexive_connectivity?: boolean
relay_connectivity?: boolean
rtt?: number
throughtput?: number
turn_connectivity?: boolean
status?: string
preset_name?: string

Name of the preset associated with the participant.

quality_stats?: Array<QualityStat>
audio_bandwidth?: number
audio_packet_loss?: number
audio_stats?: Array<AudioStat>
concealment_events?: number
jitter?: number
packets_lost?: number
quality?: number
timestamp?: string
average_quality?: number
end?: string
peer_id?: string
start?: string
video_bandwidth?: number
video_packet_loss?: number
video_stats?: Array<VideoStat>
frame_height?: number
frame_width?: number
frames_dropped?: number
frames_per_second?: number
jitter?: number
packets_lost?: number
quality?: number
timestamp?: string
updated_at?: string

timestamp when this participant's data was last updated.

user_id?: string

User id for this participant.

success?: boolean
SessionGetSessionChatResponse { data, success }
data?: Data { chat_download_url, chat_download_url_expiry }
chat_download_url: string

URL where the chat logs can be downloaded

chat_download_url_expiry: string

Time when the download URL will expire

success?: boolean
SessionGetSessionTranscriptsResponse { data, success }
data?: Data { sessionId, transcript_download_url, transcript_download_url_expiry }
sessionId: string
transcript_download_url: string

URL where the transcript can be downloaded

transcript_download_url_expiry: string

Time when the download URL will expire

success?: boolean
SessionGetSessionSummaryResponse { data, success }
data?: Data { sessionId, summaryDownloadUrl, summaryDownloadUrlExpiry }
sessionId: string
summaryDownloadUrl: string

URL where the summary of transcripts can be downloaded

summaryDownloadUrlExpiry: string

Time of Expiry before when you need to download the csv file.

success?: boolean
SessionGetParticipantDataFromPeerIDResponse { data, success }
data?: Data { participant }
participant?: Participant { id, created_at, custom_participant_id, 10 more }
id?: string
created_at?: string
custom_participant_id?: string
display_name?: string
duration?: number
joined_at?: string
left_at?: string
peer_report?: PeerReport { metadata, quality }
metadata?: Metadata { audio_devices_updates, browser_metadata, candidate_pairs, 10 more }
audio_devices_updates?: Array<unknown>
browser_metadata?: BrowserMetadata { browser, browser_version, engine, 2 more }
browser?: string
browser_version?: string
engine?: string
user_agent?: string
webgl_support?: string
candidate_pairs?: CandidatePairs { consuming_transport, producing_transport }
consuming_transport?: Array<unknown>
producing_transport?: Array<ProducingTransport>
available_outgoing_bitrate?: number
bytes_discarded_on_send?: number
bytes_received?: number
bytes_sent?: number
current_round_trip_time?: number
last_packet_received_timestamp?: number
last_packet_sent_timestamp?: number
local_candidate_address?: string
local_candidate_id?: string
local_candidate_network_type?: string
local_candidate_port?: number
local_candidate_protocol?: string
local_candidate_type?: string
nominated?: boolean
packets_discarded_on_send?: number
packets_received?: number
packets_sent?: number
remote_candidate_address?: string
remote_candidate_id?: string
remote_candidate_port?: number
remote_candidate_protocol?: string
remote_candidate_type?: string
total_round_trip_time?: number
device_info?: DeviceInfo { cpus, is_mobile, os, os_version }
cpus?: number
is_mobile?: boolean
os?: string
os_version?: string
events?: Array<Event>
name?: string
timestamp?: string
ip_information?: IPInformation { asn, city, country, 3 more }
asn?: ASN { asn }
asn?: string
city?: string
country?: string
ipv4?: string
region?: string
timezone?: string
pc_metadata?: Array<PcMetadata>
effective_network_type?: string
reflexive_connectivity?: boolean
relay_connectivity?: boolean
timestamp?: string
turn_connectivity?: boolean
room_view_type?: string
sdk_name?: string
sdk_version?: string
selected_device_updates?: Array<unknown>
speaker_devices_updates?: Array<unknown>
video_devices_updates?: Array<unknown>
quality?: Quality { audio_consumer, audio_consumer_cumulative, audio_producer, 13 more }
audio_consumer?: Array<unknown>
audio_consumer_cumulative?: unknown
audio_producer?: Array<AudioProducer>
bytes_sent?: number
jitter?: number
mid?: string
mos_quality?: number
packets_lost?: number
packets_sent?: number
producer_id?: string
rtt?: number
ssrc?: number
timestamp?: string
audio_producer_cumulative?: AudioProducerCumulative { packet_loss, quality_mos, rtt }
packet_loss?: PacketLoss { 10_or_greater_event_fraction, 25_or_greater_event_fraction, 5_or_greater_event_fraction, 2 more }
"10_or_greater_event_fraction"?: number
"25_or_greater_event_fraction"?: number
"5_or_greater_event_fraction"?: number
"50_or_greater_event_fraction"?: number
avg?: number
quality_mos?: QualityMos { avg, p50, p75, p90 }
avg?: number
p50?: number
p75?: number
p90?: number
rtt?: RTT { 100ms_or_greater_event_fraction, 250ms_or_greater_event_fraction, 500ms_or_greater_event_fraction, avg }
"100ms_or_greater_event_fraction"?: number
"250ms_or_greater_event_fraction"?: number
"500ms_or_greater_event_fraction"?: number
avg?: number
screenshare_audio_consumer?: Array<unknown>
screenshare_audio_consumer_cumulative?: unknown
screenshare_audio_producer?: Array<unknown>
screenshare_audio_producer_cumulative?: unknown
screenshare_video_consumer?: Array<unknown>
screenshare_video_consumer_cumulative?: unknown
screenshare_video_producer?: Array<unknown>
screenshare_video_producer_cumulative?: unknown
video_consumer?: Array<unknown>
video_consumer_cumulative?: unknown
video_producer?: Array<unknown>
video_producer_cumulative?: unknown
peer_stats?: PeerStats { device_info, events, ip_information, precall_network_information }
device_info?: DeviceInfo { browser, browser_version, cpus, 8 more }
browser?: string
browser_version?: string
cpus?: number
engine?: string
is_mobile?: boolean
os?: string
os_version?: string
sdk_name?: string
sdk_version?: string
user_agent?: string
webgl_support?: string
events?: Array<Event>
metadata?: Metadata { connection_info }
connection_info?: ConnectionInfo { backend_r_t_t, connectivity, effective_network_type, 7 more }
backend_r_t_t?: number
connectivity?: Connectivity { host, reflexive, relay }
host?: boolean
reflexive?: boolean
relay?: boolean
effective_network_type?: string
fractional_loss?: number
ip_details?: IPDetails { asn, city, country, 5 more }
asn?: ASN { asn }
asn?: string
city?: string
country?: string
ip?: string
loc?: string
postal?: string
region?: string
timezone?: string
jitter?: number
location?: Location { coords }
coords?: Coords { latitude, longitude }
latitude?: number
longitude?: number
r_t_t?: number
throughput?: number
turn_connectivity?: boolean
timestamp?: string
type?: string
ip_information?: IPInformation { asn, city, country, 5 more }
asn?: ASN { asn }
asn?: string
city?: string
country?: string
ip_location?: string
ipv4?: string
org?: string
region?: string
timezone?: string
precall_network_information?: PrecallNetworkInformation { backend_rtt, effective_networktype, fractional_loss, 6 more }
backend_rtt?: number
effective_networktype?: string
fractional_loss?: number
jitter?: number
reflexive_connectivity?: boolean
relay_connectivity?: boolean
rtt?: number
throughput?: number
turn_connectivity?: boolean
quality_stats?: QualityStats { audio_bandwidth, audio_stats, average_quality, 13 more }
audio_bandwidth?: number
audio_stats?: Array<unknown>
average_quality?: number
end?: string | null
first_audio_packet_received?: string
first_video_packet_received?: string
last_audio_packet_received?: string
last_video_packet_received?: string
peer_ids?: Array<string>
start?: string | null
total_audio_packets?: number
total_audio_packets_lost?: number
total_video_packets?: number
total_video_packets_lost?: number
video_bandwidth?: number
video_stats?: Array<unknown>
role?: string
updated_at?: string
user_id?: string
success?: boolean

Realtime KitRecordings

Fetch all recordings for an App
client.realtimeKit.recordings.getRecordings(stringappId, RecordingGetRecordingsParams { account_id, end_time, expired, 8 more } params, RequestOptionsoptions?): RecordingGetRecordingsResponse { data, paging, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/recordings
Start recording a meeting
client.realtimeKit.recordings.startRecordings(stringappId, RecordingStartRecordingsParams { account_id, allow_multiple_recordings, audio_config, 9 more } params, RequestOptionsoptions?): RecordingStartRecordingsResponse { success, data }
POST/accounts/{account_id}/realtime/kit/{app_id}/recordings
Fetch active recording
client.realtimeKit.recordings.getActiveRecordings(stringappId, stringmeetingId, RecordingGetActiveRecordingsParams { account_id } params, RequestOptionsoptions?): RecordingGetActiveRecordingsResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/recordings/active-recording/{meeting_id}
Fetch details of a recording
client.realtimeKit.recordings.getOneRecording(stringappId, stringrecordingId, RecordingGetOneRecordingParams { account_id } params, RequestOptionsoptions?): RecordingGetOneRecordingResponse { success, data }
GET/accounts/{account_id}/realtime/kit/{app_id}/recordings/{recording_id}
Pause/Resume/Stop recording
client.realtimeKit.recordings.pauseResumeStopRecording(stringappId, stringrecordingId, RecordingPauseResumeStopRecordingParams { account_id, action } params, RequestOptionsoptions?): RecordingPauseResumeStopRecordingResponse { success, data }
PUT/accounts/{account_id}/realtime/kit/{app_id}/recordings/{recording_id}
Start recording audio and video tracks
client.realtimeKit.recordings.startTrackRecording(stringappId, RecordingStartTrackRecordingParams { account_id, layers, meeting_id, max_seconds } params, RequestOptionsoptions?): void
POST/accounts/{account_id}/realtime/kit/{app_id}/recordings/track
ModelsExpand Collapse
RecordingGetRecordingsResponse { data, paging, success }
data: Array<Data>
id: string

ID of the recording

formatuuid
audio_download_url: string | null

If the audio_config is passed, the URL for downloading the audio recording is returned.

formaturi
download_url: string | null

URL where the recording can be downloaded.

formaturi
download_url_expiry: string | null

Timestamp when the download URL expires.

formatdate-time
file_size: number | null

File size of the recording, in bytes.

invoked_time: string

Timestamp when this recording was invoked.

formatdate-time
output_file_name: string

File name of the recording.

session_id: string | null

ID of the meeting session this recording is for.

formatuuid
started_time: string | null

Timestamp when this recording actually started after being invoked. Usually a few seconds after invoked_time.

formatdate-time
status: "INVOKED" | "RECORDING" | "UPLOADING" | 3 more

Current status of the recording.

One of the following:
"INVOKED"
"RECORDING"
"UPLOADING"
"UPLOADED"
"ERRORED"
"PAUSED"
stopped_time: string | null

Timestamp when this recording was stopped. Optional; is present only when the recording has actually been stopped.

formatdate-time
meeting?: Meeting { id, created_at, updated_at, 7 more }
id: string

ID of the meeting.

formatuuid
created_at: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
updated_at: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
live_stream_on_start?: boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat?: boolean

Specifies if Chat within a meeting should persist for a week.

record_on_start?: boolean

Specifies if the meeting should start getting recorded as soon as someone joins the meeting.

session_keep_alive_time_in_secs?: number

Time in seconds, for which a session remains active, after the last participant has left the meeting.

maximum600
minimum60
status?: "ACTIVE" | "INACTIVE"

Whether the meeting is ACTIVE or INACTIVE. Users will not be able to join an INACTIVE meeting.

One of the following:
"ACTIVE"
"INACTIVE"
summarize_on_end?: boolean

Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.

title?: string

Title of the meeting.

recording_duration?: number

Total recording time in seconds.

storage_config?: StorageConfig | null
type: "aws" | "azure" | "digitalocean" | 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key?: string

Access key of the storage medium. Access key is not required for the gcs storage media type.

Note that this field is not readable by clients, only writeable.

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

One of the following:
"KEY"
"PASSWORD"
bucket?: string

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

SSH destination server password for SFTP type storage medium when auth_method is "PASSWORD". If auth_method is "KEY", this specifies the password for the ssh private key.

path?: string

Path relative to the bucket root at which the recording will be placed.

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"

region?: string

Region of the storage medium.

secret?: string

Secret key of the storage medium. Similar to access_key, it is only writeable by clients, not readable.

username?: string

SSH destination server username for SFTP type storage medium

paging: Paging { end_offset, start_offset, total_count }
end_offset: number
start_offset: number
total_count: number
minimum0
success: boolean
RecordingStartRecordingsResponse { success, data }
success: boolean

Success status of the operation

data?: Data { id, audio_download_url, download_url, 12 more }

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string | null

If the audio_config is passed, the URL for downloading the audio recording is returned.

formaturi
download_url: string | null

URL where the recording can be downloaded.

formaturi
download_url_expiry: string | null

Timestamp when the download URL expires.

formatdate-time
file_size: number | null

File size of the recording, in bytes.

invoked_time: string

Timestamp when this recording was invoked.

formatdate-time
output_file_name: string

File name of the recording.

session_id: string | null

ID of the meeting session this recording is for.

formatuuid
started_time: string | null

Timestamp when this recording actually started after being invoked. Usually a few seconds after invoked_time.

formatdate-time
status: "INVOKED" | "RECORDING" | "UPLOADING" | 3 more

Current status of the recording.

One of the following:
"INVOKED"
"RECORDING"
"UPLOADING"
"UPLOADED"
"ERRORED"
"PAUSED"
stopped_time: string | null

Timestamp when this recording was stopped. Optional; is present only when the recording has actually been stopped.

formatdate-time
recording_duration?: number

Total recording time in seconds.

start_reason?: StartReason { caller, reason }
caller?: Caller { name, type, user_Id }
name?: string

Name of the user who started the recording.

type?: "ORGANIZATION" | "USER"

The type can be an App or a user. If the type is user, then only the user_Id and name are returned.

One of the following:
"ORGANIZATION"
"USER"
user_Id?: string

The user ID of the person who started the recording.

formatuuid
reason?: "API_CALL" | "RECORD_ON_START"

Specifies if the recording was started using the "Start a Recording"API or using the parameter RECORD_ON_START in the "Create a meeting" API.

If the recording is initiated using the "RECORD_ON_START" parameter, the user details will not be populated.

One of the following:
"API_CALL"
"RECORD_ON_START"
stop_reason?: StopReason { caller, reason }
caller?: Caller { name, type, user_Id }
name?: string

Name of the user who stopped the recording.

type?: "ORGANIZATION" | "USER"

The type can be an App or a user. If the type is user, then only the user_Id and name are returned.

One of the following:
"ORGANIZATION"
"USER"
user_Id?: string

The user ID of the person who stopped the recording.

formatuuid
reason?: "API_CALL" | "INTERNAL_ERROR" | "ALL_PEERS_LEFT"

Specifies the reason why the recording stopped.

One of the following:
"API_CALL"
"INTERNAL_ERROR"
"ALL_PEERS_LEFT"
storage_config?: StorageConfig | null
type: "aws" | "azure" | "digitalocean" | 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key?: string

Access key of the storage medium. Access key is not required for the gcs storage media type.

Note that this field is not readable by clients, only writeable.

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

One of the following:
"KEY"
"PASSWORD"
bucket?: string

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

SSH destination server password for SFTP type storage medium when auth_method is "PASSWORD". If auth_method is "KEY", this specifies the password for the ssh private key.

path?: string

Path relative to the bucket root at which the recording will be placed.

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"

region?: string

Region of the storage medium.

secret?: string

Secret key of the storage medium. Similar to access_key, it is only writeable by clients, not readable.

username?: string

SSH destination server username for SFTP type storage medium

RecordingGetActiveRecordingsResponse { data, success }
data: Data { id, audio_download_url, download_url, 9 more }

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string | null

If the audio_config is passed, the URL for downloading the audio recording is returned.

formaturi
download_url: string | null

URL where the recording can be downloaded.

formaturi
download_url_expiry: string | null

Timestamp when the download URL expires.

formatdate-time
file_size: number | null

File size of the recording, in bytes.

invoked_time: string

Timestamp when this recording was invoked.

formatdate-time
output_file_name: string

File name of the recording.

session_id: string | null

ID of the meeting session this recording is for.

formatuuid
started_time: string | null

Timestamp when this recording actually started after being invoked. Usually a few seconds after invoked_time.

formatdate-time
status: "INVOKED" | "RECORDING" | "UPLOADING" | 3 more

Current status of the recording.

One of the following:
"INVOKED"
"RECORDING"
"UPLOADING"
"UPLOADED"
"ERRORED"
"PAUSED"
stopped_time: string | null

Timestamp when this recording was stopped. Optional; is present only when the recording has actually been stopped.

formatdate-time
recording_duration?: number

Total recording time in seconds.

success: boolean

Success status of the operation

RecordingGetOneRecordingResponse { success, data }
success: boolean

Success status of the operation

data?: Data { id, audio_download_url, download_url, 12 more }

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string | null

If the audio_config is passed, the URL for downloading the audio recording is returned.

formaturi
download_url: string | null

URL where the recording can be downloaded.

formaturi
download_url_expiry: string | null

Timestamp when the download URL expires.

formatdate-time
file_size: number | null

File size of the recording, in bytes.

invoked_time: string

Timestamp when this recording was invoked.

formatdate-time
output_file_name: string

File name of the recording.

session_id: string | null

ID of the meeting session this recording is for.

formatuuid
started_time: string | null

Timestamp when this recording actually started after being invoked. Usually a few seconds after invoked_time.

formatdate-time
status: "INVOKED" | "RECORDING" | "UPLOADING" | 3 more

Current status of the recording.

One of the following:
"INVOKED"
"RECORDING"
"UPLOADING"
"UPLOADED"
"ERRORED"
"PAUSED"
stopped_time: string | null

Timestamp when this recording was stopped. Optional; is present only when the recording has actually been stopped.

formatdate-time
recording_duration?: number

Total recording time in seconds.

start_reason?: StartReason { caller, reason }
caller?: Caller { name, type, user_Id }
name?: string

Name of the user who started the recording.

type?: "ORGANIZATION" | "USER"

The type can be an App or a user. If the type is user, then only the user_Id and name are returned.

One of the following:
"ORGANIZATION"
"USER"
user_Id?: string

The user ID of the person who started the recording.

formatuuid
reason?: "API_CALL" | "RECORD_ON_START"

Specifies if the recording was started using the "Start a Recording"API or using the parameter RECORD_ON_START in the "Create a meeting" API.

If the recording is initiated using the "RECORD_ON_START" parameter, the user details will not be populated.

One of the following:
"API_CALL"
"RECORD_ON_START"
stop_reason?: StopReason { caller, reason }
caller?: Caller { name, type, user_Id }
name?: string

Name of the user who stopped the recording.

type?: "ORGANIZATION" | "USER"

The type can be an App or a user. If the type is user, then only the user_Id and name are returned.

One of the following:
"ORGANIZATION"
"USER"
user_Id?: string

The user ID of the person who stopped the recording.

formatuuid
reason?: "API_CALL" | "INTERNAL_ERROR" | "ALL_PEERS_LEFT"

Specifies the reason why the recording stopped.

One of the following:
"API_CALL"
"INTERNAL_ERROR"
"ALL_PEERS_LEFT"
storage_config?: StorageConfig | null
type: "aws" | "azure" | "digitalocean" | 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key?: string

Access key of the storage medium. Access key is not required for the gcs storage media type.

Note that this field is not readable by clients, only writeable.

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

One of the following:
"KEY"
"PASSWORD"
bucket?: string

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

SSH destination server password for SFTP type storage medium when auth_method is "PASSWORD". If auth_method is "KEY", this specifies the password for the ssh private key.

path?: string

Path relative to the bucket root at which the recording will be placed.

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"

region?: string

Region of the storage medium.

secret?: string

Secret key of the storage medium. Similar to access_key, it is only writeable by clients, not readable.

username?: string

SSH destination server username for SFTP type storage medium

RecordingPauseResumeStopRecordingResponse { success, data }
success: boolean

Success status of the operation

data?: Data { id, audio_download_url, download_url, 12 more }

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string | null

If the audio_config is passed, the URL for downloading the audio recording is returned.

formaturi
download_url: string | null

URL where the recording can be downloaded.

formaturi
download_url_expiry: string | null

Timestamp when the download URL expires.

formatdate-time
file_size: number | null

File size of the recording, in bytes.

invoked_time: string

Timestamp when this recording was invoked.

formatdate-time
output_file_name: string

File name of the recording.

session_id: string | null

ID of the meeting session this recording is for.

formatuuid
started_time: string | null

Timestamp when this recording actually started after being invoked. Usually a few seconds after invoked_time.

formatdate-time
status: "INVOKED" | "RECORDING" | "UPLOADING" | 3 more

Current status of the recording.

One of the following:
"INVOKED"
"RECORDING"
"UPLOADING"
"UPLOADED"
"ERRORED"
"PAUSED"
stopped_time: string | null

Timestamp when this recording was stopped. Optional; is present only when the recording has actually been stopped.

formatdate-time
recording_duration?: number

Total recording time in seconds.

start_reason?: StartReason { caller, reason }
caller?: Caller { name, type, user_Id }
name?: string

Name of the user who started the recording.

type?: "ORGANIZATION" | "USER"

The type can be an App or a user. If the type is user, then only the user_Id and name are returned.

One of the following:
"ORGANIZATION"
"USER"
user_Id?: string

The user ID of the person who started the recording.

formatuuid
reason?: "API_CALL" | "RECORD_ON_START"

Specifies if the recording was started using the "Start a Recording"API or using the parameter RECORD_ON_START in the "Create a meeting" API.

If the recording is initiated using the "RECORD_ON_START" parameter, the user details will not be populated.

One of the following:
"API_CALL"
"RECORD_ON_START"
stop_reason?: StopReason { caller, reason }
caller?: Caller { name, type, user_Id }
name?: string

Name of the user who stopped the recording.

type?: "ORGANIZATION" | "USER"

The type can be an App or a user. If the type is user, then only the user_Id and name are returned.

One of the following:
"ORGANIZATION"
"USER"
user_Id?: string

The user ID of the person who stopped the recording.

formatuuid
reason?: "API_CALL" | "INTERNAL_ERROR" | "ALL_PEERS_LEFT"

Specifies the reason why the recording stopped.

One of the following:
"API_CALL"
"INTERNAL_ERROR"
"ALL_PEERS_LEFT"
storage_config?: StorageConfig | null
type: "aws" | "azure" | "digitalocean" | 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key?: string

Access key of the storage medium. Access key is not required for the gcs storage media type.

Note that this field is not readable by clients, only writeable.

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

One of the following:
"KEY"
"PASSWORD"
bucket?: string

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

SSH destination server password for SFTP type storage medium when auth_method is "PASSWORD". If auth_method is "KEY", this specifies the password for the ssh private key.

path?: string

Path relative to the bucket root at which the recording will be placed.

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"

region?: string

Region of the storage medium.

secret?: string

Secret key of the storage medium. Similar to access_key, it is only writeable by clients, not readable.

username?: string

SSH destination server username for SFTP type storage medium

Realtime KitWebhooks

Fetch all webhooks details
client.realtimeKit.webhooks.getWebhooks(stringappId, WebhookGetWebhooksParams { account_id } params, RequestOptionsoptions?): WebhookGetWebhooksResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/webhooks
Add a webhook
client.realtimeKit.webhooks.createWebhook(stringappId, WebhookCreateWebhookParams { account_id, events, name, 2 more } params, RequestOptionsoptions?): WebhookCreateWebhookResponse { data, success }
POST/accounts/{account_id}/realtime/kit/{app_id}/webhooks
Fetch details of a webhook
client.realtimeKit.webhooks.getWebhookById(stringappId, stringwebhookId, WebhookGetWebhookByIDParams { account_id } params, RequestOptionsoptions?): WebhookGetWebhookByIDResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
Replace a webhook
client.realtimeKit.webhooks.replaceWebhook(stringappId, stringwebhookId, WebhookReplaceWebhookParams { account_id, events, name, 2 more } params, RequestOptionsoptions?): WebhookReplaceWebhookResponse { data, success }
PUT/accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
Edit a webhook
client.realtimeKit.webhooks.editWebhook(stringappId, stringwebhookId, WebhookEditWebhookParams { account_id, enabled, events, 2 more } params, RequestOptionsoptions?): WebhookEditWebhookResponse { data, success }
PATCH/accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
Delete a webhook
client.realtimeKit.webhooks.deleteWebhook(stringappId, stringwebhookId, WebhookDeleteWebhookParams { account_id } params, RequestOptionsoptions?): WebhookDeleteWebhookResponse { data, success }
DELETE/accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
ModelsExpand Collapse
WebhookGetWebhooksResponse { data, success }
data: Array<Data>
id: string

ID of the webhook

formatuuid
created_at: string

Timestamp when this webhook was created

formatdate-time
enabled: boolean

Set to true if the webhook is active

events: Array<"meeting.started" | "meeting.ended" | "meeting.participantJoined" | 6 more>

Events this webhook will send updates for

One of the following:
"meeting.started"
"meeting.ended"
"meeting.participantJoined"
"meeting.participantLeft"
"meeting.chatSynced"
"recording.statusUpdate"
"livestreaming.statusUpdate"
"meeting.transcript"
"meeting.summary"
name: string

Name of the webhook

updated_at: string

Timestamp when this webhook was updated

formatdate-time
url: string

URL the webhook will send events to

formaturi
success: boolean
WebhookCreateWebhookResponse { data, success }
data: Data { id, created_at, enabled, 4 more }
id: string

ID of the webhook

formatuuid
created_at: string

Timestamp when this webhook was created

formatdate-time
enabled: boolean

Set to true if the webhook is active

events: Array<"meeting.started" | "meeting.ended" | "meeting.participantJoined" | 6 more>

Events this webhook will send updates for

One of the following:
"meeting.started"
"meeting.ended"
"meeting.participantJoined"
"meeting.participantLeft"
"meeting.chatSynced"
"recording.statusUpdate"
"livestreaming.statusUpdate"
"meeting.transcript"
"meeting.summary"
name: string

Name of the webhook

updated_at: string

Timestamp when this webhook was updated

formatdate-time
url: string

URL the webhook will send events to

formaturi
success: boolean
WebhookGetWebhookByIDResponse { data, success }
data: Data { id, created_at, enabled, 4 more }
id: string

ID of the webhook

formatuuid
created_at: string

Timestamp when this webhook was created

formatdate-time
enabled: boolean

Set to true if the webhook is active

events: Array<"meeting.started" | "meeting.ended" | "meeting.participantJoined" | 6 more>

Events this webhook will send updates for

One of the following:
"meeting.started"
"meeting.ended"
"meeting.participantJoined"
"meeting.participantLeft"
"meeting.chatSynced"
"recording.statusUpdate"
"livestreaming.statusUpdate"
"meeting.transcript"
"meeting.summary"
name: string

Name of the webhook

updated_at: string

Timestamp when this webhook was updated

formatdate-time
url: string

URL the webhook will send events to

formaturi
success: boolean
WebhookReplaceWebhookResponse { data, success }
data: Data { id, created_at, enabled, 4 more }
id: string

ID of the webhook

formatuuid
created_at: string

Timestamp when this webhook was created

formatdate-time
enabled: boolean

Set to true if the webhook is active

events: Array<"meeting.started" | "meeting.ended" | "meeting.participantJoined" | 6 more>

Events this webhook will send updates for

One of the following:
"meeting.started"
"meeting.ended"
"meeting.participantJoined"
"meeting.participantLeft"
"meeting.chatSynced"
"recording.statusUpdate"
"livestreaming.statusUpdate"
"meeting.transcript"
"meeting.summary"
name: string

Name of the webhook

updated_at: string

Timestamp when this webhook was updated

formatdate-time
url: string

URL the webhook will send events to

formaturi
success: boolean
WebhookEditWebhookResponse { data, success }
data: Data { id, created_at, enabled, 4 more }
id: string

ID of the webhook

formatuuid
created_at: string

Timestamp when this webhook was created

formatdate-time
enabled: boolean

Set to true if the webhook is active

events: Array<"meeting.started" | "meeting.ended" | "meeting.participantJoined" | 6 more>

Events this webhook will send updates for

One of the following:
"meeting.started"
"meeting.ended"
"meeting.participantJoined"
"meeting.participantLeft"
"meeting.chatSynced"
"recording.statusUpdate"
"livestreaming.statusUpdate"
"meeting.transcript"
"meeting.summary"
name: string

Name of the webhook

updated_at: string

Timestamp when this webhook was updated

formatdate-time
url: string

URL the webhook will send events to

formaturi
success: boolean
WebhookDeleteWebhookResponse { data, success }
data: Data { id, created_at, enabled, 4 more }
id: string

ID of the webhook

formatuuid
created_at: string

Timestamp when this webhook was created

formatdate-time
enabled: boolean

Set to true if the webhook is active

events: Array<"meeting.started" | "meeting.ended" | "meeting.participantJoined" | 6 more>

Events this webhook will send updates for

One of the following:
"meeting.started"
"meeting.ended"
"meeting.participantJoined"
"meeting.participantLeft"
"meeting.chatSynced"
"recording.statusUpdate"
"livestreaming.statusUpdate"
"meeting.transcript"
"meeting.summary"
name: string

Name of the webhook

updated_at: string

Timestamp when this webhook was updated

formatdate-time
url: string

URL the webhook will send events to

formaturi
success: boolean

Realtime KitActive Session

Fetch details of an active session
client.realtimeKit.activeSession.getActiveSession(stringappId, stringmeetingId, ActiveSessionGetActiveSessionParams { account_id } params, RequestOptionsoptions?): ActiveSessionGetActiveSessionResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session
Kick participants from an active session
client.realtimeKit.activeSession.kickParticipants(stringappId, stringmeetingId, ActiveSessionKickParticipantsParams { account_id, custom_participant_ids, participant_ids } params, RequestOptionsoptions?): ActiveSessionKickParticipantsResponse { data, success }
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/kick
Kick all participants
client.realtimeKit.activeSession.kickAllParticipants(stringappId, stringmeetingId, ActiveSessionKickAllParticipantsParams { account_id } params, RequestOptionsoptions?): ActiveSessionKickAllParticipantsResponse { data, success }
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/kick-all
Create a poll
client.realtimeKit.activeSession.createPoll(stringappId, stringmeetingId, ActiveSessionCreatePollParams { account_id, options, question, 2 more } params, RequestOptionsoptions?): ActiveSessionCreatePollResponse { data, success }
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/poll
ModelsExpand Collapse
ActiveSessionGetActiveSessionResponse { data, success }
data?: Data { id, associated_id, created_at, 12 more }
id: string

ID of the session

associated_id: string

ID of the meeting this session is associated with. In the case of V2 meetings, it is always a UUID. In V1 meetings, it is a room name of the form abcdef-ghijkl

created_at: string

timestamp when session created

live_participants: number

number of participants currently in the session

max_concurrent_participants: number

number of maximum participants that were in the session

meeting_display_name: string

Title of the meeting this session belongs to

minutes_consumed: number

number of minutes consumed since the session started

organization_id: string

App id that hosted this session

started_at: string

timestamp when session started

status: "LIVE" | "ENDED"

current status of session

One of the following:
"LIVE"
"ENDED"
type: "meeting" | "livestream" | "participant"

type of session

One of the following:
"meeting"
"livestream"
"participant"
updated_at: string

timestamp when session was last updated

breakout_rooms?: Array<unknown>
ended_at?: string

timestamp when session ended

meta?: unknown

Any meta data about session.

success?: boolean
ActiveSessionKickParticipantsResponse { data, success }
data?: Data { action, participants }
action?: string
participants?: Array<Participant>
id: string

ID of the session participant

created_at: string
updated_at: string
email?: string

Email of the session participant.

name?: string

Name of the session participant.

picture?: string

A URL pointing to a picture of the participant.

success?: boolean
ActiveSessionKickAllParticipantsResponse { data, success }
data?: Data { action, kicked_participants_count }
action?: string
kicked_participants_count?: number
success?: boolean
ActiveSessionCreatePollResponse { data, success }
data?: Data { action, poll }
action?: string
poll?: Poll { id, options, question, 4 more }
id: string

ID of the poll

options: Array<Option>

Answer options

count: number
text: string

Text of the answer option

votes: Array<Vote>
id: string
name: string
question: string

Question asked by the poll

anonymous?: boolean
created_by?: string
hide_votes?: boolean
voted?: Array<string>
success?: boolean

Realtime KitLivestreams

Create an independent livestream
client.realtimeKit.livestreams.createIndependentLivestream(stringappId, LivestreamCreateIndependentLivestreamParams { account_id, name } params, RequestOptionsoptions?): LivestreamCreateIndependentLivestreamResponse { data, success }
POST/accounts/{account_id}/realtime/kit/{app_id}/livestreams
Fetch all livestreams
client.realtimeKit.livestreams.getAllLivestreams(stringappId, LivestreamGetAllLivestreamsParams { account_id, end_time, exclude_meetings, 5 more } params, RequestOptionsoptions?): LivestreamGetAllLivestreamsResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/livestreams
Stop livestreaming a meeting
client.realtimeKit.livestreams.stopLivestreamingAMeeting(stringappId, stringmeetingId, LivestreamStopLivestreamingAMeetingParams { account_id } params, RequestOptionsoptions?): LivestreamStopLivestreamingAMeetingResponse { data, success }
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-livestream/stop
Start livestreaming a meeting
client.realtimeKit.livestreams.startLivestreamingAMeeting(stringappId, stringmeetingId, LivestreamStartLivestreamingAMeetingParams { account_id, name, video_config } params, RequestOptionsoptions?): LivestreamStartLivestreamingAMeetingResponse { data, success }
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/livestreams
Fetch complete analytics data for your livestreams
client.realtimeKit.livestreams.getLivestreamAnalyticsComplete(stringappId, LivestreamGetLivestreamAnalyticsCompleteParams { account_id, end_time, start_time } params, RequestOptionsoptions?): LivestreamGetLivestreamAnalyticsCompleteResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/analytics/livestreams/overall
Fetch day-wise session and recording analytics data for an App
client.realtimeKit.livestreams.getOrgAnalytics(stringappId, LivestreamGetOrgAnalyticsParams { account_id, end_date, start_date } params, RequestOptionsoptions?): LivestreamGetOrgAnalyticsResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/analytics/daywise
Fetch active livestreams for a meeting
client.realtimeKit.livestreams.getMeetingActiveLivestreams(stringappId, stringmeetingId, LivestreamGetMeetingActiveLivestreamsParams { account_id } params, RequestOptionsoptions?): LivestreamGetMeetingActiveLivestreamsResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-livestream
Fetch livestream session details using livestream session ID
client.realtimeKit.livestreams.getLivestreamSessionDetailsForSessionId(stringappId, stringlivestreamSessionId, LivestreamGetLivestreamSessionDetailsForSessionIDParams { account_id } params, RequestOptionsoptions?): LivestreamGetLivestreamSessionDetailsForSessionIDResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/livestreams/sessions/{livestream-session-id}
Fetch active livestream session details
client.realtimeKit.livestreams.getActiveLivestreamsForLivestreamId(stringappId, stringlivestreamId, LivestreamGetActiveLivestreamsForLivestreamIDParams { account_id } params, RequestOptionsoptions?): LivestreamGetActiveLivestreamsForLivestreamIDResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/livestreams/{livestream_id}/active-livestream-session
Fetch livestream details using livestream ID
client.realtimeKit.livestreams.getLivestreamSessionForLivestreamId(stringappId, stringlivestreamId, LivestreamGetLivestreamSessionForLivestreamIDParams { account_id, page_no, per_page } params, RequestOptionsoptions?): LivestreamGetLivestreamSessionForLivestreamIDResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/livestreams/{livestream_id}
ModelsExpand Collapse
LivestreamCreateIndependentLivestreamResponse { data, success }
data?: Data { id, disabled, ingest_server, 5 more }
id?: string

The livestream ID.

disabled?: boolean

Specifies if the livestream was disabled.

ingest_server?: string

The server URL to which the RTMP encoder should send the video and audio data.

meeting_id?: string | null
name?: string
playback_url?: string

The web address that viewers can use to watch the livestream.

status?: "LIVE" | "IDLE" | "ERRORED" | "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key?: string

Unique key for accessing each livestream.

success?: boolean
LivestreamGetAllLivestreamsResponse { data, success }
data?: Data { id, created_at, disabled, 8 more }
id?: string

The ID of the livestream.

formatuuid
created_at?: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
disabled?: string

Specifies if the livestream was disabled.

ingest_server?: string

The server URL to which the RTMP encoder sends the video and audio data.

meeting_id?: string

ID of the meeting.

name?: string

Name of the livestream.

paging?: Paging { end_offset, start_offset, total_count }
end_offset?: number
start_offset?: number
total_count?: number
playback_url?: string

The web address that viewers can use to watch the livestream.

status?: "LIVE" | "IDLE" | "ERRORED" | "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key?: string

Unique key for accessing each livestream.

updated_at?: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
success?: boolean
LivestreamStopLivestreamingAMeetingResponse { data, success }
data?: Data { message }
message?: string
success?: boolean
LivestreamStartLivestreamingAMeetingResponse { data, success }
data?: Data { id, ingest_server, playback_url, 2 more }
id?: string

The livestream ID.

ingest_server?: string

The server URL to which the RTMP encoder sends the video and audio data.

playback_url?: string

The web address that viewers can use to watch the livestream.

status?: "LIVE" | "IDLE" | "ERRORED" | "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key?: string

Unique key for accessing each livestream.

success?: boolean
LivestreamGetLivestreamAnalyticsCompleteResponse { data, success }
data?: Data { count, total_ingest_seconds, total_viewer_seconds }
count?: number

Count of total livestreams.

total_ingest_seconds?: number

Total time duration for which the input was given or the meeting was streamed.

total_viewer_seconds?: number

Total view time for which the viewers watched the stream.

success?: boolean
LivestreamGetOrgAnalyticsResponse { data, success }
data?: Data { recording_stats, session_stats }
recording_stats?: RecordingStats { day_stats, recording_count, recording_minutes_consumed }

Recording statistics of an App during the range specified

day_stats?: Array<DayStat>

Day wise recording stats

day?: string
total_recording_minutes?: number

Total recording minutes for a specific day

total_recordings?: number

Total number of recordings for a specific day

recording_count?: number

Total number of recordings during the range specified

recording_minutes_consumed?: number

Total recording minutes during the range specified

session_stats?: SessionStats { day_stats, sessions_count, sessions_minutes_consumed }

Session statistics of an App during the range specified

day_stats?: Array<DayStat>

Day wise session stats

day?: string
total_session_minutes?: number

Total session minutes for a specific day

total_sessions?: number

Total number of sessions for a specific day

sessions_count?: number

Total number of sessions during the range specified

sessions_minutes_consumed?: number

Total session minutes during the range specified

success?: boolean
LivestreamGetMeetingActiveLivestreamsResponse { data, success }
data?: Data { id, created_at, disabled, 7 more }
id?: string

The livestream ID.

created_at?: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
disabled?: string

Specifies if the livestream was disabled.

ingest_server?: string

The server URL to which the RTMP encoder sends the video and audio data.

meeting_id?: string
name?: string | null

Name of the livestream.

playback_url?: string

The web address that viewers can use to watch the livestream.

status?: "LIVE" | "IDLE" | "ERRORED" | "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key?: string

Unique key for accessing each livestream.

updated_at?: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
success?: boolean
LivestreamGetLivestreamSessionDetailsForSessionIDResponse { data, success }
data?: Data { id, created_at, err_message, 6 more }
id?: string

The livestream ID.

created_at?: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
err_message?: string

The server URL to which the RTMP encoder sends the video and audio data.

ingest_seconds?: number

Name of the livestream.

livestream_id?: string
started_time?: string

Unique key for accessing each livestream.

stopped_time?: string

The web address that viewers can use to watch the livestream.

updated_at?: string

Timestamp the object was updated at. The time is returned in ISO format.

viewer_seconds?: number

Specifies if the livestream was disabled.

success?: boolean
LivestreamGetActiveLivestreamsForLivestreamIDResponse { data, success }
data?: Data { livestream, session }
livestream?: Livestream { id, created_at, disabled, 7 more }
id?: string
created_at?: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
disabled?: string

Specifies if the livestream was disabled.

ingest_server?: string

The server URL to which the RTMP encoder sends the video and audio data.

meeting_id?: string

ID of the meeting.

name?: string

Name of the livestream.

playback_url?: string

The web address that viewers can use to watch the livestream.

status?: "LIVE" | "IDLE" | "ERRORED" | "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key?: string

Unique key for accessing each livestream.

updated_at?: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
session?: Session { id, created_at, err_message, 7 more }
id?: string
created_at?: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
err_message?: string
ingest_seconds?: string

The time duration for which the input was given or the meeting was streamed.

invoked_time?: string

Timestamp the object was invoked. The time is returned in ISO format.

formatdate-time
livestream_id?: string
started_time?: string

Timestamp the object was started. The time is returned in ISO format.

formatdate-time
stopped_time?: string

Timestamp the object was stopped. The time is returned in ISO format.

formatdate-time
updated_at?: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
viewer_seconds?: string

The total view time for which the viewers watched the stream.

success?: boolean
LivestreamGetLivestreamSessionForLivestreamIDResponse { data, success }
data?: Data { livestream, paging, session }
livestream?: Livestream { id, created_at, disabled, 7 more }
id?: string

ID of the livestream.

created_at?: string

Timestamp the object was created at. The time is returned in ISO format.

disabled?: string

Specifies if the livestream was disabled.

ingest_server?: string

The server URL to which the RTMP encoder sends the video and audio data.

meeting_id?: string

The ID of the meeting.

name?: string

Name of the livestream.

playback_url?: string

The web address that viewers can use to watch the livestream.

status?: "LIVE" | "IDLE" | "ERRORED" | "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key?: string

Unique key for accessing each livestream.

updated_at?: string

Timestamp the object was updated at. The time is returned in ISO format.

paging?: Paging { end_offset, start_offset, total_count }
end_offset?: number
start_offset?: number
total_count?: number
session?: Session { id, created_at, err_message, 7 more }
id?: string

ID of the session.

created_at?: string

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
err_message?: string
ingest_seconds?: number

The time duration for which the input was given or the meeting was streamed.

invoked_time?: string

Timestamp the object was invoked. The time is returned in ISO format.

formatdate-time
livestream_id?: string
started_time?: string

Timestamp the object was started. The time is returned in ISO format.

formatdate-time
stopped_time?: string

Timestamp the object was stopped. The time is returned in ISO format.

formatdate-time
updated_at?: string

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
viewer_seconds?: number

The total view time for which the viewers watched the stream.

success?: boolean

Realtime KitAnalytics

Fetch day-wise session and recording analytics data for an App
client.realtimeKit.analytics.getOrgAnalytics(stringappId, AnalyticsGetOrgAnalyticsParams { account_id, end_date, start_date } params, RequestOptionsoptions?): AnalyticsGetOrgAnalyticsResponse { data, success }
GET/accounts/{account_id}/realtime/kit/{app_id}/analytics/daywise
ModelsExpand Collapse
AnalyticsGetOrgAnalyticsResponse { data, success }
data?: Data { recording_stats, session_stats }
recording_stats?: RecordingStats { day_stats, recording_count, recording_minutes_consumed }

Recording statistics of an App during the range specified

day_stats?: Array<DayStat>

Day wise recording stats

day?: string
total_recording_minutes?: number

Total recording minutes for a specific day

total_recordings?: number

Total number of recordings for a specific day

recording_count?: number

Total number of recordings during the range specified

recording_minutes_consumed?: number

Total recording minutes during the range specified

session_stats?: SessionStats { day_stats, sessions_count, sessions_minutes_consumed }

Session statistics of an App during the range specified

day_stats?: Array<DayStat>

Day wise session stats

day?: string
total_session_minutes?: number

Total session minutes for a specific day

total_sessions?: number

Total number of sessions for a specific day

sessions_count?: number

Total number of sessions during the range specified

sessions_minutes_consumed?: number

Total session minutes during the range specified

success?: boolean