## Fetch all recordings for an App **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. ### Path Parameters - `account_id: string` The account identifier tag. - `app_id: string` The app identifier tag. ### Query Parameters - `end_time: optional string` The end time range for which you want to retrieve the meetings. The time must be specified in ISO format. - `expired: optional boolean` If passed, only shows expired/non-expired recordings on RealtimeKit's bucket - `meeting_id: optional string` ID of a meeting. Optional. Will limit results to only this meeting if passed. - `page_no: optional number` The page number from which you want your page search results to be displayed. - `per_page: optional number` Number of results per page - `search: optional string` The search query string. You can search using the meeting ID or title. - `sort_by: optional "invokedTime"` - `"invokedTime"` - `sort_order: optional "ASC" or "DESC"` - `"ASC"` - `"DESC"` - `start_time: optional string` The start time range for which you want to retrieve the meetings. The time must be specified in ISO format. - `status: optional array of "INVOKED" or "RECORDING" or "UPLOADING" or "UPLOADED"` Filter by one or more recording status - `"INVOKED"` - `"RECORDING"` - `"UPLOADING"` - `"UPLOADED"` ### Returns - `data: array of { id, audio_download_url, download_url, 11 more }` - `id: string` ID of the recording - `audio_download_url: string` If the audio_config is passed, the URL for downloading the audio recording is returned. - `download_url: string` URL where the recording can be downloaded. - `download_url_expiry: string` Timestamp when the download URL expires. - `file_size: number` File size of the recording, in bytes. - `invoked_time: string` Timestamp when this recording was invoked. - `output_file_name: string` File name of the recording. - `session_id: string` ID of the meeting session this recording is for. - `started_time: string` Timestamp when this recording actually started after being invoked. Usually a few seconds after `invoked_time`. - `status: "INVOKED" or "RECORDING" or "UPLOADING" or 3 more` Current status of the recording. - `"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. - `meeting: optional { id, created_at, updated_at, 7 more }` - `id: string` ID of the meeting. - `created_at: string` Timestamp the object was created at. The time is returned in ISO format. - `updated_at: string` Timestamp the object was updated at. The time is returned in ISO format. - `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. - `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. - `status: optional "ACTIVE" or "INACTIVE"` Whether the meeting is `ACTIVE` or `INACTIVE`. Users will not be able to join an `INACTIVE` meeting. - `"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. - `recording_duration: optional number` Total recording time in seconds. - `storage_config: optional { type, access_key, auth_method, 9 more }` - `type: "aws" or "azure" or "digitalocean" or 2 more` Type of storage media. - `"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 - `"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: { end_offset, start_offset, total_count }` - `end_offset: number` - `start_offset: number` - `total_count: number` - `success: boolean` ### Example ```http curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/recordings \ -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" ``` #### Response ```json { "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 } ```