Skip to content
Start here

Recordings

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 participant audio tracks
POST/accounts/{account_id}/realtime/kit/{app_id}/recordings/track
ModelsExpand Collapse
RecordingGetRecordingsResponse object { data, paging, success }
data: array of object { 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 object { id, created_at, updated_at, 9 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.

recording_config: optional object { 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 object { 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 object { 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 object { 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 object { 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 object { 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 object { 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 object { 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.

transcribe_on_end: optional boolean

Automatically generate transcripts when the meeting ends.

recording_duration: optional number

Total recording time in seconds.

storage_config: optional object { 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: object { end_offset, start_offset, total_count }
end_offset: number
start_offset: number
total_count: number
minimum0
success: boolean
RecordingStartRecordingsResponse object { success, data }
success: boolean

Success status of the operation

data: optional object { 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 object { caller, reason }
caller: optional object { 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 object { caller, reason }
caller: optional object { 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 object { 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 object { data, success }
data: object { 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 object { success, data }
success: boolean

Success status of the operation

data: optional object { 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 object { caller, reason }
caller: optional object { 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 object { caller, reason }
caller: optional object { 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 object { 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 object { success, data }
success: boolean

Success status of the operation

data: optional object { 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 object { caller, reason }
caller: optional object { 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 object { caller, reason }
caller: optional object { 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 object { 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

RecordingStartTrackRecordingResponse object { success, data }
success: boolean

Success status of the operation

data: optional object { recording }

Data returned by the operation

recording: object { id, audio_download_url, download_url, 9 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
recording_duration: optional number

Total recording time in seconds.