- Real-time — transcription runs during a call and streams text to all participants as speech is detected. Powered by Deepgram.
- Post-call — submit a recording ID or media URL to the Batch Processor API after a call ends. It produces a transcript in
txt,srt,vtt, orjsonformat, and can optionally generate a written summary.
Pricing
Transcriptions are charged based on usage and Deepgram model. For real-time, you pay per unmuted participant minute. For post-call, you pay per recorded minute. See the transcription pricing page for billing details.Permissions
To dynamically start or stop a real-time transcription from a client, a participant must havecanAdmin: 'transcription'. Meeting owners always have this permission.
Non-owners can be granted it in two ways:
- At join time: include
canAdmin: ['transcription']in their meeting token’spermissions. - Dynamically: a meeting owner calls
updateParticipant()withupdatePermissions: { canAdmin: new Set(['transcription']) }.
Storage
By default, real-time transcripts are generated and broadcast to participants but not saved. To persist transcripts as WebVTT files, setenable_transcription_storage: true at the room or domain level. While transcription is active, the file is written to storage every two minutes; the final version is written when transcription ends.
Transcripts are stored in Daily’s cloud by default. For HIPAA use cases or custom storage, configure the transcription_bucket domain property — the setup process is the same as configuring a custom S3 bucket for recordings:
Real-time transcription APIs
Real-time transcription streams speech-to-text to all call participants as it’s detected. By default, transcripts are ephemeral — participants receivetranscription-message events but nothing is persisted. Enable enable_transcription_storage at the room or domain level to save transcripts as WebVTT files, accessible after the call via the /transcript REST endpoints or a webhook notification.
daily-js
Start and manage transcription from a call object. Includes full parameter reference and a complete live captions example.
Daily React
Overview of the
useTranscription hook to manage and control transcriptions — with a complete live captions example.REST API
Guide to all transcription-related REST endpoints: real-time management, auto-start via meeting tokens, post-call transcription, and storage.