Skip to content
Start here

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

Returns all recordings for an App. If the meeting_id parameter is passed, returns all recordings for the given meeting ID.

Security

API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
Accepted Permissions (at least one required)
Realtime AdminRealtime
ParametersExpand Collapse
appId: string

The app identifier tag.

maxLength32
params: RecordingGetRecordingsParams { account_id, end_time, expired, 8 more }
account_id: string

Path param: The account identifier tag.

maxLength32
end_time?: string

Query param: The end time range for which you want to retrieve the meetings. The time must be specified in ISO format.

formatdate-time
expired?: boolean

Query param: If passed, only shows expired/non-expired recordings on RealtimeKit’s bucket

meeting_id?: string

Query param: ID of a meeting. Optional. Will limit results to only this meeting if passed.

formatuuid
page_no?: number

Query param: The page number from which you want your page search results to be displayed.

minimum0
per_page?: number

Query param: Number of results per page

minimum0
sort_by?: "invokedTime"

Query param

sort_order?: "ASC" | "DESC"

Query param

One of the following:
"ASC"
"DESC"
start_time?: string

Query param: The start time range for which you want to retrieve the meetings. The time must be specified in ISO format.

formatdate-time
status?: Array<"INVOKED" | "RECORDING" | "UPLOADING" | "UPLOADED">

Query param: Filter by one or more recording status

One of the following:
"INVOKED"
"RECORDING"
"UPLOADING"
"UPLOADED"
ReturnsExpand 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, 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?: boolean

Specifies if the meeting should start getting livestreamed on start.

persist_chat?: boolean

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

record_on_start?: boolean

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

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

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

audio_config?: AudioConfig { channel, codec, export_file }

Object containing configuration regarding the audio that is being recorded.

channel?: "mono" | "stereo"

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

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

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

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

Controls whether to export audio file seperately

file_name_prefix?: string

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

live_streaming_config?: LiveStreamingConfig { rtmp_url }
rtmp_url?: string

RTMP URL to stream to

formaturi
max_seconds?: number

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

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

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

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

Type of storage media.

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

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

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

auth_method?: "KEY" | "PASSWORD"

Authentication method used for “sftp” type storage medium

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

Name of the storage medium’s bucket.

host?: string

SSH destination server host for SFTP type storage medium

password?: string

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

path?: string

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

port?: number

SSH destination server port for SFTP type storage medium

private_key?: string

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

region?: string

Region of the storage medium.

secret?: string

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

username?: string

SSH destination server username for SFTP type storage medium

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

Codec using which the recording will be encoded.

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

Controls whether to export video file seperately

height?: number

Height of the recording video in pixels

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

Watermark to be added to the recording

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

Position of the watermark

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

Size of the watermark

height?: number

Height of the watermark in px

minimum1
width?: number

Width of the watermark in px

minimum1
url?: string

URL of the watermark image

formaturi
width?: number

Width of the recording video in pixels

maximum1920
minimum1
session_keep_alive_time_in_secs?: number

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

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

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

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

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

title?: string

Title of the meeting.

transcribe_on_end?: boolean

Automatically generate transcripts when the meeting ends.

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

Fetch all recordings for an App

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const response = await client.realtimeKit.recordings.getRecordings('app_id', {
  account_id: '023e105f4ecef8ad9ca31a8372d0c353',
});

