Skip to content
Start here

Fetch all recordings for an App

client.RealtimeKit.Recordings.GetRecordings(ctx, appID, params) (*RecordingGetRecordingsResponse, error)
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
AccountID param.Field[string]

Path param: The account identifier tag.

maxLength32
EndTime param.Field[Time]optional

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 param.Field[bool]optional

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

MeetingID param.Field[string]optional

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

formatuuid
PageNo param.Field[float64]optional

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

minimum0
PerPage param.Field[float64]optional

Query param: Number of results per page

minimum0
SortBy param.Field[RecordingGetRecordingsParamsSortBy]optional

Query param

const RecordingGetRecordingsParamsSortByInvokedTime RecordingGetRecordingsParamsSortBy = "invokedTime"
SortOrder param.Field[RecordingGetRecordingsParamsSortOrder]optional

Query param

const RecordingGetRecordingsParamsSortOrderAsc RecordingGetRecordingsParamsSortOrder = "ASC"
const RecordingGetRecordingsParamsSortOrderDesc RecordingGetRecordingsParamsSortOrder = "DESC"
StartTime param.Field[Time]optional

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 param.Field[[]RecordingGetRecordingsParamsStatus]optional

Query param: Filter by one or more recording status

const RecordingGetRecordingsParamsStatusInvoked RecordingGetRecordingsParamsStatus = "INVOKED"
const RecordingGetRecordingsParamsStatusRecording RecordingGetRecordingsParamsStatus = "RECORDING"
const RecordingGetRecordingsParamsStatusUploading RecordingGetRecordingsParamsStatus = "UPLOADING"
const RecordingGetRecordingsParamsStatusUploaded RecordingGetRecordingsParamsStatus = "UPLOADED"
ReturnsExpand Collapse
type RecordingGetRecordingsResponse struct{…}
Data []RecordingGetRecordingsResponseData
ID string

ID of the recording

formatuuid
AudioDownloadURL string

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

formaturi
DownloadURL string

URL where the recording can be downloaded.

formaturi
DownloadURLExpiry Time

Timestamp when the download URL expires.

formatdate-time
FileSize float64

File size of the recording, in bytes.

InvokedTime Time

Timestamp when this recording was invoked.

formatdate-time
OutputFileName string

File name of the recording.

SessionID string

ID of the meeting session this recording is for.

formatuuid
StartedTime Time

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

formatdate-time
Status RecordingGetRecordingsResponseDataStatus

Current status of the recording.

One of the following:
const RecordingGetRecordingsResponseDataStatusInvoked RecordingGetRecordingsResponseDataStatus = "INVOKED"
const RecordingGetRecordingsResponseDataStatusRecording RecordingGetRecordingsResponseDataStatus = "RECORDING"
const RecordingGetRecordingsResponseDataStatusUploading RecordingGetRecordingsResponseDataStatus = "UPLOADING"
const RecordingGetRecordingsResponseDataStatusUploaded RecordingGetRecordingsResponseDataStatus = "UPLOADED"
const RecordingGetRecordingsResponseDataStatusErrored RecordingGetRecordingsResponseDataStatus = "ERRORED"
const RecordingGetRecordingsResponseDataStatusPaused RecordingGetRecordingsResponseDataStatus = "PAUSED"
StoppedTime Time

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

formatdate-time
Meeting RecordingGetRecordingsResponseDataMeetingoptional
ID string

ID of the meeting.

formatuuid
CreatedAt Time

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

formatdate-time
UpdatedAt Time

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

formatdate-time
LiveStreamOnStart booloptional

Specifies if the meeting should start getting livestreamed on start.

PersistChat booloptional

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

RecordOnStart booloptional

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

SessionKeepAliveTimeInSecs float64optional

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

maximum600
minimum60
Status RecordingGetRecordingsResponseDataMeetingStatusoptional

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

One of the following:
const RecordingGetRecordingsResponseDataMeetingStatusActive RecordingGetRecordingsResponseDataMeetingStatus = "ACTIVE"
const RecordingGetRecordingsResponseDataMeetingStatusInactive RecordingGetRecordingsResponseDataMeetingStatus = "INACTIVE"
SummarizeOnEnd booloptional

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

Title stringoptional

Title of the meeting.

RecordingDuration int64optional

Total recording time in seconds.

StorageConfig RecordingGetRecordingsResponseDataStorageConfigoptional
Type RecordingGetRecordingsResponseDataStorageConfigType

Type of storage media.

One of the following:
const RecordingGetRecordingsResponseDataStorageConfigTypeAws RecordingGetRecordingsResponseDataStorageConfigType = "aws"
const RecordingGetRecordingsResponseDataStorageConfigTypeAzure RecordingGetRecordingsResponseDataStorageConfigType = "azure"
const RecordingGetRecordingsResponseDataStorageConfigTypeDigitalocean RecordingGetRecordingsResponseDataStorageConfigType = "digitalocean"
const RecordingGetRecordingsResponseDataStorageConfigTypeGcs RecordingGetRecordingsResponseDataStorageConfigType = "gcs"
const RecordingGetRecordingsResponseDataStorageConfigTypeSftp RecordingGetRecordingsResponseDataStorageConfigType = "sftp"
AccessKey stringoptional

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.

AuthMethod RecordingGetRecordingsResponseDataStorageConfigAuthMethodoptional

Authentication method used for "sftp" type storage medium

One of the following:
const RecordingGetRecordingsResponseDataStorageConfigAuthMethodKey RecordingGetRecordingsResponseDataStorageConfigAuthMethod = "KEY"
const RecordingGetRecordingsResponseDataStorageConfigAuthMethodPassword RecordingGetRecordingsResponseDataStorageConfigAuthMethod = "PASSWORD"
Bucket stringoptional

Name of the storage medium's bucket.

Host stringoptional

SSH destination server host for SFTP type storage medium

Password stringoptional

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 stringoptional

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

Port float64optional

SSH destination server port for SFTP type storage medium

PrivateKey stringoptional

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

Region stringoptional

Region of the storage medium.

Secret stringoptional

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

Username stringoptional

SSH destination server username for SFTP type storage medium

Paging RecordingGetRecordingsResponsePaging
EndOffset float64
StartOffset float64
TotalCount float64
minimum0
Success bool

Fetch all recordings for an App

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/realtime_kit"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.RealtimeKit.Recordings.GetRecordings(
    context.TODO(),
    "app_id",
    realtime_kit.RecordingGetRecordingsParams{
      AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", 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,
        "session_keep_alive_time_in_secs": 60,
        "status": "ACTIVE",
        "summarize_on_end": true,
        "title": "title"
      },
      "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,
        "session_keep_alive_time_in_secs": 60,
        "status": "ACTIVE",
        "summarize_on_end": true,
        "title": "title"
      },
      "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
}