Skip to content
Start here

Recordings

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

ID of the recording

formatuuid
audio_download_url: string | null

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

formaturi
download_url: string | null

URL where the recording can be downloaded.

formaturi
download_url_expiry: string | null

Timestamp when the download URL expires.

formatdate-time
file_size: number | null

File size of the recording, in bytes.

invoked_time: string

Timestamp when this recording was invoked.

formatdate-time
output_file_name: string

File name of the recording.

session_id: string | null

ID of the meeting session this recording is for.

formatuuid
started_time: string | null

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

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

Current status of the recording.

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

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

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

ID of the meeting.

formatuuid
created_at: string

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

formatdate-time
updated_at: string

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

formatdate-time
live_stream_on_start?: boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat?: boolean

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

record_on_start?: boolean

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

session_keep_alive_time_in_secs?: number

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

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

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

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

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

title?: string

Title of the meeting.

recording_duration?: number

Total recording time in seconds.

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

Type of storage media.

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

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

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

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

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

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

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

path?: string

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

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

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

region?: string

Region of the storage medium.

secret?: string

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

username?: string

SSH destination server username for SFTP type storage medium

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

Success status of the operation

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

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string | null

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

formaturi
download_url: string | null

URL where the recording can be downloaded.

formaturi
download_url_expiry: string | null

Timestamp when the download URL expires.

formatdate-time
file_size: number | null

File size of the recording, in bytes.

invoked_time: string

Timestamp when this recording was invoked.

formatdate-time
output_file_name: string

File name of the recording.

session_id: string | null

ID of the meeting session this recording is for.

formatuuid
started_time: string | null

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

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

Current status of the recording.

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

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

formatdate-time
recording_duration?: number

Total recording time in seconds.

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

Name of the user who started the recording.

type?: "ORGANIZATION" | "USER"

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

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

The user ID of the person who started the recording.

formatuuid
reason?: "API_CALL" | "RECORD_ON_START"

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

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

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

Name of the user who stopped the recording.

type?: "ORGANIZATION" | "USER"

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

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

The user ID of the person who stopped the recording.

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

Specifies the reason why the recording stopped.

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

Type of storage media.

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

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

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

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

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

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

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

path?: string

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

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

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

region?: string

Region of the storage medium.

secret?: string

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

username?: string

SSH destination server username for SFTP type storage medium

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

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string | null

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

formaturi
download_url: string | null

URL where the recording can be downloaded.

formaturi
download_url_expiry: string | null

Timestamp when the download URL expires.

formatdate-time
file_size: number | null

File size of the recording, in bytes.

invoked_time: string

Timestamp when this recording was invoked.

formatdate-time
output_file_name: string

File name of the recording.

session_id: string | null

ID of the meeting session this recording is for.

formatuuid
started_time: string | null

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

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

Current status of the recording.

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

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

formatdate-time
recording_duration?: number

Total recording time in seconds.

success: boolean

Success status of the operation

RecordingGetOneRecordingResponse { success, data }
success: boolean

Success status of the operation

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

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string | null

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

formaturi
download_url: string | null

URL where the recording can be downloaded.

formaturi
download_url_expiry: string | null

Timestamp when the download URL expires.

formatdate-time
file_size: number | null

File size of the recording, in bytes.

invoked_time: string

Timestamp when this recording was invoked.

formatdate-time
output_file_name: string

File name of the recording.

session_id: string | null

ID of the meeting session this recording is for.

formatuuid
started_time: string | null

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

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

Current status of the recording.

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

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

formatdate-time
recording_duration?: number

Total recording time in seconds.

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

Name of the user who started the recording.

type?: "ORGANIZATION" | "USER"

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

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

The user ID of the person who started the recording.

formatuuid
reason?: "API_CALL" | "RECORD_ON_START"

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

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

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

Name of the user who stopped the recording.

type?: "ORGANIZATION" | "USER"

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

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

The user ID of the person who stopped the recording.

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

Specifies the reason why the recording stopped.

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

Type of storage media.

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

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

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

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

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

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

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

path?: string

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

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

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

region?: string

Region of the storage medium.

secret?: string

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

username?: string

SSH destination server username for SFTP type storage medium

RecordingPauseResumeStopRecordingResponse { success, data }
success: boolean

Success status of the operation

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

Data returned by the operation

id: string

ID of the recording

formatuuid
audio_download_url: string | null

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

formaturi
download_url: string | null

URL where the recording can be downloaded.

formaturi
download_url_expiry: string | null

Timestamp when the download URL expires.

formatdate-time
file_size: number | null

File size of the recording, in bytes.

invoked_time: string

Timestamp when this recording was invoked.

formatdate-time
output_file_name: string

File name of the recording.

session_id: string | null

ID of the meeting session this recording is for.

formatuuid
started_time: string | null

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

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

Current status of the recording.

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

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

formatdate-time
recording_duration?: number

Total recording time in seconds.

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

Name of the user who started the recording.

type?: "ORGANIZATION" | "USER"

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

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

The user ID of the person who started the recording.

formatuuid
reason?: "API_CALL" | "RECORD_ON_START"

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

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

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

Name of the user who stopped the recording.

type?: "ORGANIZATION" | "USER"

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

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

The user ID of the person who stopped the recording.

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

Specifies the reason why the recording stopped.

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

Type of storage media.

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

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

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

auth_method?: "KEY" | "PASSWORD"

Authentication method used for "sftp" type storage medium

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

Name of the storage medium's bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

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

path?: string

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

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

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

region?: string

Region of the storage medium.

secret?: string

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

username?: string

SSH destination server username for SFTP type storage medium