console.log(response.data);
{
  "data": [
    {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "audio_download_url": "https://example.com",
      "download_url": "https://example.com",
      "download_url_expiry": "2019-12-27T18:11:19.117Z",
      "file_size": 0,
      "invoked_time": "2019-12-27T18:11:19.117Z",
      "output_file_name": "output_file_name",
      "session_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "started_time": "2019-12-27T18:11:19.117Z",
      "status": "INVOKED",
      "stopped_time": "2019-12-27T18:11:19.117Z",
      "meeting": {
        "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "created_at": "2019-12-27T18:11:19.117Z",
        "updated_at": "2019-12-27T18:11:19.117Z",
        "live_stream_on_start": true,
        "persist_chat": true,
        "record_on_start": true,
        "recording_config": {
          "audio_config": {
            "channel": "mono",
            "codec": "MP3",
            "export_file": true
          },
          "file_name_prefix": "file_name_prefix",
          "live_streaming_config": {
            "rtmp_url": "rtmp://a.rtmp.youtube.com/live2"
          },
          "max_seconds": 60,
          "realtimekit_bucket_config": {
            "enabled": true
          },
          "storage_config": {
            "type": "aws",
            "auth_method": "KEY",
            "bucket": "bucket",
            "host": "host",
            "password": "password",
            "path": "path",
            "port": 0,
            "private_key": "private_key",
            "region": "us-east-1",
            "secret": "secret",
            "username": "username"
          },
          "video_config": {
            "codec": "H264",
            "export_file": true,
            "height": 720,
            "watermark": {
              "position": "left top",
              "size": {
                "height": 1,
                "width": 1
              },
              "url": "https://example.com"
            },
            "width": 1280
          }
        },
        "session_keep_alive_time_in_secs": 60,
        "status": "ACTIVE",
        "summarize_on_end": true,
        "title": "title",
        "transcribe_on_end": true
      },
      "recording_duration": 0,
      "storage_config": {
        "type": "aws",
        "auth_method": "KEY",
        "bucket": "bucket",
        "host": "host",
        "password": "password",
        "path": "path",
        "port": 0,
        "private_key": "private_key",
        "region": "us-east-1",
        "secret": "secret",
        "username": "username"
      }
    }
  ],
  "paging": {
    "end_offset": 30,
    "start_offset": 1,
    "total_count": 30
  },
  "success": true
}
Returns Examples
{
  "data": [
    {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "audio_download_url": "https://example.com",
      "download_url": "https://example.com",
      "download_url_expiry": "2019-12-27T18:11:19.117Z",
      "file_size": 0,
      "invoked_time": "2019-12-27T18:11:19.117Z",
      "output_file_name": "output_file_name",
      "session_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "started_time": "2019-12-27T18:11:19.117Z",
      "status": "INVOKED",
      "stopped_time": "2019-12-27T18:11:19.117Z",
      "meeting": {
        "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "created_at": "2019-12-27T18:11:19.117Z",
        "updated_at": "2019-12-27T18:11:19.117Z",
        "live_stream_on_start": true,
        "persist_chat": true,
        "record_on_start": true,
        "recording_config": {
          "audio_config": {
            "channel": "mono",
            "codec": "MP3",
            "export_file": true
          },
          "file_name_prefix": "file_name_prefix",
          "live_streaming_config": {
            "rtmp_url": "rtmp://a.rtmp.youtube.com/live2"
          },
          "max_seconds": 60,
          "realtimekit_bucket_config": {
            "enabled": true
          },
          "storage_config": {
            "type": "aws",
            "auth_method": "KEY",
            "bucket": "bucket",
            "host": "host",
            "password": "password",
            "path": "path",
            "port": 0,
            "private_key": "private_key",
            "region": "us-east-1",
            "secret": "secret",
            "username": "username"
          },
          "video_config": {
            "codec": "H264",
            "export_file": true,
            "height": 720,
            "watermark": {
              "position": "left top",
              "size": {
                "height": 1,
                "width": 1
              },
              "url": "https://example.com"
            },
            "width": 1280
          }
        },
        "session_keep_alive_time_in_secs": 60,
        "status": "ACTIVE",
        "summarize_on_end": true,
        "title": "title",
        "transcribe_on_end": true
      },
      "recording_duration": 0,
      "storage_config": {
        "type": "aws",
        "auth_method": "KEY",
        "bucket": "bucket",
        "host": "host",
        "password": "password",
        "path": "path",
        "port": 0,
        "private_key": "private_key",
        "region": "us-east-1",
        "secret": "secret",
        "username": "username"
      }
    }
  ],
  "paging": {
    "end_offset": 30,
    "start_offset": 1,
    "total_count": 30
  },
  "success": true
}