Recall.ai Transcription

The recommended, fastest, and easiest-to-use transcription provider. Use Recall.ai’s built-in transcription to generate real-time or post-meeting transcripts without setting up a third-party provider.

Overview

Recall.ai transcription is the easiest way to get started because:

  • It is preconfigured to work out of the box for the majority of use cases, based on our experience helping thousands of developers implement transcription.
  • Unlike third-party providers, it requires no additional setup.

We recommend starting with Recall.ai transcription to see if it meets your needs, and using a third-party transcription provider if you need more granular control or custom features.

Use the following table to choose the right Recall.ai Transcription method and configuration:

NeedTranscription methodLatencyRecommended configuration
Final transcript after the recording completesAsync transcriptionAfter the recording completesUse Recall.ai async transcription with recallai_async. Skip to this section.
Recall.ai customization options, e.g., language detection, key terms, spelling corrections, or profanity filteringReal-time transcriptionTypically delayed by 3-10 minutesUse Recall.ai real-time transcription with recallai_streaming and mode: "prioritize_accuracy". Skip to this section.
Low-latency transcription with customization optionsReal-time transcriptionWithin secondsUse a third-party transcription provider.
English transcript events during the meetingReal-time transcriptionWithin secondsUse Recall.ai real-time transcription with recallai_streaming, mode: "prioritize_low_latency", and language_code: "en". Skip to this section.
Multilingual transcript events during the meetingReal-time transcriptionWithin secondsUse a third-party transcription provider. Also see Multilingual Transcription.

Recall.ai Transcription for Async Transcription

You can transcribe a meeting once the recording has been finalized with Recall.ai Transcription.

To use Recall.ai Transcription for async transcription, set the provider to recallai_async in the Create Async Transcript request using the recording ID:

curl --request POST \
     --url https://RECALL_REGION.recall.ai/api/v1/recording/RECORDING_ID/create_transcript/ \
     --header 'Authorization: RECALL_API_KEY' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "provider": {
    "recallai_async": {
      "language_code": "auto"
    }
  }
}
'

Recall.ai async transcription supports additional transcription options (e.g. language_code, key_terms, spelling, and filter_profanity):

OptionWhat it doesWhen to use it
language_codeSets the language used for transcription. See the list of supported languages.Use this when you know the language being spoken, or set it to auto to use language detection.
key_termsPrioritizes important words or phrases during transcription.Use this for product names, company names, acronyms, technical terms, or other domain-specific vocabulary.
spellingApplies custom spelling corrections to the transcript output.Use this when specific words or phrases should appear in a consistent format, e.g., product names, company names, acronyms, or people’s names.
filter_profanityControls whether profanity is filtered from the transcript.Use this when transcript output should avoid explicit language.

See Async Transcription for implementation details, including when to create the async transcript, which webhook events to listen for, and how to retrieve the completed transcript.


Recall.ai Transcription for real-time transcription

Recall.ai's real-time transcription supports two modes:

ModeUse this whenLatencySupported options
prioritize_low_latencyYour application needs transcript events as quickly as possible.Typically 1-3 seconds after an utterance is finalized.Only language_code: "en" is supported.
prioritize_accuracyTranscript accuracy is more important than receiving each utterance within a few seconds.Typically delayed by 3-10 minutes on real-time endpoints.Supports all additional Recall.ai Transcription options.
📘

How to configure Recall.ai real-time transcription

Recall.ai real-time transcription is configured at recording_config.transcript.provider.recallai_streaming

Real-time transcript delivery is configured separately through recording_config.realtime_endpoints

Recall.ai Transcription for real-time transcription in prioritize_low_latency mode

❗️

Supported options for prioritize_low_latency

When mode is set to prioritize_low_latency, language_code must be set to en. Do not set language_code to auto or any non-English language code.

No other options (e.g., key_terms, spelling, and filter_profanity) are supported in prioritize_low_latency mode. Use prioritize_accuracy if you need any of these options.

Use prioritize_low_latency when your application needs transcript events as quickly as possible. See below for how to configure this depending on the ingest method.

