Storage and Data Retention
Configure how long Recall stores recording media, understand storage charges, and delete recordings when your application no longer needs them.
Recall.ai can store recordings and their associated media so your application can retrieve them after a meeting. You control how long that media is retained: configure automatic expiration, keep it until you explicitly delete it, or disable recording-media storage altogether with Zero Data Retention.
Setting a data retention policy
Set the retention field in the recording configuration when creating a recording (e.g., recording_config.retention). For example, you can provide the recording configuration when creating a bot, creating a Desktop SDK upload, or creating a Meeting Direct Connect session, or when calling Start Recording.
| Policy | Configuration | Behavior |
|---|---|---|
| Timed | {"type": "timed", "hours": 168} | Automatically deletes recording media after the configured duration. |
| Forever | {"type": "forever"} | Retains recording media until you explicitly delete it. |
| Zero Data Retention | null | Disables recording-media storage. Your application receives meeting data through configured real-time streams. |
For example, retain recording media for seven days:
{
"recording_config": {
"retention": {
"type": "timed",
"hours": 168
}
}
}Start Recording accepts the recording configuration directly, so use retention at the top level of that request.
For timed retention, specify the duration in hours. The retention period begins when the recording transitions to done; check expires_at on the recording for its expiration timestamp.
Default retentionIf you omit
recording_config.retention, the default depends on when your account was created:
- Before June 12, 2025: Recording media expires after seven days.
- After June 12, 2025: Recording media is retained indefinitely.
Configure retention explicitly in your application to ensure consistent behavior.
Configuring retention for meeting bots
For meeting bots, where you configure retention depends on how the recording starts:
- Automatic recording: Set retention in the bot’s recording configuration. To change the configuration of a scheduled bot before it joins, use Update Scheduled Bot. For bots scheduled through Calendar V2, use Schedule Bot For Calendar Event.
- Manually started recording: Set
retentionon each Start Recording request. This endpoint accepts the recording configuration directly in the request body and does not inherit it from a previous recording.
Changing your application’s configuration does not delete existing stored recordings. To remove media already stored by Recall, use the deletion endpoints below.
Expiration and deletion
Recording media is deleted automatically when its timed retention period ends. You can also delete stored media manually through the API. When the recording expires and/or is deleted, Recall sends a recording.deleted Status Change Webhook. Recording deletion removes the recording and its associated media but other data follows separate retention policies; see Data outside recording retention.
Deletion is permanentExpired or deleted recording media cannot be recovered. Recall does not retain backups or archives of deleted recording media. Download any outputs your application needs before deleting them or allowing them to expire.
Automatic recording expiration
Retrieve the Recording and inspect expires_at to see when its media will expire:
{
"id": "a5437136-4b69-429a-9e0c-cd388fd8fee6",
"expires_at": "2026-10-07T12:00:00Z"
}If expires_at is null, no expiration timestamp is currently set so the recording will never expire. This does not mean Zero Data Retention is enabled; check the recording’s retention configuration.
Download URLs are temporary access links and expire separately. If a download URL expires while the media is still stored, retrieve the recording again to obtain a fresh URL. A new URL cannot restore deleted media. See Video Playback for signed-URL handling.
Manual recording deletion
Use Delete Recording to delete a recording and its associated media, or Delete Bot Media to delete all recording media stored for a bot. Expiration and manual deletion remove recording media.
Zero Data Retention
To disable recording-media storage from the start, use Zero Data Retention. See Zero Data Retention for setup, supported transcription configurations, delivery limitations, and the distinction between Zero Data Retention and temporary storage followed by deletion.
Data retention scope
Recording Media
Recording retention applies to the media produced by a recording, including audio, video, transcripts, participant events, speaker timelines, and captured meeting metadata. See Recordings and Media for the available media types.
Custom metadata, bot meeting URLs, diagnostic logs, and other integration data are outside the scope of recording-media retention. See Data outside recording retention.
Data outside recording retention
Recording retention controls stored recording media. Other data follows separate policies:
| Data | Retention and deletion behavior |
|---|---|
| Custom bot metadata | Stored indefinitely; not deleted when recording media expires or is deleted. |
| Bot meeting URL | Not deleted when recording media expires or is deleted. Cleared 14 days after the bot terminates. |
| Diagnostic logs | Stored temporarily; not deleted when recording media expires or is deleted. Diagnostic logs do not contain recording media or captured participant/meeting content. They follow a separate seven-day retention policy and are not deleted by recording-media deletion. |
| API/request metadata and telemetry | Stored temporarily; not deleted when recording media expires or is deleted. Follow separate retention policies. |
| Calendar events | Retained up to 60 days in the past for Calendar V1 and V2, then automatically removed. Recording-media expiration or deletion does not change this policy. See Calendar Integration FAQ. |
| Data held by third-party transcription providers | Governed by the provider’s settings and agreement. Recall’s retention configuration does not change those policies. |
Because these separately retained records contain no recording media or captured participant or meeting content, they cannot be used to recover expired or deleted recording media.
Pricing
The first 168 hours (seven days) of recording-media storage are free. After that, storage is billed at $0.000069 USD per hour_hour.
One hour_hour is one hour of recording media stored for one billable hour. Usage depends on both the recording’s duration and how long its media remains stored.
Storage is billed for recording media as a whole, at the same rate regardless of which media types you configure. A one-hour transcript-only recording incurs the same storage charge as a one-hour recording containing audio, video, and transcripts. Media types are not billed separately or added together.
Billable storage-hours = max(total storage-hours − 168, 0)
Usage (hour_hour) = recording duration in hours × billable storage-hours
Storage cost = usage (hour_hour) × $0.000069Examples
Calculate storage charges in three steps:
- Subtract the 168 free storage-hours from the total storage time, with a minimum of zero billable hours.
- Multiply the billable storage-hours by the recording duration in hours to get
hour_hourusage. - Multiply that usage by $0.000069 to calculate the storage cost.
| Recording duration | Total storage-hours | Billable storage-hours | Usage (hour_hour) | Cost calculation |
|---|---|---|---|---|
| 1 hour | 144 | max(144 − 168, 0) = 0 | 1 × 0 = 0 | 0 × $0.000069 = $0 |
| 1 hour | 169 | 169 − 168 = 1 | 1 × 1 = 1 | 1 × $0.000069 = $0.000069 |
| 30 minutes (0.5 hours) | 170 | 170 − 168 = 2 | 0.5 × 2 = 1 | 1 × $0.000069 = $0.000069 |
| 2 hours | 192 | 192 − 168 = 24 | 2 × 24 = 48 | 48 × $0.000069 = $0.003312 |
For example, once a two-hour recording has passed the free storage period, each additional hour it remains stored adds 2 hour_hour of usage.
Understand dashboard usage
The dashboard reports storage usage in hour_hour. Multiply the usage shown for a reporting period by $0.000069 to calculate its storage charge.
For example, 48 hour_hour reported for a day costs 48 × $0.000069 = $0.003312. The day groups the usage for reporting; usage accrues from the number of recording-hours stored during each billable storage-hour.
A recording accrues no billable storage usage during its first 168 storage-hours and stops accruing usage after its media is deleted.
Stop ongoing storage charges
Delete existing stored media that your application no longer needs, and configure timed retention for future recordings.
To remove existing recordings through the API:
- Call List Recordings. Use
created_at_afterandcreated_at_beforeto filter by creation time if needed, and follow thenextURL until there are no more pages. - Identify the recordings your application no longer needs and download any media you want to keep.
- Call Delete Recording for each recording ID. Deletion permanently removes the recording and its associated media, stopping further storage charges for that media.
For billing questions, contact [email protected].
Store recording data in your own systems
Recall does not write finished recordings directly into your storage bucket. To retain finished recordings in your own storage:
- Configure normal recording retention.
- Wait for the outputs your application needs to finish processing.
- Download those outputs and upload them to your storage.
- Verify that your copies are available.
- Delete the recording media from Recall.
If your application needs real-time data without recording-media storage on Recall, use Zero Data Retention and save the incoming streams/events in your systems.
Storage and data security
Data residency
Recording media are processed and stored in the Recall region where they were captured. Backups containing participant data remain in that region.
For Recall.ai Transcription processing locations, see Recall.ai Transcription regions. This is separate from where Recall stores recording media and its backups.
Subprocessor logs and telemetry do not contain any captured meeting content, such as audio, video, transcript data, participant info/events (e.g., emails, chat messages), or captured meeting metadata (e.g., meeting title). They may contain API/request information, including resource IDs, meeting URLs, scheduled join times, and custom metadata, used to operate and troubleshoot the service. This information may be processed or stored by subprocessors outside your Recall region. See Data outside recording retention for how these data categories are retained.
Encryption
Bot data stored in Recall’s database is encrypted at rest using AWS RDS encryption (AES-256). Data transmitted between Recall’s servers and your application is encrypted in transit using TLS. These controls help protect credentials, secrets, and API keys from unauthorized access to stored data or interception in transit.
For more information about Recall.ai’s security controls, visit our security portal.
FAQ
Can I recover an expired or deleted recording?
No. Recording-media deletion is permanent. Download the outputs you need before the recording expires or is deleted.
Why do storage charges continue after I change retention?
Changing future recording requests does not remove existing stored recordings.
Review older recordings, previously scheduled bots, other workspaces, and any request paths that still use indefinite retention.
Does deleting recording media remove custom metadata and logs?
No. Custom metadata and diagnostic logs follow separate retention policies. See Data outside recording retention.
Does Recall use customer data to train AI models?
Recall.ai does not use Customer Data for the purpose of training or fine-tuning machine learning or artificial intelligence models. Customer Data is processed solely to provide the contracted Services and is not retained or repurposed for unrelated development.
Updated about 15 hours ago
