Skip to content
Start here

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}

Returns details of a recording for the given recording 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
recordingId: string
params: RecordingGetOneRecordingParams { account_id }
account_id: string

The account identifier tag.

maxLength32
ReturnsExpand Collapse
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

Fetch details of a recording

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.getOneRecording('app_id', 'recording_id', {
  account_id: '023e105f4ecef8ad9ca31a8372d0c353',
});

console.log(response.success);
{
  "success": true,
  "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",
    "recording_duration": 0,
    "start_reason": {
      "caller": {
        "name": "RealtimeKit_test",
        "type": "ORGANIZATION",
        "user_Id": "d61f6956-e68f-4375-bf10-c38a704d1bec"
      },
      "reason": "API_CALL"
    },
    "stop_reason": {
      "caller": {
        "name": "RealtimeKit_test",
        "type": "ORGANIZATION",
        "user_Id": "d61f6956-e68f-4375-bf10-c38a704d1bec"
      },
      "reason": "API_CALL"
    },
    "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"
    }
  }
}
Returns Examples
{
  "success": true,
  "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",
    "recording_duration": 0,
    "start_reason": {
      "caller": {
        "name": "RealtimeKit_test",
        "type": "ORGANIZATION",
        "user_Id": "d61f6956-e68f-4375-bf10-c38a704d1bec"
      },
      "reason": "API_CALL"
    },
    "stop_reason": {
      "caller": {
        "name": "RealtimeKit_test",
        "type": "ORGANIZATION",
        "user_Id": "d61f6956-e68f-4375-bf10-c38a704d1bec"
      },
      "reason": "API_CALL"
    },
    "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"
    }
  }
}