Zero Data Retention

Learn how to enable Zero Data Retention and stream meeting data without storing recording media on Recall's servers.

Zero Data Retention (ZDR) ensures that no recording media is ever stored on Recall's servers. Recording media is processed entirely in memory and is never written or flushed to disk, including while the meeting is in progress.

Your application can access meeting data through real-time streams by subscribing to the Real-Time Events. You decide whether to process that data as it arrives or save it in your own systems.

📘

Recall collects operational diagnostics/logs and telemetry to investigate performance issues. These records do not include participant data, meeting content, or recording media

Enable ZDR

Set recording_config.retention to null:

{
  "recording_config": {
    "retention": null
  }
}

Include this setting alongside your configured outputs and real-time endpoints. Setting retention: nullenables ZDR; realtime_endpoints determines which data your application receives. Note that omitting retention applies the default retention policy (store indefinitely; never expire media).

You must explicitly configure retention: null for every new recording. Changes to your defaults do not update existing recordings or previously scheduled requests.

ZDR is available on all plans, including pay-as-you-go.

📘

Manual recording configuration with Meeting Bots

If using Start Recording endpoint with bots, you need to explicitly set retention: null on every request. This endpoint accepts the recording configs directly in the request body and does not inherit settings from a previous recording.

Considerations

Real-time delivery

In order to receive data with ZDR enabled, you'll need to configure real-time endpoints and subscribe to the required events or data streams for Audio​, ​Video​, and Transcripts​.

Then you can store the incoming data in your own systems if your application needs access after the meeting.

⚠️

Recall.ai Transcription settings

ZDR is only available for Recall.ai Transcription when mode: "prioritize_low_latency" with language_code: "en". Low-latency mode supports English only and does not support the customization options available in accuracy mode.

prioritize_accuracy does not support ZDR.

Connection reliability

Recall automatically retries failed WebSocket connections and webhook deliveries but these retries are finite and do not guarantee delivery if your app fails to accept them.

❗️

Recovery limitations

With ZDR, Recall does not retain audio, video, transcripts, participant events, speaker timelines, or captured meeting metadata after the meeting. This means that if you don't process the data while it's streamed to your app, then you won't be able to recover that data later on. Real-time events with ZDR cannot be manually replayed through the dashboard or API.

The absence of stored media also limits Recall's ability to investigate audio, video, and transcription-quality issues.

Metadata and external systems

ZDR governs recording media. The following data is subject to separate retention policies:

DataRetention scope
API and request metadataResource IDs, statuses, request information, and custom metadata can remain with ZDR enabled.
Calendar dataRecording retention does not change retention for connected calendars.
Third-party transcription integrationsThe transcription provider's settings and agreement determine retention. Recall's ZDR setting does not change them.

Deleting bot media does not delete custom metadata. A bot's meeting URL is cleared 14 days after termination. See Storage and Data Retention for these policies and log-file retention.

Security and data residency

Select the appropriate Recall region and verify the processing locations of your transcription provider.

Bot data retained 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 encryption controls help protect credentials, secrets, and API keys in storage and in transit. For more information, visit the security portal.

Recall does not use customer data to train or fine-tune AI models. This policy applies independently of ZDR. Verify any third-party provider's training policy separately.

Zero Day Retention

Zero Day Retention is a workflow where recording media is stored temporarily while processing completes, then deleted. This can support applications that need recorded media or post-meeting transcription before removing the recording from Recall.

Configure the recording with normal retention (e.g., 1 day), wait for the required processing to complete, and retrieve any outputs your application needs. Then call Delete Recording to remove the stored recording. Your application is responsible for triggering deletion; there is no separate Zero Day Retention API setting.

⚠️

Temporary media storage

Recording media is written to storage before it is deleted. If your requirements prohibit any recording media from being stored, use Zero Data Retention with recording_config.retention: null instead.

FAQs

Does ZDR apply to the underlying provider used by Recall.ai Transcription?

Yes. When using Recall.ai Transcription in prioritize_low_latency mode, the underlying transcription service does not retain audio or transcript content. Set recording_config.retention to null and language_code to "en". Recall manages the provider configuration, so no separate provider account or provider-specific retention settings are required.

The service may retain billing metadata, such as call start and end times. For a separately selected third-party transcription integration, configure and verify the provider's retention settings independently.

Is there a workspace-wide setting to enable ZDR for all recordings?

No. There is currently no workspace-wide ZDR setting. Configure recording_config.retention as null for each new recording. To use ZDR consistently, include this setting in your app's shared recording config and apply it to every recording creation path.

Can I enable ZDR for existing recordings?

No. ZDR cannot be applied retroactively to an existing recording. If media has already been stored, use Delete Recording to remove it from Recall. ZDR prevents storage from the start; deleting an existing recording removes media that was previously stored.

Deleting the recording removes its associated recording media from Recall. API/request metadata, logs, telemetry, and third-party data (none of which contains recording media or participant/meeting data) remain subject to their separate retention policies.

Does expires_at: null mean ZDR is enabled?

No. It means no expiration timestamp is currently set, which can occur with indefinite retention (i.e., the recording never expires). Verify recording_config.retention to confirm ZDR.

Why can I still see the recording status in the dashboard?

The dashboard displays recording status and metadata independently of stored media. in_call_recording means the bot is live in the call and capture/streaming data, though it isn't being saved. Dashboard entries and media_expired events can appear with ZDR enabled. Verify the recording’s retention configuration to confirm ZDR

Why do storage charges continue after enabling ZDR?

ZDR does not delete existing stored recordings. Review older recordings, other workspaces, and request paths that still use normal retention. See Storage and Data Retention for billing and deletion options.

Can I store recording media in my own bucket?

Your application can receive real-time streams and write them to your storage. Recall does not stream/write a finished recording directly to your bucket. You can download a retained recording using Zero Day Retention and delete it after you've uploaded it to your own storage.

Can I use participant events and Output Media?

Yes. Configure retention: null alongside the required outputs and events. Setting recording_config itself to null does not enable ZDR and will not work with output media.

Does recording.deleted confirm that all data has been deleted?

The event reports deletion of the recording and all related recording media in Recall.




Did this page help you?