Example requests

Recall.ai real-time transcription with `prioritize_low_latency` for meeting bots

To configure Recall.ai real-time transcription for a meeting bot, set recording_config.transcript.provider.recallai_streaming in the Create Bot request:

curl --request POST \
     --url https://RECALL_REGION.recall.ai/api/v1/bot/ \
     --header 'Authorization: RECALL_API_KEY' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "meeting_url": "MEETING_URL",
  "recording_config": {
    // other recording configs
    "transcript": {
      // other transcript configs
      "provider": {
        "recallai_streaming": {
          "mode": "prioritize_low_latency",
          "language_code": "en"
        }
      }
    },
    "realtime_endpoints": [
      {
        "url": "REAL_TIME_TRANSCRIPT_WEBHOOK_ENDPOINT",
        "type": "webhook",
        "events": ["transcript.data"]
      }
    ]
  }
}
'

See Meeting Bot Real-time Transcription for real-time transcription implementation details.

Recall.ai real-time transcription with `prioritize_low_latency` for desktop recording SDK

To configure Recall.ai real-time transcription for the Desktop Recording SDK, set recording_config.transcript.provider.recallai_streaming in the Create Desktop SDK Upload request:

curl --request POST \
     --url https://RECALL_REGION.recall.ai/api/v1/sdk_upload/ \
     --header 'Authorization: RECALL_API_KEY' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "recording_config": {
    // other recording configs
    "transcript": {
      // other transcript configs
      "provider": {
        "recallai_streaming": {
          "mode": "prioritize_low_latency",
          "language_code": "en"
        }
      }
    },
    "realtime_endpoints": [
      {
        "url": "REAL_TIME_TRANSCRIPT_WEBHOOK_ENDPOINT",
        "type": "webhook",
        "events": ["transcript.data"]
      }
    ]
  }
}
'

See Desktop Recording SDK Real-time Transcription for real-time transcription implementation details.

Recall.ai Transcription for real-time transcription in prioritize_accuracy mode

Use prioritize_accuracy when transcript quality is more important than receiving each utterance within a few seconds.

This mode is the default for Recall.ai Transcription. When used with real-time endpoints, transcript events are typically delayed by 3-10 minutes. In exchange, this mode supports additional transcription options that are not available in prioritize_low_latency mode.

See the table below for the full list of options supported by Recall.ai real-time transcription in prioritize_accuracy mode:

OptionWhat it doesWhen to use it
language_codeSets the language used for transcription. See the list of supported languages.Use this when you know the language being spoken, or set it to auto to use language detection.
key_termsPrioritizes important words or phrases during transcription.Use this for product names, company names, acronyms, technical terms, or other domain-specific vocabulary.
spellingApplies custom spelling corrections to the transcript output.Use this when specific words or phrases should appear in a consistent format, e.g., product names, company names, acronyms, or people’s names.
filter_profanityControls whether profanity is filtered from the transcript.Use this when transcript output should avoid explicit language.
📘

When to use prioritize_accuracy

Use prioritize_accuracy when you need language detection, custom vocabulary with key_terms, custom spelling corrections, or profanity filtering.

In this mode, transcript events sent to real-time endpoints are typically delayed by 3-10 minutes, so it may not be suitable for all real-time use cases.

If you need these features with low latency, use a third-party transcription provider. Also see Multilingual Transcription for details on using a third-party transcription provider for multilingual real-time transcript utterances within seconds.

Example requests

Recall.ai real-time transcription with `prioritize_accuracy` for meeting bots

To configure Recall.ai real-time transcription for a meeting bot, set recording_config.transcript.provider.recallai_streaming in the Create Bot request:

curl --request POST \
     --url https://RECALL_REGION.recall.ai/api/v1/bot/ \
     --header 'Authorization: RECALL_API_KEY' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "meeting_url": "MEETING_URL",
  "recording_config": {
    // other recording configs
    "transcript": {
      // other transcript configs
      "provider": {
        "recallai_streaming": {
          "mode": "prioritize_accuracy",
          "language_code": "auto"
        }
      }
    },
    "realtime_endpoints": [
      {
        "url": "REAL_TIME_TRANSCRIPT_WEBHOOK_ENDPOINT",
        "type": "webhook",
        "events": ["transcript.data"]
      }
    ]
  }
}
'

