Skip to content
Start here

Realtime Kit

Realtime KitApps

Fetch all apps
GET/accounts/{account_id}/realtime/kit/apps
Create App
POST/accounts/{account_id}/realtime/kit/apps
ModelsExpand Collapse
AppGetResponse { data, success }
data: optional array of { id, created_at, name }
id: optional string
created_at: optional string
name: optional string
success: optional boolean
AppPostResponse { data, success }
data: optional { app }
app: optional { id, created_at, name }
id: optional string
created_at: optional string
name: optional string
success: optional boolean

Realtime KitMeetings

Fetch all meetings for an App
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings
Create a meeting
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings
Fetch a meeting for an App
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}
Update a meeting
PATCH/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}
Replace a meeting
PUT/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}
Fetch all participants of a meeting
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants
Add a participant
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants
Fetch a participant's detail
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}
Edit a participant's detail
PATCH/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}
Delete a participant
DELETE/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}
Refresh participant's authentication token
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}/token
ModelsExpand Collapse
MeetingGetResponse { data, paging, success }
data: array of { 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: optional boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat: optional boolean

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

record_on_start: optional boolean

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

session_keep_alive_time_in_secs: optional number

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

maximum600
minimum60
status: optional "ACTIVE" or "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: optional boolean

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

title: optional string

Title of the meeting.

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: optional { 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: optional { summarization, transcription }

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

summarization: optional { summary_type, text_format, word_limit }

Summary Config

summary_type: optional "general" or "team_meeting" or "sales_call" or 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: optional "plain_text" or "markdown"

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

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

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
transcription: optional { keywords, language, profanity_filter }

Transcription Configurations

keywords: optional array of string

Adds specific terms to improve accurate detection during transcription.

language: optional "en-US" or "en-IN" or "de" or 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: optional boolean

Control the inclusion of offensive language in transcriptions.

live_stream_on_start: optional boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat: optional boolean

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

record_on_start: optional boolean

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

recording_config: optional { 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: optional { channel, codec, export_file }

Object containing configuration regarding the audio that is being recorded.

channel: optional "mono" or "stereo"

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

One of the following:
"mono"
"stereo"
codec: optional "MP3" or "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: optional boolean

Controls whether to export audio file seperately

file_name_prefix: optional string

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

live_streaming_config: optional { rtmp_url }
rtmp_url: optional string

RTMP URL to stream to

formaturi
max_seconds: optional 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: optional { 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: optional { type, access_key, auth_method, 9 more }
type: "aws" or "azure" or "digitalocean" or 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key: optional 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: optional "KEY" or "PASSWORD"

Authentication method used for “sftp” type storage medium

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

Name of the storage medium’s bucket.

host: optional string

SSH destination server host for SFTP type storage medium

password: optional 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: optional string

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

port: optional number

SSH destination server port for SFTP type storage medium

private_key: optional string

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

region: optional string

Region of the storage medium.

secret: optional string

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

username: optional string

SSH destination server username for SFTP type storage medium

video_config: optional { codec, export_file, height, 2 more }
codec: optional "H264" or "VP8"

Codec using which the recording will be encoded.

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

Controls whether to export video file seperately

height: optional number

Height of the recording video in pixels

maximum1920
minimum1
watermark: optional { position, size, url }

Watermark to be added to the recording

position: optional "left top" or "right top" or "left bottom" or "right bottom"

Position of the watermark

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

Size of the watermark

height: optional number

Height of the watermark in px

minimum1
width: optional number

Width of the watermark in px

minimum1
url: optional string

URL of the watermark image

formaturi
width: optional number

Width of the recording video in pixels

maximum1920
minimum1
session_keep_alive_time_in_secs: optional number

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

maximum600
minimum60
status: optional "ACTIVE" or "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: optional boolean

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

title: optional string

Title of the meeting.

MeetingGetMeetingByIDResponse { success, data }
success: boolean

Success status of the operation

data: optional { 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: optional { summarization, transcription }

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

summarization: optional { summary_type, text_format, word_limit }

Summary Config

summary_type: optional "general" or "team_meeting" or "sales_call" or 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: optional "plain_text" or "markdown"

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

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

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
transcription: optional { keywords, language, profanity_filter }

Transcription Configurations

keywords: optional array of string

Adds specific terms to improve accurate detection during transcription.

language: optional "en-US" or "en-IN" or "de" or 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: optional boolean

Control the inclusion of offensive language in transcriptions.

live_stream_on_start: optional boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat: optional boolean

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

record_on_start: optional boolean

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

recording_config: optional { 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: optional { channel, codec, export_file }

Object containing configuration regarding the audio that is being recorded.

channel: optional "mono" or "stereo"

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

One of the following:
"mono"
"stereo"
codec: optional "MP3" or "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: optional boolean

Controls whether to export audio file seperately

file_name_prefix: optional string

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

live_streaming_config: optional { rtmp_url }
rtmp_url: optional string

RTMP URL to stream to

formaturi
max_seconds: optional 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: optional { 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: optional { type, access_key, auth_method, 9 more }
type: "aws" or "azure" or "digitalocean" or 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key: optional 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: optional "KEY" or "PASSWORD"

Authentication method used for “sftp” type storage medium

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

Name of the storage medium’s bucket.

host: optional string

SSH destination server host for SFTP type storage medium

password: optional 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: optional string

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

port: optional number

SSH destination server port for SFTP type storage medium

private_key: optional string

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

region: optional string

Region of the storage medium.

secret: optional string

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

username: optional string

SSH destination server username for SFTP type storage medium

video_config: optional { codec, export_file, height, 2 more }
codec: optional "H264" or "VP8"

Codec using which the recording will be encoded.

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

Controls whether to export video file seperately

height: optional number

Height of the recording video in pixels

maximum1920
minimum1
watermark: optional { position, size, url }

Watermark to be added to the recording

position: optional "left top" or "right top" or "left bottom" or "right bottom"

Position of the watermark

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

Size of the watermark

height: optional number

Height of the watermark in px

minimum1
width: optional number

Width of the watermark in px

minimum1
url: optional string

URL of the watermark image

formaturi
width: optional number

Width of the recording video in pixels

maximum1920
minimum1
session_keep_alive_time_in_secs: optional number

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

maximum600
minimum60
status: optional "ACTIVE" or "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: optional boolean

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

title: optional string

Title of the meeting.

MeetingUpdateMeetingByIDResponse { success, data }
success: boolean

Success status of the operation

data: optional { 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: optional { summarization, transcription }

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

summarization: optional { summary_type, text_format, word_limit }

Summary Config

summary_type: optional "general" or "team_meeting" or "sales_call" or 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: optional "plain_text" or "markdown"

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

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

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
transcription: optional { keywords, language, profanity_filter }

Transcription Configurations

keywords: optional array of string

Adds specific terms to improve accurate detection during transcription.

language: optional "en-US" or "en-IN" or "de" or 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: optional boolean

Control the inclusion of offensive language in transcriptions.

live_stream_on_start: optional boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat: optional boolean

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

record_on_start: optional boolean

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

recording_config: optional { 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: optional { channel, codec, export_file }

Object containing configuration regarding the audio that is being recorded.

channel: optional "mono" or "stereo"

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

One of the following:
"mono"
"stereo"
codec: optional "MP3" or "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: optional boolean

Controls whether to export audio file seperately

file_name_prefix: optional string

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

live_streaming_config: optional { rtmp_url }
rtmp_url: optional string

RTMP URL to stream to

formaturi
max_seconds: optional 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: optional { 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: optional { type, access_key, auth_method, 9 more }
type: "aws" or "azure" or "digitalocean" or 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key: optional 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: optional "KEY" or "PASSWORD"

Authentication method used for “sftp” type storage medium

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

Name of the storage medium’s bucket.

host: optional string

SSH destination server host for SFTP type storage medium

password: optional 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: optional string

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

port: optional number

SSH destination server port for SFTP type storage medium

private_key: optional string

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

region: optional string

Region of the storage medium.

secret: optional string

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

username: optional string

SSH destination server username for SFTP type storage medium

video_config: optional { codec, export_file, height, 2 more }
codec: optional "H264" or "VP8"

Codec using which the recording will be encoded.

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

Controls whether to export video file seperately

height: optional number

Height of the recording video in pixels

maximum1920
minimum1
watermark: optional { position, size, url }

Watermark to be added to the recording

position: optional "left top" or "right top" or "left bottom" or "right bottom"

Position of the watermark

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

Size of the watermark

height: optional number

Height of the watermark in px

minimum1
width: optional number

Width of the watermark in px

minimum1
url: optional string

URL of the watermark image

formaturi
width: optional number

Width of the recording video in pixels

maximum1920
minimum1
session_keep_alive_time_in_secs: optional number

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

maximum600
minimum60
status: optional "ACTIVE" or "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: optional boolean

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

title: optional string

Title of the meeting.

MeetingReplaceMeetingByIDResponse { success, data }
success: boolean

Success status of the operation

data: optional { 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: optional { summarization, transcription }

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

summarization: optional { summary_type, text_format, word_limit }

Summary Config

summary_type: optional "general" or "team_meeting" or "sales_call" or 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: optional "plain_text" or "markdown"

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

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

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
transcription: optional { keywords, language, profanity_filter }

Transcription Configurations

keywords: optional array of string

Adds specific terms to improve accurate detection during transcription.

language: optional "en-US" or "en-IN" or "de" or 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: optional boolean

Control the inclusion of offensive language in transcriptions.

live_stream_on_start: optional boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat: optional boolean

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

record_on_start: optional boolean

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

recording_config: optional { 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: optional { channel, codec, export_file }

Object containing configuration regarding the audio that is being recorded.

channel: optional "mono" or "stereo"

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

One of the following:
"mono"
"stereo"
codec: optional "MP3" or "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: optional boolean

Controls whether to export audio file seperately

file_name_prefix: optional string

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

live_streaming_config: optional { rtmp_url }
rtmp_url: optional string

RTMP URL to stream to

formaturi
max_seconds: optional 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: optional { 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: optional { type, access_key, auth_method, 9 more }
type: "aws" or "azure" or "digitalocean" or 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key: optional 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: optional "KEY" or "PASSWORD"

Authentication method used for “sftp” type storage medium

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

Name of the storage medium’s bucket.

host: optional string

SSH destination server host for SFTP type storage medium

password: optional 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: optional string

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

port: optional number

SSH destination server port for SFTP type storage medium

private_key: optional string

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

region: optional string

Region of the storage medium.

secret: optional string

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

username: optional string

SSH destination server username for SFTP type storage medium

video_config: optional { codec, export_file, height, 2 more }
codec: optional "H264" or "VP8"

Codec using which the recording will be encoded.

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

Controls whether to export video file seperately

height: optional number

Height of the recording video in pixels

maximum1920
minimum1
watermark: optional { position, size, url }

Watermark to be added to the recording

position: optional "left top" or "right top" or "left bottom" or "right bottom"

Position of the watermark

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

Size of the watermark

height: optional number

Height of the watermark in px

minimum1
width: optional number

Width of the watermark in px

minimum1
url: optional string

URL of the watermark image

formaturi
width: optional number

Width of the recording video in pixels

maximum1920
minimum1
session_keep_alive_time_in_secs: optional number

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

maximum600
minimum60
status: optional "ACTIVE" or "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: optional boolean

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

title: optional string

Title of the meeting.

MeetingGetMeetingParticipantsResponse { data, paging, success }
data: array of { id, created_at, custom_participant_id, 4 more }
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: optional string

Name of the participant.

picture: optional string

URL to a picture of the participant.

formaturi
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: optional { 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: optional string

Name of the participant.

picture: optional string

URL to a picture of the participant.

formaturi
MeetingGetMeetingParticipantResponse { data, success }
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: optional string

Name of the participant.

picture: optional string

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: optional { 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: optional string

Name of the participant.

picture: optional string

URL to a picture of the participant.

formaturi
MeetingDeleteMeetingParticipantResponse { success, data }
success: boolean

Success status of the operation

data: optional { 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: { 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
GET/accounts/{account_id}/realtime/kit/{app_id}/presets
Create a preset
POST/accounts/{account_id}/realtime/kit/{app_id}/presets
Fetch details of a preset
GET/accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}
Delete a preset
DELETE/accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}
Update a preset
PATCH/accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}
ModelsExpand Collapse
PresetGetResponse { data, paging, success }
data: array of { id, created_at, name, updated_at }
id: optional string

ID of the preset

formatuuid
created_at: optional string

Timestamp this preset was created at

formatdate-time
name: optional string

Name of the preset

updated_at: optional string

Timestamp this preset was last updated

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

Data returned by the operation

id: string

ID of the preset

formatuuid
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: { 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: { screenshare, video, audio }

Media configuration options. eg: Video quality

screenshare: { frame_rate, quality }

Configuration options for participant screen shares

frame_rate: number

Frame rate of screen share

quality: "hd" or "vga" or "qvga"

Quality of screen share

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

Configuration options for participant videos

frame_rate: number

Frame rate of participants’ video

maximum30
quality: "hd" or "vga" or "qvga"

Video quality of participants

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

Control options for Audio quality.

enable_high_bitrate: optional boolean

Enable High Quality Audio for your meetings

enable_stereo: optional boolean

Enable Stereo for your meetings

view_type: "GROUP_CALL" or "WEBINAR" or "AUDIO_ROOM"

Type of the meeting

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

Name of the preset

ui: { design_tokens, config_diff }
design_tokens: { border_radius, border_width, colors, 3 more }
border_radius: "rounded"
border_width: "thin"
colors: { background, brand, danger, 5 more }
background: { "1000", "600", "700", 2 more }
"1000": string
"600": string
"700": string
"800": string
"900": string
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: optional unknown
permissions: optional { 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: { private, public }

Chat permissions

private: { can_receive, can_send, files, text }
can_receive: boolean
can_send: boolean
files: boolean
text: boolean
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: { 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: { audio, screenshare, video }

Media permissions

audio: { can_produce }

Audio permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce audio

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

Screenshare permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce screen share video

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

Video permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
pin_participant: boolean
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 or { access_control, handles_view_only }
One of the following:
string
{ access_control, handles_view_only }
access_control: "FULL_ACCESS" or "VIEW_ONLY"
One of the following:
"FULL_ACCESS"
"VIEW_ONLY"
handles_view_only: boolean
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" or "LIVESTREAMER" or "NONE"

Type of the recording peer

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

Waiting room type

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

Success status of the operation

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

Data returned by the operation

id: string

ID of the preset

formatuuid
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: { 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: { screenshare, video, audio }

Media configuration options. eg: Video quality

screenshare: { frame_rate, quality }

Configuration options for participant screen shares

frame_rate: number

Frame rate of screen share

quality: "hd" or "vga" or "qvga"

Quality of screen share

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

Configuration options for participant videos

frame_rate: number

Frame rate of participants’ video

maximum30
quality: "hd" or "vga" or "qvga"

Video quality of participants

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

Control options for Audio quality.

enable_high_bitrate: optional boolean

Enable High Quality Audio for your meetings

enable_stereo: optional boolean

Enable Stereo for your meetings

view_type: "GROUP_CALL" or "WEBINAR" or "AUDIO_ROOM"

Type of the meeting

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

Name of the preset

ui: { design_tokens, config_diff }
design_tokens: { border_radius, border_width, colors, 3 more }
border_radius: "rounded"
border_width: "thin"
colors: { background, brand, danger, 5 more }
background: { "1000", "600", "700", 2 more }
"1000": string
"600": string
"700": string
"800": string
"900": string
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: optional unknown
permissions: optional { 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: { private, public }

Chat permissions

private: { can_receive, can_send, files, text }
can_receive: boolean
can_send: boolean
files: boolean
text: boolean
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: { 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: { audio, screenshare, video }

Media permissions

audio: { can_produce }

Audio permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce audio

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

Screenshare permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce screen share video

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

Video permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
pin_participant: boolean
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 or { access_control, handles_view_only }
One of the following:
string
{ access_control, handles_view_only }
access_control: "FULL_ACCESS" or "VIEW_ONLY"
One of the following:
"FULL_ACCESS"
"VIEW_ONLY"
handles_view_only: boolean
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" or "LIVESTREAMER" or "NONE"

Type of the recording peer

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

Waiting room type

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

Success status of the operation

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

Data returned by the operation

id: string

ID of the preset

formatuuid
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: { 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: { screenshare, video, audio }

Media configuration options. eg: Video quality

screenshare: { frame_rate, quality }

Configuration options for participant screen shares

frame_rate: number

Frame rate of screen share

quality: "hd" or "vga" or "qvga"

Quality of screen share

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

Configuration options for participant videos

frame_rate: number

Frame rate of participants’ video

maximum30
quality: "hd" or "vga" or "qvga"

Video quality of participants

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

Control options for Audio quality.

enable_high_bitrate: optional boolean

Enable High Quality Audio for your meetings

enable_stereo: optional boolean

Enable Stereo for your meetings

view_type: "GROUP_CALL" or "WEBINAR" or "AUDIO_ROOM"

Type of the meeting

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

Name of the preset

ui: { design_tokens, config_diff }
design_tokens: { border_radius, border_width, colors, 3 more }
border_radius: "rounded"
border_width: "thin"
colors: { background, brand, danger, 5 more }
background: { "1000", "600", "700", 2 more }
"1000": string
"600": string
"700": string
"800": string
"900": string
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: optional unknown
permissions: optional { 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: { private, public }

Chat permissions

private: { can_receive, can_send, files, text }
can_receive: boolean
can_send: boolean
files: boolean
text: boolean
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: { 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: { audio, screenshare, video }

Media permissions

audio: { can_produce }

Audio permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce audio

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

Screenshare permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce screen share video

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

Video permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
pin_participant: boolean
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 or { access_control, handles_view_only }
One of the following:
string
{ access_control, handles_view_only }
access_control: "FULL_ACCESS" or "VIEW_ONLY"
One of the following:
"FULL_ACCESS"
"VIEW_ONLY"
handles_view_only: boolean
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" or "LIVESTREAMER" or "NONE"

Type of the recording peer

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

Waiting room type

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

Success status of the operation

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

Data returned by the operation

id: string

ID of the preset

formatuuid
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: { 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: { screenshare, video, audio }

Media configuration options. eg: Video quality

screenshare: { frame_rate, quality }

Configuration options for participant screen shares

frame_rate: number

Frame rate of screen share

quality: "hd" or "vga" or "qvga"

Quality of screen share

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

Configuration options for participant videos

frame_rate: number

Frame rate of participants’ video

maximum30
quality: "hd" or "vga" or "qvga"

Video quality of participants

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

Control options for Audio quality.

enable_high_bitrate: optional boolean

Enable High Quality Audio for your meetings

enable_stereo: optional boolean

Enable Stereo for your meetings

view_type: "GROUP_CALL" or "WEBINAR" or "AUDIO_ROOM"

Type of the meeting

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

Name of the preset

ui: { design_tokens, config_diff }
design_tokens: { border_radius, border_width, colors, 3 more }
border_radius: "rounded"
border_width: "thin"
colors: { background, brand, danger, 5 more }
background: { "1000", "600", "700", 2 more }
"1000": string
"600": string
"700": string
"800": string
"900": string
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: optional unknown
permissions: optional { 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: { private, public }

Chat permissions

private: { can_receive, can_send, files, text }
can_receive: boolean
can_send: boolean
files: boolean
text: boolean
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: { 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: { audio, screenshare, video }

Media permissions

audio: { can_produce }

Audio permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce audio

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

Screenshare permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce screen share video

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

Video permissions

can_produce: "ALLOWED" or "NOT_ALLOWED" or "CAN_REQUEST"

Can produce video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
pin_participant: boolean
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 or { access_control, handles_view_only }
One of the following:
string
{ access_control, handles_view_only }
access_control: "FULL_ACCESS" or "VIEW_ONLY"
One of the following:
"FULL_ACCESS"
"VIEW_ONLY"
handles_view_only: boolean
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" or "LIVESTREAMER" or "NONE"

Type of the recording peer

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

Waiting room type

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

Success status of the operation

Realtime KitSessions

Fetch all sessions of an App
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions
Fetch details of a session
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}
Fetch participants list of a session
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/participants
Fetch details of a participant
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/participants/{participant_id}
Fetch all chat messages of a session
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/chat
Fetch the complete transcript for a session
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/transcript
Fetch summary of transcripts for a session
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/summary
Generate summary of Transcripts for the session
POST/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/summary
Fetch details of peer
GET/accounts/{account_id}/realtime/kit/{app_id}/sessions/peer-report/{peer_id}
ModelsExpand Collapse
SessionGetSessionsResponse { data, success }
data: optional { sessions }
sessions: optional array of { 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" or "ENDED"

current status of session

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

type of session

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

timestamp when session was last updated

breakout_rooms: optional array of unknown
ended_at: optional string

timestamp when session ended

meta: optional unknown

Any meta data about session.

success: optional boolean
SessionGetSessionDetailsResponse { data, success }
data: optional { session }
session: optional { 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" or "ENDED"

current status of session

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

type of session

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

timestamp when session was last updated

breakout_rooms: optional array of unknown
ended_at: optional string

timestamp when session ended

meta: optional unknown

Any meta data about session.

success: optional boolean
SessionGetSessionParticipantsResponse { data, success }
data: optional { participants }
participants: optional array of { id, created_at, custom_participant_id, 7 more }
id: optional string

Participant ID. This maps to the corresponding peerId.

created_at: optional string

timestamp when this participant was created.

custom_participant_id: optional string

ID passed by client to create this participant.

display_name: optional string

Display name of participant when joining the session.

duration: optional number

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

joined_at: optional string

timestamp at which participant joined the session.

left_at: optional string

timestamp at which participant left the session.

preset_name: optional string

Name of the preset associated with the participant.

updated_at: optional string

timestamp when this participant’s data was last updated.

user_id: optional string

User id for this participant.

success: optional boolean
SessionGetSessionParticipantDetailsResponse { data, success }
data: optional { participant }
participant: optional { id, created_at, custom_participant_id, 9 more }
id: optional string

Participant ID. This maps to the corresponding peerId.

created_at: optional string

timestamp when this participant was created.

custom_participant_id: optional string

ID passed by client to create this participant.

display_name: optional string

Display name of participant when joining the session.

duration: optional number

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

joined_at: optional string

timestamp at which participant joined the session.

left_at: optional string

timestamp at which participant left the session.

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

Name of the preset associated with the participant.

quality_stats: optional array of { audio_bandwidth, audio_packet_loss, audio_stats, 7 more }
audio_bandwidth: optional number
audio_packet_loss: optional number
audio_stats: optional array of { concealment_events, jitter, packets_lost, 2 more }
concealment_events: optional number
jitter: optional number
packets_lost: optional number
quality: optional number
timestamp: optional string
average_quality: optional number
end: optional string
peer_id: optional string
start: optional string
video_bandwidth: optional number
video_packet_loss: optional number
video_stats: optional array of { frame_height, frame_width, frames_dropped, 5 more }
frame_height: optional number
frame_width: optional number
frames_dropped: optional number
frames_per_second: optional number
jitter: optional number
packets_lost: optional number
quality: optional number
timestamp: optional string
updated_at: optional string

timestamp when this participant’s data was last updated.

user_id: optional string

User id for this participant.

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

Realtime KitRecordings

Fetch all recordings for an App
GET/accounts/{account_id}/realtime/kit/{app_id}/recordings
Start recording a meeting
POST/accounts/{account_id}/realtime/kit/{app_id}/recordings
Fetch active recording
GET/accounts/{account_id}/realtime/kit/{app_id}/recordings/active-recording/{meeting_id}
Fetch details of a recording
GET/accounts/{account_id}/realtime/kit/{app_id}/recordings/{recording_id}
Pause/Resume/Stop recording
PUT/accounts/{account_id}/realtime/kit/{app_id}/recordings/{recording_id}
Start recording audio and video tracks
POST/accounts/{account_id}/realtime/kit/{app_id}/recordings/track
ModelsExpand Collapse
RecordingGetRecordingsResponse { data, paging, success }
data: array of { id, audio_download_url, download_url, 11 more }
id: string

ID of the recording

formatuuid
audio_download_url: string

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

formaturi
download_url: string

URL where the recording can be downloaded.

formaturi
download_url_expiry: string

Timestamp when the download URL expires.

formatdate-time
file_size: number

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

ID of the meeting session this recording is for.

formatuuid
started_time: string

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

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

Current status of the recording.

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

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

formatdate-time
meeting: optional { 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: optional boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat: optional boolean

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

record_on_start: optional boolean

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

session_keep_alive_time_in_secs: optional number

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

maximum600
minimum60
status: optional "ACTIVE" or "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: optional boolean

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

title: optional string

Title of the meeting.

recording_duration: optional number

Total recording time in seconds.

storage_config: optional { type, access_key, auth_method, 9 more }
type: "aws" or "azure" or "digitalocean" or 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key: optional 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: optional "KEY" or "PASSWORD"

Authentication method used for “sftp” type storage medium

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

Name of the storage medium’s bucket.

host: optional string

SSH destination server host for SFTP type storage medium

password: optional 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: optional string

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

port: optional number

SSH destination server port for SFTP type storage medium

private_key: optional string

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

region: optional string

Region of the storage medium.

secret: optional string

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

username: optional string

SSH destination server username for SFTP type storage medium

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: optional { id, audio_download_url, download_url, 12 more }

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string

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

formaturi
download_url: string

URL where the recording can be downloaded.

formaturi
download_url_expiry: string

Timestamp when the download URL expires.

formatdate-time
file_size: number

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

ID of the meeting session this recording is for.

formatuuid
started_time: string

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

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

Current status of the recording.

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

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

formatdate-time
recording_duration: optional number

Total recording time in seconds.

start_reason: optional { caller, reason }
caller: optional { name, type, user_Id }
name: optional string

Name of the user who started the recording.

type: optional "ORGANIZATION" or "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: optional string

The user ID of the person who started the recording.

formatuuid
reason: optional "API_CALL" or "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: optional { caller, reason }
caller: optional { name, type, user_Id }
name: optional string

Name of the user who stopped the recording.

type: optional "ORGANIZATION" or "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: optional string

The user ID of the person who stopped the recording.

formatuuid
reason: optional "API_CALL" or "INTERNAL_ERROR" or "ALL_PEERS_LEFT"

Specifies the reason why the recording stopped.

One of the following:
"API_CALL"
"INTERNAL_ERROR"
"ALL_PEERS_LEFT"
storage_config: optional { type, access_key, auth_method, 9 more }
type: "aws" or "azure" or "digitalocean" or 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key: optional 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: optional "KEY" or "PASSWORD"

Authentication method used for “sftp” type storage medium

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

Name of the storage medium’s bucket.

host: optional string

SSH destination server host for SFTP type storage medium

password: optional 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: optional string

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

port: optional number

SSH destination server port for SFTP type storage medium

private_key: optional string

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

region: optional string

Region of the storage medium.

secret: optional string

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

username: optional string

SSH destination server username for SFTP type storage medium

RecordingGetActiveRecordingsResponse { data, success }
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

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

formaturi
download_url: string

URL where the recording can be downloaded.

formaturi
download_url_expiry: string

Timestamp when the download URL expires.

formatdate-time
file_size: number

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

ID of the meeting session this recording is for.

formatuuid
started_time: string

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

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

Current status of the recording.

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

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

formatdate-time
recording_duration: optional number

Total recording time in seconds.

success: boolean

Success status of the operation

RecordingGetOneRecordingResponse { success, data }
success: boolean

Success status of the operation

data: optional { id, audio_download_url, download_url, 12 more }

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string

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

formaturi
download_url: string

URL where the recording can be downloaded.

formaturi
download_url_expiry: string

Timestamp when the download URL expires.

formatdate-time
file_size: number

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

ID of the meeting session this recording is for.

formatuuid
started_time: string

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

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

Current status of the recording.

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

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

formatdate-time
recording_duration: optional number

Total recording time in seconds.

start_reason: optional { caller, reason }
caller: optional { name, type, user_Id }
name: optional string

Name of the user who started the recording.

type: optional "ORGANIZATION" or "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: optional string

The user ID of the person who started the recording.

formatuuid
reason: optional "API_CALL" or "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: optional { caller, reason }
caller: optional { name, type, user_Id }
name: optional string

Name of the user who stopped the recording.

type: optional "ORGANIZATION" or "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: optional string

The user ID of the person who stopped the recording.

formatuuid
reason: optional "API_CALL" or "INTERNAL_ERROR" or "ALL_PEERS_LEFT"

Specifies the reason why the recording stopped.

One of the following:
"API_CALL"
"INTERNAL_ERROR"
"ALL_PEERS_LEFT"
storage_config: optional { type, access_key, auth_method, 9 more }
type: "aws" or "azure" or "digitalocean" or 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key: optional 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: optional "KEY" or "PASSWORD"

Authentication method used for “sftp” type storage medium

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

Name of the storage medium’s bucket.

host: optional string

SSH destination server host for SFTP type storage medium

password: optional 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: optional string

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

port: optional number

SSH destination server port for SFTP type storage medium

private_key: optional string

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

region: optional string

Region of the storage medium.

secret: optional string

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

username: optional string

SSH destination server username for SFTP type storage medium

RecordingPauseResumeStopRecordingResponse { success, data }
success: boolean

Success status of the operation

data: optional { id, audio_download_url, download_url, 12 more }

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string

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

formaturi
download_url: string

URL where the recording can be downloaded.

formaturi
download_url_expiry: string

Timestamp when the download URL expires.

formatdate-time
file_size: number

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

ID of the meeting session this recording is for.

formatuuid
started_time: string

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

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

Current status of the recording.

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

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

formatdate-time
recording_duration: optional number

Total recording time in seconds.

start_reason: optional { caller, reason }
caller: optional { name, type, user_Id }
name: optional string

Name of the user who started the recording.

type: optional "ORGANIZATION" or "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: optional string

The user ID of the person who started the recording.

formatuuid
reason: optional "API_CALL" or "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: optional { caller, reason }
caller: optional { name, type, user_Id }
name: optional string

Name of the user who stopped the recording.

type: optional "ORGANIZATION" or "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: optional string

The user ID of the person who stopped the recording.

formatuuid
reason: optional "API_CALL" or "INTERNAL_ERROR" or "ALL_PEERS_LEFT"

Specifies the reason why the recording stopped.

One of the following:
"API_CALL"
"INTERNAL_ERROR"
"ALL_PEERS_LEFT"
storage_config: optional { type, access_key, auth_method, 9 more }
type: "aws" or "azure" or "digitalocean" or 2 more

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key: optional 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: optional "KEY" or "PASSWORD"

Authentication method used for “sftp” type storage medium

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

Name of the storage medium’s bucket.

host: optional string

SSH destination server host for SFTP type storage medium

password: optional 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: optional string

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

port: optional number

SSH destination server port for SFTP type storage medium

private_key: optional string

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

region: optional string

Region of the storage medium.

secret: optional string

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

username: optional string

SSH destination server username for SFTP type storage medium

Realtime KitWebhooks

Fetch all webhooks details
GET/accounts/{account_id}/realtime/kit/{app_id}/webhooks
Add a webhook
POST/accounts/{account_id}/realtime/kit/{app_id}/webhooks
Fetch details of a webhook
GET/accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
Replace a webhook
PUT/accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
Edit a webhook
PATCH/accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
Delete a webhook
DELETE/accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
ModelsExpand Collapse
WebhookGetWebhooksResponse { data, success }
data: array of { 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 of "meeting.started" or "meeting.ended" or "meeting.participantJoined" or 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: { 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 of "meeting.started" or "meeting.ended" or "meeting.participantJoined" or 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: { 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 of "meeting.started" or "meeting.ended" or "meeting.participantJoined" or 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: { 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 of "meeting.started" or "meeting.ended" or "meeting.participantJoined" or 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: { 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 of "meeting.started" or "meeting.ended" or "meeting.participantJoined" or 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: { 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 of "meeting.started" or "meeting.ended" or "meeting.participantJoined" or 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
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session
Kick participants from an active session
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/kick
Kick all participants
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/kick-all
Create a poll
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/poll
ModelsExpand Collapse
ActiveSessionGetActiveSessionResponse { data, success }
data: optional { 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" or "ENDED"

current status of session

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

type of session

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

timestamp when session was last updated

breakout_rooms: optional array of unknown
ended_at: optional string

timestamp when session ended

meta: optional unknown

Any meta data about session.

success: optional boolean
ActiveSessionKickParticipantsResponse { data, success }
data: optional { action, participants }
action: optional string
participants: optional array of { id, created_at, updated_at, 3 more }
id: string

ID of the session participant

created_at: string
updated_at: string
email: optional string

Email of the session participant.

name: optional string

Name of the session participant.

picture: optional string

A URL pointing to a picture of the participant.

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

ID of the poll

options: array of { count, text, votes }

Answer options

count: number
text: string

Text of the answer option

votes: array of { id, name }
id: string
name: string
question: string

Question asked by the poll

anonymous: optional boolean
created_by: optional string
hide_votes: optional boolean
voted: optional array of string
success: optional boolean

Realtime KitLivestreams

Create an independent livestream
POST/accounts/{account_id}/realtime/kit/{app_id}/livestreams
Fetch all livestreams
GET/accounts/{account_id}/realtime/kit/{app_id}/livestreams
Stop livestreaming a meeting
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-livestream/stop
Start livestreaming a meeting
POST/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/livestreams
Fetch complete analytics data for your livestreams
GET/accounts/{account_id}/realtime/kit/{app_id}/analytics/livestreams/overall
Fetch day-wise session and recording analytics data for an App
GET/accounts/{account_id}/realtime/kit/{app_id}/analytics/daywise
Fetch active livestreams for a meeting
GET/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-livestream
Fetch livestream session details using livestream session ID
GET/accounts/{account_id}/realtime/kit/{app_id}/livestreams/sessions/{livestream-session-id}
Fetch active livestream session details
GET/accounts/{account_id}/realtime/kit/{app_id}/livestreams/{livestream_id}/active-livestream-session
Fetch livestream details using livestream ID
GET/accounts/{account_id}/realtime/kit/{app_id}/livestreams/{livestream_id}
ModelsExpand Collapse
LivestreamCreateIndependentLivestreamResponse { data, success }
data: optional { id, disabled, ingest_server, 5 more }
id: optional string

The livestream ID.

disabled: optional boolean

Specifies if the livestream was disabled.

ingest_server: optional string

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

meeting_id: optional string
name: optional string
playback_url: optional string

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

status: optional "LIVE" or "IDLE" or "ERRORED" or "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key: optional string

Unique key for accessing each livestream.

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

The ID of the livestream.

formatuuid
created_at: optional string

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

formatdate-time
disabled: optional string

Specifies if the livestream was disabled.

ingest_server: optional string

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

meeting_id: optional string

ID of the meeting.

name: optional string

Name of the livestream.

paging: optional { end_offset, start_offset, total_count }
end_offset: optional number
start_offset: optional number
total_count: optional number
playback_url: optional string

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

status: optional "LIVE" or "IDLE" or "ERRORED" or "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key: optional string

Unique key for accessing each livestream.

updated_at: optional string

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

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

The livestream ID.

ingest_server: optional string

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

playback_url: optional string

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

status: optional "LIVE" or "IDLE" or "ERRORED" or "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key: optional string

Unique key for accessing each livestream.

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

Count of total livestreams.

total_ingest_seconds: optional number

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

total_viewer_seconds: optional number

Total view time for which the viewers watched the stream.

success: optional boolean
LivestreamGetOrgAnalyticsResponse { data, success }
data: optional { recording_stats, session_stats }
recording_stats: optional { day_stats, recording_count, recording_minutes_consumed }

Recording statistics of an App during the range specified

day_stats: optional array of { day, total_recording_minutes, total_recordings }

Day wise recording stats

day: optional string
total_recording_minutes: optional number

Total recording minutes for a specific day

total_recordings: optional number

Total number of recordings for a specific day

recording_count: optional number

Total number of recordings during the range specified

recording_minutes_consumed: optional number

Total recording minutes during the range specified

session_stats: optional { day_stats, sessions_count, sessions_minutes_consumed }

Session statistics of an App during the range specified

day_stats: optional array of { day, total_session_minutes, total_sessions }

Day wise session stats

day: optional string
total_session_minutes: optional number

Total session minutes for a specific day

total_sessions: optional number

Total number of sessions for a specific day

sessions_count: optional number

Total number of sessions during the range specified

sessions_minutes_consumed: optional number

Total session minutes during the range specified

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

The livestream ID.

created_at: optional string

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

formatdate-time
disabled: optional string

Specifies if the livestream was disabled.

ingest_server: optional string

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

meeting_id: optional string
name: optional string

Name of the livestream.

playback_url: optional string

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

status: optional "LIVE" or "IDLE" or "ERRORED" or "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key: optional string

Unique key for accessing each livestream.

updated_at: optional string

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

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

The livestream ID.

created_at: optional string

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

formatdate-time
err_message: optional string

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

ingest_seconds: optional number

Name of the livestream.

livestream_id: optional string
started_time: optional string

Unique key for accessing each livestream.

stopped_time: optional string

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

updated_at: optional string

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

viewer_seconds: optional number

Specifies if the livestream was disabled.

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

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

formatdate-time
disabled: optional string

Specifies if the livestream was disabled.

ingest_server: optional string

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

meeting_id: optional string

ID of the meeting.

name: optional string

Name of the livestream.

playback_url: optional string

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

status: optional "LIVE" or "IDLE" or "ERRORED" or "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key: optional string

Unique key for accessing each livestream.

updated_at: optional string

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

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

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

formatdate-time
err_message: optional string
ingest_seconds: optional string

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

invoked_time: optional string

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

formatdate-time
livestream_id: optional string
started_time: optional string

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

formatdate-time
stopped_time: optional string

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

formatdate-time
updated_at: optional string

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

formatdate-time
viewer_seconds: optional string

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

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

ID of the livestream.

created_at: optional string

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

disabled: optional string

Specifies if the livestream was disabled.

ingest_server: optional string

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

meeting_id: optional string

The ID of the meeting.

name: optional string

Name of the livestream.

playback_url: optional string

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

status: optional "LIVE" or "IDLE" or "ERRORED" or "INVOKED"
One of the following:
"LIVE"
"IDLE"
"ERRORED"
"INVOKED"
stream_key: optional string

Unique key for accessing each livestream.

updated_at: optional string

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

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

ID of the session.

created_at: optional string

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

formatdate-time
err_message: optional string
ingest_seconds: optional number

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

invoked_time: optional string

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

formatdate-time
livestream_id: optional string
started_time: optional string

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

formatdate-time
stopped_time: optional string

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

formatdate-time
updated_at: optional string

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

formatdate-time
viewer_seconds: optional number

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

success: optional boolean

Realtime KitAnalytics

Fetch day-wise session and recording analytics data for an App
GET/accounts/{account_id}/realtime/kit/{app_id}/analytics/daywise
ModelsExpand Collapse
AnalyticsGetOrgAnalyticsResponse { data, success }
data: optional { recording_stats, session_stats }
recording_stats: optional { day_stats, recording_count, recording_minutes_consumed }

Recording statistics of an App during the range specified

day_stats: optional array of { day, total_recording_minutes, total_recordings }

Day wise recording stats

day: optional string
total_recording_minutes: optional number

Total recording minutes for a specific day

total_recordings: optional number

Total number of recordings for a specific day

recording_count: optional number

Total number of recordings during the range specified

recording_minutes_consumed: optional number

Total recording minutes during the range specified

session_stats: optional { day_stats, sessions_count, sessions_minutes_consumed }

Session statistics of an App during the range specified

day_stats: optional array of { day, total_session_minutes, total_sessions }

Day wise session stats

day: optional string
total_session_minutes: optional number

Total session minutes for a specific day

total_sessions: optional number

Total number of sessions for a specific day

sessions_count: optional number

Total number of sessions during the range specified

sessions_minutes_consumed: optional number

Total session minutes during the range specified

success: optional boolean