See Meeting Bot Real-time Transcription for real-time transcription implementation details.

Recall.ai real-time transcription with `prioritize_accuracy` for desktop recording SDK

To configure Recall.ai real-time transcription for the Desktop Recording SDK, set recording_config.transcript.provider.recallai_streaming in the Create Desktop SDK Upload request:

curl --request POST \
     --url https://RECALL_REGION.recall.ai/api/v1/sdk_upload/ \
     --header 'Authorization: RECALL_API_KEY' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "recording_config": {
    // other recording configs
    "transcript": {
      // other transcript configs
      "provider": {
        "recallai_streaming": {
          "mode": "prioritize_accuracy",
          "language_code": "auto"
        }
      }
    },
    "realtime_endpoints": [
      {
        "url": "REAL_TIME_TRANSCRIPT_WEBHOOK_ENDPOINT",
        "type": "webhook",
        "events": ["transcript.data"]
      }
    ]
  }
}
'

See Desktop Recording SDK Real-time Transcription for real-time transcription implementation details.


FAQ

How much does Recall.ai Transcription cost?

Transcription ModeUsage Cost
Real-time transcription$0.15 per recording hour
Async transcription$0.15 per recording hour

What languages are supported with Recall.ai Transcription?

Supported languages for real-time transcription with mode: "prioritize_low_latency"

Only english (i.e. language_code: "en" is supported for real-time transcription when mode: "prioritize_low_latency" at this time. All other valuese for `language code will fail to transcribe.

Supported languages for async transcription or real-time transcription with mode: "prioritize_accuracy"

Currently, the following language codes are supported for async transcription and real-time transcription when mode: "prioritize_accuracy".

auto - auto
bg - Bulgarian
ca - Catalan
cs - Czech
da - Danish
de - German
el - Greek
en - English
en_au - English (Australia)
en_uk - English (United Kingdom)
en_us - English (United States)
es - Spanish
et - Estonian
fi - Finnish
fr - French
he - Hebrew
hi - Hindi
hr - Croatian
hu - Hungarian
id - Indonesian
it - Italian
ja - Japanese
ko - Korean
lt - Lithuanian
lv - Latvian
ms - Malay
nl - Dutch
no - Norwegian
pl - Polish
pt - Portuguese
ro - Romanian
ru - Russian
sk - Slovak
sv - Swedish
th - Thai
tr - Turkish
uk - Ukrainian
vi - Vietnamese
zh - Chinese

Do you train AI models using my transcription data?

No, Recall.ai Transcription does not use customer data for any training of AI models.

Where is my data processed when using Recall.ai Transcription?

This depends on the Recall Region that you are located in:

Recall RegionTranscription Data Processing Location
us-west-2US
us-east-1US
ap-northeast-1US
eu-central-1EU

Why are my transcripts delayed when using real-time transcription?

When using real-time transcription, the default transcription mode is prioritize_accuracy. Transcripts will be delivered within 3-10 minutes of when the original words were spoken.

How does the transcript quality differ between Recall.ai's real-time prioritize_accuracy vs Recall.ai's async transcription?

The quality will be the same because both of these transcription methods use the same underlying transcription model and offer the same transcription config options.

Does Recall.ai Transcription expose provider_data payloads (real-time or async)?

No. When you use Recall.ai Transcription, Recall is the transcription provider so there isn’t any separate third-party provider_data payload to return.

If you’re following the docs for Third-Party Transcription to get the provider data payloads, you should know that for Recall.ai Transcription:

  • Real-time: You will not receive transcript.provider_data events. Subscribe to transcript.data instead.
  • Async: transcript.data.provider_data_download_url is not applicable for Recall.ai Transcription. This will always return [].