---
title: "Create Bot"
method: POST
path: "/api/v1/bot/"
tags: ["bot"]
---

# Create Bot

`POST /api/v1/bot/`

Create a new bot.

The base rate limit for this endpoint is:
- 120 requests per min per workspace

## Request body

- BotRequest
  - `meeting_url` string, required — The url of the meeting. For example, https://zoom.us/j/123?pwd=456. This field will be cleared a few days after the bot has joined a call.
  - `bot_name` string — The name of the bot that will be displayed in the call. *(Note: Authenticated Google Meet bots will use the Google account name and this field will be ignored.)*
  - `join_at` string, date-time, nullable — The time at which the bot will join the call, formatted in ISO 8601. This field can only be read from scheduled bots that have not yet joined a call.
  - `recording_config` BotRecordingConfigRequest
    - `transcript` BotRecordingConfigTranscriptArtifactRequest
      - `metadata` object
      - `provider` BotRecordingConfigTranscriptProviderRequest, required
        - `recallai_streaming` RecallaiStreamingTranscriptionRequest
          - `language_code` 'auto' | 'bg' | 'ca' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'en_au' | 'en_uk' | 'en_us' | 'es' | 'et' | 'fi' | 'fr' | 'he' | 'hi' | 'hr' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'lt' | 'lv' | 'ms' | 'nl' | 'no' | 'pl' | 'pt' | 'ro' | 'ru' | 'sk' | 'sv' | 'th' | 'tr' | 'uk' | 'vi' | 'zh' — * `auto` - auto * `bg` - bg * `ca` - ca * `cs` - cs * `da` - da * `de` - de * `el` - el * `en` - en * `en_au` - en_au * `en_uk` - en_uk * `en_us` - en_us * `es` - es * `et` - et * `fi` - fi * `fr` - fr * `he` - he * `hi` - hi * `hr` - hr * `hu` - hu * `id` - id * `it` - it * `ja` - ja * `ko` - ko * `lt` - lt * `lv` - lv * `ms` - ms * `nl` - nl * `no` - no * `pl` - pl * `pt` - pt * `ro` - ro * `ru` - ru * `sk` - sk * `sv` - sv * `th` - th * `tr` - tr * `uk` - uk * `vi` - vi * `zh` - zh
          - `spelling` RecallaiSpellingEntryRequest[] — List of text strings to find/replace in the transcript.
            - `find` string[], required — Find any of these items in the source transcript
            - `replace` string, required — Replace found matches with this exact string (will not change case)
          - `key_terms` string[] — Increases the chances that these terms appear in the transcript over some sound-alikes.
          - `filter_profanity` boolean
          - `mode` 'prioritize_low_latency' | 'prioritize_accuracy' — * `prioritize_low_latency` - prioritize_low_latency * `prioritize_accuracy` - prioritize_accuracy
        - `assembly_ai_async_chunked` object — Docs: https://www.assemblyai.com/docs/api-reference/transcripts/submit
          - `audio_end_at` integer — The point in time, in milliseconds, to stop transcribing in your media file. See [Set the start and end of the transcript](https://www.assemblyai.com/docs/pre-recorded-audio/set-the-start-and-end-of-the-transcript) for more details.
          - `audio_start_from` integer — The point in time, in milliseconds, to begin transcribing in your media file. See [Set the start and end of the transcript](https://www.assemblyai.com/docs/pre-recorded-audio/set-the-start-and-end-of-the-transcript) for more details.
          - `auto_chapters` boolean — Enable [Auto Chapters](https://www.assemblyai.com/docs/speech-understanding/auto-chapters), can be true or false
          - `auto_highlights` boolean — Enable [Key Phrases](https://www.assemblyai.com/docs/speech-understanding/key-phrases), either true or false
          - `content_safety` boolean — Enable [Content Moderation](https://www.assemblyai.com/docs/content-moderation), can be true or false
          - `content_safety_confidence` integer — The confidence threshold for the [Content Moderation](https://www.assemblyai.com/docs/content-moderation) model. Values must be between 25 and 100.
          - `custom_spelling` object[] — Customize how words are spelled and formatted using to and from values. See [Custom Spelling](https://www.assemblyai.com/docs/pre-recorded-audio/custom-spelling) for more details.
            - `from` string[], required — Words or phrases to replace
            - `to` string, required — Word to replace with
          - `disfluencies` boolean — Transcribe [Filler Words](https://www.assemblyai.com/docs/pre-recorded-audio/filler-words), like "umm", in your media file; can be true or false
          - `entity_detection` boolean — Enable [Entity Detection](https://www.assemblyai.com/docs/speech-understanding/entity-detection), can be true or false
          - `filter_profanity` boolean — Filter profanity from the transcribed text, can be true or false. See [Profanity Filtering](https://www.assemblyai.com/docs/profanity-filtering) for more details.
          - `format_text` boolean — Enable [Text Formatting](https://www.assemblyai.com/docs/pre-recorded-audio), can be true or false
          - `iab_categories` boolean — Enable [Topic Detection](https://www.assemblyai.com/docs/speech-understanding/topic-detection), can be true or false
          - `keyterms_prompt` string[] — Improve accuracy with up to 200 (for Universal-2) or 1000 (for Universal-3-Pro) domain-specific words or phrases (maximum 6 words per phrase). See [Keyterms Prompting](https://www.assemblyai.com/docs/pre-recorded-audio/keyterms-prompting) for more details.
          - `language_code` union — The language of your audio file. Possible values are found in [Supported Languages](https://www.assemblyai.com/docs/pre-recorded-audio/supported-languages). The default value is 'en_us'.
            - union
              - …
            - string, nullable
          - `language_codes` string[], nullable — The language codes of your audio file. Used for [Code switching](https://www.assemblyai.com/docs/speech-to-text/pre-recorded-audio/code-switching) One of the values specified must be `en`.
          - `language_confidence_threshold` number, float — The confidence threshold for the automatically detected language. An error will be returned if the language confidence is below this threshold. Defaults to 0. See [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection) for more details.
          - `language_detection` boolean — Enable [Automatic language detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection), either true or false.
          - `language_detection_options` object — Specify options for [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection).
            - `expected_languages` string[] — List of languages expected in the audio file. Defaults to `["all"]` when unspecified. See [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection) for more details.
            - `fallback_language` string — If the detected language of the audio file is not in the list of expected languages, the `fallback_language` is used. Specify `["auto"]` to let our model choose the fallback language from `expected_languages` with the highest confidence score. See [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection) for more details.
            - `code_switching` boolean — Whether [code switching](https://www.assemblyai.com/docs/speech-to-text/pre-recorded-audio/code-switching) should be detected.
            - `code_switching_confidence_threshold` number — The confidence threshold for [code switching](https://www.assemblyai.com/docs/speech-to-text/pre-recorded-audio/code-switching) detection. If the code switching confidence is below this threshold, the transcript will be processed in the language with the highest `language_detection_confidence` score.
          - `multichannel` boolean — Enable [Multichannel](https://www.assemblyai.com/docs/pre-recorded-audio/multichannel) transcription, can be true or false.
          - `prompt` string — Provide natural language prompting of up to 1,500 words of contextual information to the model. See the [Prompting Guide](https://www.assemblyai.com/docs/pre-recorded-audio/prompting) for best practices. Note: This parameter is only supported for the Universal-3-Pro model.
          - `punctuate` boolean — Enable [Automatic Punctuation](https://www.assemblyai.com/docs/pre-recorded-audio), can be true or false
          - `redact_pii` boolean — Redact PII from the transcribed text using the Redact PII model, can be true or false. See [PII Redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
          - `redact_pii_audio` boolean — Generate a copy of the original media file with spoken PII "beeped" out, can be true or false. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) for more details.
          - `redact_pii_audio_options` object — Specify options for [PII redacted audio](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) files.
            - `return_redacted_no_speech_audio` boolean — By default, audio redaction provides redacted audio URLs only when speech is detected. However, if your use-case specifically requires redacted audio files even for silent audio files without any dialogue, you can opt to receive these URLs by setting this parameter to `true`.
          - `redact_pii_audio_quality` 'mp3' | 'wav' — Controls the filetype of the audio created by redact_pii_audio. Currently supports mp3 (default) and wav. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) for more details.
          - `redact_pii_policies` string[] — The list of PII Redaction policies to enable. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
          - `redact_pii_sub` union — The replacement logic for detected PII, can be `entity_type` or `hash`. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
            - 'entity_name' | 'hash' — The replacement logic for detected PII, can be `entity_name` or `hash`. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
            - string, nullable
          - `sentiment_analysis` boolean — Enable [Sentiment Analysis](https://www.assemblyai.com/docs/speech-understanding/sentiment-analysis), can be true or false
          - `speaker_labels` boolean — Enable [Speaker diarization](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization), can be true or false
          - `speaker_options` object — Specify options for [Speaker diarization](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-a-range-of-possible-speakers). Use this to set a range of possible speakers.
            - `min_speakers_expected` integer — The minimum number of speakers expected in the audio file. See [Set a range of possible speakers](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-a-range-of-possible-speakers) for more details.
            - `max_speakers_expected` integer — <Warning>Setting this parameter too high may hurt model accuracy</Warning> The maximum number of speakers expected in the audio file. See [Set a range of possible speakers](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-a-range-of-possible-speakers) for more details.
          - `speakers_expected` integer, nullable — Tells the speaker label model how many speakers it should attempt to identify. See [Set number of speakers expected](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-number-of-speakers-expected) for more details.
          - `speech_models` string[] — List multiple speech models in priority order, allowing our system to automatically route your audio to the best available option. See [Model Selection](https://www.assemblyai.com/docs/pre-recorded-audio/select-the-speech-model) for available models and routing behavior.
          - `speech_threshold` number, float, nullable — Reject audio files that contain less than this fraction of speech. Valid values are in the range [0, 1] inclusive. See [Speech Threshold](https://www.assemblyai.com/docs/speech-threshold) for more details.
          - `speech_understanding` object — Enable speech understanding tasks like [Translation](https://www.assemblyai.com/docs/speech-understanding/translation), [Speaker Identification](https://www.assemblyai.com/docs/speech-understanding/speaker-identification), and [Custom Formatting](https://www.assemblyai.com/docs/speech-understanding/custom-formatting). See the task-specific docs for available options and configuration.
            - `request` union, required
              - …
          - `summarization` boolean — Enable [Summarization](https://www.assemblyai.com/docs/speech-understanding/summarization), can be true or false
          - `summary_model` 'informative' | 'conversational' | 'catchy' — The model to summarize the transcript
          - `summary_type` 'bullets' | 'bullets_verbose' | 'gist' | 'headline' | 'paragraph' — The type of summary
          - `temperature` number — Control the amount of randomness injected into the model's response. See the [Prompting Guide](https://www.assemblyai.com/docs/pre-recorded-audio/prompting) for more details. Note: This parameter can only be used with the Universal-3-Pro model.
          - `custom_topics` boolean — This parameter does not currently have any functionality attached to it.
          - `speech_model` union — This parameter has been replaced with the `speech_models` parameter, learn more about the `speech_models` parameter [here](https://www.assemblyai.com/docs/pre-recorded-audio/select-the-speech-model).
            - string — The speech model to use for the transcription. See [Model Selection](https://www.assemblyai.com/docs/pre-recorded-audio/select-the-speech-model) for available models.
            - string, nullable
          - `topics` string[] — This parameter does not currently have any functionality attached to it.
        - `assembly_ai_v3_streaming` object — Docs: https://www.assemblyai.com/docs/api-reference/streaming-api/streaming-api
          - `speech_model` 'universal-streaming-english' | 'universal-streaming-multilingual' | 'whisper-rt' | 'u3-rt-pro' | 'universal-3-5-pro' — The speech model used for your Streaming session.
          - `format_turns` boolean — Whether to return formatted final transcripts.
          - `inactivity_timeout` integer — Optional time in seconds of inactivity before session is terminated. If not set, no inactivity timeout is applied.
          - `keyterms_prompt` string[] — A list of words and phrases to improve recognition accuracy for. See [Keyterms Prompting](https://www.assemblyai.com/docs/streaming/keyterms-prompting) for more details.
          - `language_detection` string — Whether to detect the language and return language metadata on utterances and final turns. Only available for the multilingual model.
          - `max_turn_silence` integer — The maximum amount of silence in milliseconds allowed in a turn before end of turn is triggered. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details.
          - `min_turn_silence` integer — The minimum amount of silence in milliseconds required to detect end of turn when confident. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details.
          - `vad_threshold` number — The confidence threshold (0.0 to 1.0) for classifying audio frames as silence. Frames with VAD confidence below this value are considered silent. Increase for noisy environments to reduce false speech detection.
          - `end_of_turn_confidence_threshold` number — The confidence threshold (0.0 to 1.0) to use when determining if the end of a turn has been reached. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details.
          - `language` 'en' | 'multi' — The language of your audio stream.
        - `deepgram_streaming` object — Docs: https://developers.deepgram.com/reference/streaming
          - `diarize` string — Defaults to `false`. Recognize speaker changes. Each word in the transcript will be assigned a speaker number starting at 0
          - `dictation` string — Identify and extract key entities from content in submitted audio
          - `endpointing` string — Indicates how long Deepgram will wait to detect whether a speaker has finished speaking or pauses for a significant period of time. When set to a value, the streaming endpoint immediately finalizes the transcription for the processed time range and returns the transcript with a speech_final parameter set to true. Can also be set to false to disable endpointing
          - `extra` unknown
          - `filler_words` string — Filler Words can help transcribe interruptions in your audio, like "uh" and "um"
          - `interim_results` string — Specifies whether the streaming endpoint should provide ongoing transcription updates as more audio is received. When set to true, the endpoint sends continuous updates, meaning transcription results may evolve over time
          - `keyterm` unknown
          - `keywords` unknown
          - `language` 'bg' | 'ca' | 'cs' | 'da' | 'da-DK' | 'de' | 'de-CH' | 'el' | 'en' | 'en-AU' | 'en-GB' | 'en-IN' | 'en-NZ' | 'en-US' | 'es' | 'es-419' | 'es-LATAM' | 'et' | 'fi' | 'fr' | 'fr-CA' | 'hi' | 'hi-Latn' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'ko-KR' | 'lt' | 'lv' | 'ms' | 'multi' | 'nl' | 'nl-BE' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'pt-PT' | 'ro' | 'ru' | 'sk' | 'sv' | 'sv-SE' | 'taq' | 'th' | 'th-TH' | 'tr' | 'uk' | 'vi' | 'zh' | 'zh-CN' | 'zh-HK' | 'zh-Hans' | 'zh-Hant' | 'zh-TW' — The [BCP-47 language tag](https://tools.ietf.org/html/bcp47) that hints at the primary spoken language. Depending on the Model you choose only certain languages are available
          - `mip_opt_out` string — Opts out requests from the Deepgram Model Improvement Program. Refer to our Docs for pricing impacts before setting this to true. https://dpgr.am/deepgram-mip
          - `model` 'nova-3' | 'nova-3-general' | 'nova-3-medical' | 'nova-2' | 'nova-2-general' | 'nova-2-meeting' | 'nova-2-finance' | 'nova-2-conversationalai' | 'nova-2-voicemail' | 'nova-2-video' | 'nova-2-medical' | 'nova-2-drivethru' | 'nova-2-automotive' | 'nova' | 'nova-general' | 'nova-phonecall' | 'nova-medical' | 'enhanced' | 'enhanced-general' | 'enhanced-meeting' | 'enhanced-phonecall' | 'enhanced-finance' | 'base' | 'meeting' | 'phonecall' | 'finance' | 'conversationalai' | 'voicemail' | 'video' | 'custom' — AI model to use for the transcription
          - `multichannel` string — Transcribe each audio channel independently
          - `numerals` string — Convert numbers from written format to numerical format
          - `profanity_filter` string — Profanity Filter looks for recognized profanity and converts it to the nearest recognized non-profane word or removes it from the transcript completely
          - `punctuate` string — Add punctuation and capitalization to the transcript
          - `redact` union — Redaction removes sensitive information from your transcripts
            - string
            - string[]
          - `replace` unknown
          - `search` unknown
          - `smart_format` string — Apply formatting to transcript output. When set to true, additional formatting will be applied to transcripts to improve readability
          - `tag` unknown
          - `utterance_end_ms` unknown
          - `vad_events` string — Indicates that speech has started. You'll begin receiving Speech Started messages upon speech starting
          - `version` string — Version of an AI model to use
        - `gladia_v2_streaming` object — Docs: https://docs.gladia.io/reference/live-audio
          - `custom_metadata` object — Custom metadata you can attach to this live transcription
          - `model` 'solaria-1' — The model used to process the audio. "solaria-1" is used by default.
          - `endpointing` number — The endpointing duration in seconds. Endpointing is the duration of silence which will cause an utterance to be considered as finished
          - `maximum_duration_without_endpointing` number — The maximum duration in seconds without endpointing. If endpointing is not detected after this duration, current utterance will be considered as finished
          - `language_config` object — Specify the language configuration
            - `languages` string[] — If one language is set, it will be used for the transcription. Otherwise, language will be auto-detected by the model.
            - `code_switching` boolean — If true, language will be auto-detected on each utterance. Otherwise, language will be auto-detected on first utterance and then used for the rest of the transcription. If one language is set, this option will be ignored.
          - `pre_processing` object — Specify the pre-processing configuration
            - `audio_enhancer` boolean — If true, apply pre-processing to the audio stream to enhance the quality.
            - `speech_threshold` number — Sensitivity configuration for Speech Threshold. A value close to 1 will apply stricter thresholds, making it less likely to detect background sounds as speech.
          - `realtime_processing` object — Specify the realtime processing configuration
            - `custom_vocabulary` boolean — If true, enable custom vocabulary for the transcription.
            - `custom_vocabulary_config` object — Custom vocabulary configuration, if `custom_vocabulary` is enabled
              - …
            - `custom_spelling` boolean — If true, enable custom spelling for the transcription.
            - `custom_spelling_config` object — Custom spelling configuration, if `custom_spelling` is enabled
              - …
            - `translation` boolean — If true, enable translation for the transcription
            - `translation_config` object — Translation configuration, if `translation` is enabled
              - …
            - `named_entity_recognition` boolean — If true, enable named entity recognition for the transcription.
            - `sentiment_analysis` boolean — If true, enable sentiment analysis for the transcription.
          - `post_processing` object — Specify the post-processing configuration
            - `summarization` boolean — If true, generates summarization for the whole transcription.
            - `summarization_config` object — Summarization configuration, if `summarization` is enabled
              - …
            - `chapterization` boolean — If true, generates chapters for the whole transcription.
          - `messages_config` object — Specify the websocket messages configuration
            - `receive_final_transcripts` boolean — If true, final utterance will be sent to websocket.
            - `receive_speech_events` boolean — If true, begin and end speech events will be sent to websocket.
            - `receive_pre_processing_events` boolean — If true, pre-processing events will be sent to websocket.
            - `receive_realtime_processing_events` boolean — If true, realtime processing events will be sent to websocket.
            - `receive_post_processing_events` boolean — If true, post-processing events will be sent to websocket.
            - `receive_acknowledgments` boolean — If true, acknowledgments will be sent to websocket.
            - `receive_errors` boolean — If true, errors will be sent to websocket.
            - `receive_lifecycle_events` boolean — If true, lifecycle events will be sent to websocket.
          - `callback` boolean — If true, messages will be sent to configured url.
          - `callback_config` object — Specify the callback configuration
            - `url` string, uri — URL on which we will do a `POST` request with configured messages
            - `receive_final_transcripts` boolean — If true, final utterance will be sent to the defined callback.
            - `receive_speech_events` boolean — If true, begin and end speech events will be sent to the defined callback.
            - `receive_pre_processing_events` boolean — If true, pre-processing events will be sent to the defined callback.
            - `receive_realtime_processing_events` boolean — If true, realtime processing events will be sent to the defined callback.
            - `receive_post_processing_events` boolean — If true, post-processing events will be sent to the defined callback.
            - `receive_acknowledgments` boolean — If true, acknowledgments will be sent to the defined callback.
            - `receive_errors` boolean — If true, errors will be sent to the defined callback.
            - `receive_lifecycle_events` boolean — If true, lifecycle events will be sent to the defined callback.
        - `rev_streaming` object — Docs: https://docs.rev.ai/api/streaming/requests/
          - `obscure_expletives` boolean
          - `delete_after` string, date-span
          - `audio_options._content_type` string
          - `audio_options._layout` string
          - `audio_options._rate` integer
          - `audio_options._format` string
          - `audio_options._channels` integer
          - `transcriber` 0 | 1
          - `language` string
          - `metadata` string
          - `filter_profanity` boolean
          - `remove_disfluencies` boolean
          - `detailed_partials` boolean
          - `custom_vocabulary_id` string
          - `delete_after_seconds` integer
          - `max_segment_duration_seconds` integer
          - `max_connection_wait_seconds` integer
          - `allow_interruption` boolean
          - `enable_speaker_switch` boolean
          - `start_ts` string, date-span
          - `skip_postprocessing` boolean
          - `priority` 0 | 1
          - `user_agent` string
        - `aws_transcribe_streaming` union — You must specify either: - `language_code`(e.g `en-US`) OR - Set `language_identification` to `true` AND specify `language_options`(e.g `en-US,fr-FR,es-US,de-DE,it-IT`). Docs: https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartStreamTranscription.html
          - object
            - `language_code` string, required — Specify the language code that represents the language spoken. If you're unsure of the language spoken in your audio, consider using IdentifyLanguage to enable automatic language identification.
            - `vocabulary_filter_method` string — Specify how you want your vocabulary filter applied to your transcript. To replace words with ***, choose mask. To delete words, choose remove. To flag words without changing them, choose tag.
            - `vocabulary_filter_name` string — Specify the name of the custom vocabulary filter that you want to use when processing your transcription. Note that vocabulary filter names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary filter must be available in Amazon Transcribe in each Region. If you include IdentifyLanguage and want to use one or more vocabulary filters with your transcription, use the VocabularyFilterNames parameter instead.
            - `vocabulary_name` string — Specify the name of the custom vocabulary that you want to use when processing your transcription. Note that vocabulary names are case sensitive. If you use Amazon Transcribe multiple Regions, the vocabulary must be available in Amazon Transcribe in each Region. If you include IdentifyLanguage and want to use one or more custom vocabularies with your transcription, use the VocabularyNames parameter instead.
            - `region` string — The Amazon Web Services Region in which to use Amazon Transcribe. If you don't specify a Region, then the MediaRegion of the meeting is used. However, if Amazon Transcribe is not available in the MediaRegion, then a TranscriptFailed event is sent. Use auto to use Amazon Transcribe in a Region near the meeting’s MediaRegion. For more information, refer to Choosing a transcription Region in the Amazon Chime SDK Developer Guide.
            - `enable_partial_results_stabilization` boolean — Enables partial result stabilization for your transcription. Partial result stabilization can reduce latency in your output, but may impact accuracy.
            - `partial_results_stability` string — Specify the level of stability to use when you enable partial results stabilization (EnablePartialResultsStabilization). Low stability provides the highest accuracy. High stability transcribes faster, but with slightly lower accuracy.
            - `content_identification_type` string — Labels all personally identifiable information (PII) identified in your transcript. If you don't include PiiEntityTypes, all PII is identified. You can’t set ContentIdentificationType and ContentRedactionType.
            - `content_redaction_type` string — Content redaction is performed at the segment level. If you don't include PiiEntityTypes, all PII is redacted. You can’t set ContentRedactionType and ContentIdentificationType.
            - `pii_entity_types` string — Specify which types of personally identifiable information (PII) you want to redact in your transcript. You can include as many types as you'd like, or you can select ALL. Values must be comma-separated and can include: ADDRESS, BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY CREDIT_DEBIT_NUMBER, EMAIL,NAME, PHONE, PIN, SSN, or ALL. Note that if you include PiiEntityTypes, you must also include ContentIdentificationType or ContentRedactionType. If you include ContentRedactionType or ContentIdentificationType, but do not include PiiEntityTypes, all PII is redacted or identified.
            - `language_model_name` string — Specify the name of the custom language model that you want to use when processing your transcription. Note that language model names are case sensitive. The language of the specified language model must match the language code. If the languages don't match, the custom language model isn't applied. There are no errors or warnings associated with a language mismatch. If you use Amazon Transcribe in multiple Regions, the custom language model must be available in Amazon Transcribe in each Region.
            - `identify_language` boolean — Enables automatic language identification for your transcription. If you include IdentifyLanguage, you can optionally use LanguageOptions to include a list of language codes that you think may be present in your audio stream. Including language options can improve transcription accuracy. You can also use PreferredLanguage to include a preferred language. Doing so can help Amazon Transcribe identify the language faster. You must include either LanguageCode or IdentifyLanguage. Language identification can't be combined with custom language models or redaction.
            - `language_options` string — Specify two or more language codes that represent the languages you think may be present in your media; including more than five is not recommended. If you're unsure what languages are present, do not include this parameter. Including language options can improve the accuracy of language identification. If you include LanguageOptions, you must also include IdentifyLanguage. You can only include one language dialect per language. For example, you cannot include en-US and en-AU.
            - `preferred_language` string — Specify a preferred language from the subset of languages codes you specified in LanguageOptions. You can only use this parameter if you include IdentifyLanguage and LanguageOptions.
            - `vocabulary_names` string — Specify the names of the custom vocabularies that you want to use when processing your transcription. Note that vocabulary names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary must be available in Amazon Transcribe in each Region. If you don't include IdentifyLanguage and want to use a custom vocabulary with your transcription, use the VocabularyName parameter instead.
            - `vocabulary_filter_names` string — Specify the names of the custom vocabulary filters that you want to use when processing your transcription. Note that vocabulary filter names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary filter must be available in Amazon Transcribe in each Region. If you're not including IdentifyLanguage and want to use a custom vocabulary filter with your transcription, use the VocabularyFilterName parameter instead.
          - object
            - `language_code` string — Specify the language code that represents the language spoken. If you're unsure of the language spoken in your audio, consider using IdentifyLanguage to enable automatic language identification.
            - `vocabulary_filter_method` string — Specify how you want your vocabulary filter applied to your transcript. To replace words with ***, choose mask. To delete words, choose remove. To flag words without changing them, choose tag.
            - `vocabulary_filter_name` string — Specify the name of the custom vocabulary filter that you want to use when processing your transcription. Note that vocabulary filter names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary filter must be available in Amazon Transcribe in each Region. If you include IdentifyLanguage and want to use one or more vocabulary filters with your transcription, use the VocabularyFilterNames parameter instead.
            - `vocabulary_name` string — Specify the name of the custom vocabulary that you want to use when processing your transcription. Note that vocabulary names are case sensitive. If you use Amazon Transcribe multiple Regions, the vocabulary must be available in Amazon Transcribe in each Region. If you include IdentifyLanguage and want to use one or more custom vocabularies with your transcription, use the VocabularyNames parameter instead.
            - `region` string — The Amazon Web Services Region in which to use Amazon Transcribe. If you don't specify a Region, then the MediaRegion of the meeting is used. However, if Amazon Transcribe is not available in the MediaRegion, then a TranscriptFailed event is sent. Use auto to use Amazon Transcribe in a Region near the meeting’s MediaRegion. For more information, refer to Choosing a transcription Region in the Amazon Chime SDK Developer Guide.
            - `enable_partial_results_stabilization` boolean — Enables partial result stabilization for your transcription. Partial result stabilization can reduce latency in your output, but may impact accuracy.
            - `partial_results_stability` string — Specify the level of stability to use when you enable partial results stabilization (EnablePartialResultsStabilization). Low stability provides the highest accuracy. High stability transcribes faster, but with slightly lower accuracy.
            - `content_identification_type` string — Labels all personally identifiable information (PII) identified in your transcript. If you don't include PiiEntityTypes, all PII is identified. You can’t set ContentIdentificationType and ContentRedactionType.
            - `content_redaction_type` string — Content redaction is performed at the segment level. If you don't include PiiEntityTypes, all PII is redacted. You can’t set ContentRedactionType and ContentIdentificationType.
            - `pii_entity_types` string — Specify which types of personally identifiable information (PII) you want to redact in your transcript. You can include as many types as you'd like, or you can select ALL. Values must be comma-separated and can include: ADDRESS, BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY CREDIT_DEBIT_NUMBER, EMAIL,NAME, PHONE, PIN, SSN, or ALL. Note that if you include PiiEntityTypes, you must also include ContentIdentificationType or ContentRedactionType. If you include ContentRedactionType or ContentIdentificationType, but do not include PiiEntityTypes, all PII is redacted or identified.
            - `language_model_name` string — Specify the name of the custom language model that you want to use when processing your transcription. Note that language model names are case sensitive. The language of the specified language model must match the language code. If the languages don't match, the custom language model isn't applied. There are no errors or warnings associated with a language mismatch. If you use Amazon Transcribe in multiple Regions, the custom language model must be available in Amazon Transcribe in each Region.
            - `identify_language` true, required — Enables automatic language identification for your transcription. If you include IdentifyLanguage, you can optionally use LanguageOptions to include a list of language codes that you think may be present in your audio stream. Including language options can improve transcription accuracy. You can also use PreferredLanguage to include a preferred language. Doing so can help Amazon Transcribe identify the language faster. You must include either LanguageCode or IdentifyLanguage. Language identification can't be combined with custom language models or redaction.
            - `language_options` string, required — Specify two or more language codes that represent the languages you think may be present in your media; including more than five is not recommended. If you're unsure what languages are present, do not include this parameter. Including language options can improve the accuracy of language identification. If you include LanguageOptions, you must also include IdentifyLanguage. You can only include one language dialect per language. For example, you cannot include en-US and en-AU.
            - `preferred_language` string — Specify a preferred language from the subset of languages codes you specified in LanguageOptions. You can only use this parameter if you include IdentifyLanguage and LanguageOptions.
            - `vocabulary_names` string — Specify the names of the custom vocabularies that you want to use when processing your transcription. Note that vocabulary names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary must be available in Amazon Transcribe in each Region. If you don't include IdentifyLanguage and want to use a custom vocabulary with your transcription, use the VocabularyName parameter instead.
            - `vocabulary_filter_names` string — Specify the names of the custom vocabulary filters that you want to use when processing your transcription. Note that vocabulary filter names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary filter must be available in Amazon Transcribe in each Region. If you're not including IdentifyLanguage and want to use a custom vocabulary filter with your transcription, use the VocabularyFilterName parameter instead.
        - `speechmatics_streaming` object — You must specify `language` (e.g `en`) Docs: https://docs.speechmatics.com/rt-api-ref#transcription-config
          - `language` string, required
          - `domain` string — Request a specialized model based on 'language' but optimized for a particular field, e.g. "finance" or "medical".
          - `output_locale` string
          - `additional_vocab` object[]
            - `content` string, required
            - `sounds_like` string[]
          - `diarization` 'none' | 'speaker'
          - `max_delay` number
          - `max_delay_mode` 'flexible' | 'fixed'
          - `speaker_diarization_config` object
            - `max_speakers` number
            - `prefer_current_speaker` boolean
            - `speaker_sensitivity` number, float
            - `get_speakers` boolean
            - `speakers` object[]
              - …
          - `audio_filtering_config` object
            - `volume_threshold` number, float
          - `transcript_filtering_config` object
            - `remove_disfluencies` boolean
            - `replacements` object[]
              - …
          - `enable_partials` boolean
          - `enable_entities` boolean
          - `operating_point` 'standard' | 'enhanced'
          - `punctuation_overrides` object
            - `permitted_marks` string[] — The punctuation marks which the client is prepared to accept in transcription output, or the special value 'all' (the default). Unsupported marks are ignored. This value is used to guide the transcription process.
            - `sensitivity` number, float — Ranges between zero and one. Higher values will produce more punctuation. The default is 0.5.
          - `conversation_config` object — This mode will detect when a speaker has stopped talking. The end_of_utterance_silence_trigger is the time in seconds after which the server will assume that the speaker has finished speaking, and will emit an EndOfUtterance message. A value of 0 disables the feature.
            - `end_of_utterance_silence_trigger` number, float
        - `elevenlabs_streaming` object — Docs: https://elevenlabs.io/docs/api-reference/speech-to-text
          - `model_id` string — The model to use for transcription.
          - `language_code` string — ISO 639-1 two-letter language code. When not specified, the model auto-detects the language.
          - `previous_text` string — Text from a previous transcription session to provide context for the model. Sent in the first message to the WebSocket.
        - `meeting_captions` MeetingCaptionsRequest
          - `language_code` 'cs' | 'de' | 'en' | 'es' | 'fil' | 'fr' | 'he' | 'hi' | 'it' | 'ja' | 'ko' | 'nl' | 'pl' | 'pt' | 'pt-BR' | 'ro' | 'ru' | 'sv' | 'th' | 'tr' | 'uk' | 'vi' | 'zh' — * `cs` - Czech * `de` - German * `en` - English * `es` - Spanish * `fil` - Filipino * `fr` - French * `he` - Hebrew * `hi` - Hindi * `it` - Italian * `ja` - Japanese * `ko` - Korean * `nl` - Dutch * `pl` - Polish * `pt` - Portuguese * `pt-BR` - Portuguese (Brazil) * `ro` - Romanian * `ru` - Russian * `sv` - Swedish * `th` - Thai * `tr` - Turkish * `uk` - Ukrainian * `vi` - Vietnamese * `zh` - Chinese
      - `diarization` BotRecordingConfigTranscriptDiarizationRequest
        - `use_separate_streams_when_available` boolean — Use separate audio streams(a.k.a perfect diarization) when available. This feature has limted support. **[Read more in this guide](https://docs.recall.ai/docs/perfect-diarization)**
    - `realtime_endpoints` BotRecordingConfigRealtimeEndpointRequest[] — Add endpoints here to receive data (e.g transcript, participant events) from the recording in realtime during the meeting. Default: `[]`
      - union
        - BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointRtmpRequest
          - `metadata` object
          - `type` 'rtmp' | 'websocket' | 'webhook' | 'desktop_sdk_callback', required — * `rtmp` - Rtmp * `websocket` - Websocket * `webhook` - Webhook * `desktop_sdk_callback` - Desktop Sdk Callback
          - `url` string, uri, required — The URL of the realtime endpoint.
          - `events` string[], required — The events to send to the realtime endpoint.
        - BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebsocketRequest
          - `metadata` object
          - `type` 'rtmp' | 'websocket' | 'webhook' | 'desktop_sdk_callback', required — * `rtmp` - Rtmp * `websocket` - Websocket * `webhook` - Webhook * `desktop_sdk_callback` - Desktop Sdk Callback
          - `url` string, uri, required — The URL of the realtime endpoint.
          - `events` string[], required — The events to send to the realtime endpoint.
        - BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebhookRequest
          - `metadata` object
          - `type` 'rtmp' | 'websocket' | 'webhook' | 'desktop_sdk_callback', required — * `rtmp` - Rtmp * `websocket` - Websocket * `webhook` - Webhook * `desktop_sdk_callback` - Desktop Sdk Callback
          - `url` string, uri, required — The URL of the realtime endpoint.
          - `events` string[], required — The events to send to the realtime endpoint.
        - BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest
          - `metadata` object
          - `type` 'rtmp' | 'websocket' | 'webhook' | 'desktop_sdk_callback', required — * `rtmp` - Rtmp * `websocket` - Websocket * `webhook` - Webhook * `desktop_sdk_callback` - Desktop Sdk Callback
          - `events` string[], required — The events to send to the realtime endpoint.
    - `retention` BotRecordingConfigRetentionRequest
      - `type` 'timed' | 'forever', required — * `timed` - Timed * `forever` - Forever
      - `hours` integer — The number of hours to retain the recording.
    - `video_mixed_layout` 'speaker_view' | 'gallery_view' | 'gallery_view_v2' | 'audio_only' — * `speaker_view` - speaker_view * `gallery_view` - gallery_view * `gallery_view_v2` - gallery_view_v2 * `audio_only` - audio_only
    - `video_mixed_mp4` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
    - `participant_events` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
    - `meeting_metadata` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
    - `video_mixed_participant_video_when_screenshare` 'hide' | 'beside' | 'overlap' — * `hide` - hide * `beside` - beside * `overlap` - overlap
    - `start_recording_on` 'call_join' | 'participant_join' | 'participant_speak' — * `call_join` - call_join * `participant_join` - participant_join * `participant_speak` - participant_speak
    - `include_bot_in_recording` BotIncludeInRecordingRequest
      - `audio` boolean — Whether to record audio from the bot.
    - `metadata` object
    - `audio_mixed_raw` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
    - `audio_mixed_mp3` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
    - `video_separate_mp4` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
    - `audio_separate_raw` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
    - `audio_separate_mp3` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
    - `video_mixed_flv` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
    - `video_separate_png` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
    - `video_separate_h264` BotRecordingConfigBaseArtifactRequest
      - `metadata` object
  - `output_media` OutputMediaRequest
    - `camera` OutputMediaConfigRequest
      - `kind` 'webpage', required — * `webpage` - webpage
      - `config` OutputMediaWebpageConfigRequest, required
        - `url` string, uri, required — URL for the webpage
    - `screenshare` OutputMediaConfigRequest
      - `kind` 'webpage', required — * `webpage` - webpage
      - `config` OutputMediaWebpageConfigRequest, required
        - `url` string, uri, required — URL for the webpage
  - `automatic_video_output` AutomaticVideoOutputRequest
    - `in_call_recording` VideoOutputRequest
      - `kind` 'jpeg', required — * `jpeg` - jpeg
      - `b64_data` string, required — Data encoded in Base64 format, using the standard alphabet (specified here: https://datatracker.ietf.org/doc/html/rfc4648#section-4)
    - `in_call_not_recording` VideoOutputRequest
      - `kind` 'jpeg', required — * `jpeg` - jpeg
      - `b64_data` string, required — Data encoded in Base64 format, using the standard alphabet (specified here: https://datatracker.ietf.org/doc/html/rfc4648#section-4)
  - `automatic_audio_output` AutomaticAudioOutputRequest
    - `in_call_recording` AudioOutputRequest, required
      - `data` AudioOutputDataRequest, required
        - `kind` 'mp3', required — * `mp3` - mp3
        - `b64_data` string, required — Data encoded in Base64 format, using the standard alphabet (specified here: https://datatracker.ietf.org/doc/html/rfc4648#section-4)
      - `replay_on_participant_join` AudioOutputReplayRequest
        - `debounce_mode` 'leading' | 'trailing' — * `leading` - leading * `trailing` - trailing
        - `debounce_interval` integer, required — The amount of time to wait for additional participants to join before replaying the audio.
        - `disable_after` integer — The number of seconds after which the audio will no longer replay when new participants join. This parameter is useful to prevent the bot from interrupting a meeting, if a late participant joins.
  - `chat` ChatRequest
    - `on_bot_join` ChatOnBotJoinRequest
      - `send_to` 'host' | 'everyone' | 'everyone_except_host', required — * `host` - host * `everyone` - everyone * `everyone_except_host` - everyone_except_host
      - `message` string, required
      - `pin` boolean — Pin message after sending. Only Google Meet and Microsoft Teams are supported at this time
    - `on_participant_join` ChatOnParticipantJoinRequest
      - `message` string, required
      - `exclude_host` boolean, required
  - `automatic_leave` AutomaticLeaveRequest
    - `waiting_room_timeout` integer — The number of seconds after which the bot will automatically leave the call, if it has not been let in from the waiting room. If you join Zoom using an OBF token, this timeout also caps how long the bot will wait for the associated user to join the meeting; if the user never joins before the timeout, the join fails with zoom_obf_user_not_in_meeting. Note that this has a max value of 600 seconds for Google Meet and 1800 for Microsoft Teams.
    - `noone_joined_timeout` integer — The number of seconds after which the bot will automatically leave the call, if it has joined the meeting but no other participant has joined.
    - `everyone_left_timeout` AutomaticLeaveEveryoneLeftRequest
      - `timeout` integer — The number of seconds after which the bot will automatically leave the call, if there were other participants in the call who have all left.
      - `activate_after` integer, nullable — The number of seconds after which the bot will start detecting everyone left once it has started recording the call.
    - `in_call_not_recording_timeout` integer — The number of seconds after which the bot will automatically leave the call, if it has joined the call and is not recording.This includes all periods when the bot is not recording, even if the bot has recorded previously.
    - `in_call_recording_timeout` integer — The number of seconds after which the bot will automatically leave the call, if it has joined the call and started recording it. This can be used to enforce a maximum recording time limit for a bot. There is no default value for this parameter, meaning a bot will continue to record for as long as the meeting lasts.
    - `recording_permission_denied_timeout` integer — The number of seconds after which the bot will automatically leave the call, if it has joined the call but has not started recording. For e.g This can occur due to bot being denied permission to record(Zoom meetings).
    - `silence_detection` AutomaticLeaveSilenceDetectionRequest
      - `timeout` integer — The number of seconds of continuous silence after which the bot will automatically leave the call.
      - `activate_after` integer — The number of seconds after which the bot will start detecting silence once it has started recording the call. This parameter can be helpful if the meeting tends to start late, so the bot does not preemptively leave.
    - `bot_detection` AutomaticLeaveBotDetectionRequest
      - `using_participant_events` AutomaticLeaveBotDetectionUsingParticipantEventsRequest
        - `timeout` integer — The number of seconds after which the bot will automatically leave the call if all other participants(in call) are detected as bots using this heuristic. A participant is considered a bot if they have no audio or screenshare activity for the duration of the call.
        - `activate_after` integer — The number of seconds(post recording start) after which the bot will start detecting other participants as bots using this heuristic. This parameter can be helpful if the meeting tends to start late, so the bot does not preemptively leave.
      - `using_participant_names` AutomaticLeaveBotDetectionUsingParticipantNamesRequest
        - `timeout` integer, required — The number of seconds after which the bot will automatically leave the call if all other participants(in call) are detected as bots using this heuristic. A participant is considered a bot if their name contains any of the strings specified in the `matches` parameter(case insensitive match).
        - `activate_after` integer, required — The number of seconds(post recording start) after which the bot will start detecting other participants as bots using this heuristic. This parameter can be helpful if the meeting tends to start late, so the bot does not preemptively leave.
        - `matches` string[], required — A list of strings that the bot will use to detect other bots. If a participant's name contains any of these strings(case insensitive match), they will be considered a bot. If all remaining participants in the call are detected as bots(except the bot itself), the bot will automatically leave the call.For e.g ['notetaker', 'recorder', 'assistant']
  - `variant` BotVariantRequest
    - `zoom` 'web' | 'web_4_core' | 'web_gpu'
    - `google_meet` 'web' | 'web_4_core' | 'web_gpu' — * `web` - web * `web_4_core` - web_4_core * `web_gpu` - web_gpu
    - `microsoft_teams` 'web' | 'web_4_core' | 'web_gpu' — * `web` - web * `web_4_core` - web_4_core * `web_gpu` - web_gpu
    - `webex` 'web' | 'web_4_core' | 'web_gpu' — * `web` - web * `web_4_core` - web_4_core * `web_gpu` - web_gpu
  - `zoom` ZoomRequest
    - `join_token_url` string, uri — A URL which Recall will make a GET request to, in order to retrieve the Zoom Join Token for Local Recording, which the Zoom bot uses to automatically record. This token can be generated through the Zoom API. Docs: https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/meetingLocalRecordingJoinToken
    - `zak_url` string, uri — A URL which Recall will make GET request to, in order to retrieve the ZAK. The V1 Zoom bot uses this to join meetings that require authentication to join.This token can be generated through the Zoom API. Docs: https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/userZak
    - `obf_token_url` string, uri — A URL which Recall will make a GET request to, in order to retrieve the OBF (On Behalf Of) token. The bot uses this to join on behalf of another Zoom user. This token can be generated through the Zoom API. Docs: https://developers.zoom.us/docs/api/rest/reference/user/methods/#operation/userToken
    - `user_email` string, email — This is only required for registration-required webinars. This should be the email address registered for the webinar.
  - `google_meet` GoogleMeetRequest
    - `google_login_group_id` string, uuid, nullable — The ID of the google login group to use for this meeting.
  - `webex` WebexRequest
    - `login_group_name` string — The name of the Webex login group to use for this meeting.
  - `breakout_room` BreakoutRoomSchemaRequest
    - `mode` 'join_main_room' | 'join_specific_room' | 'auto_accept_all_invites', required — * `join_main_room` - join_main_room * `join_specific_room` - join_specific_room * `auto_accept_all_invites` - auto_accept_all_invites
    - `room_id` string, uuid — Required when mode='join_specific_room'.
  - `metadata` object

## Response `201`

- Bot
  - `id` string, uuid, required
  - `meeting_url` union, required
    - WebexMeetingInvite
      - `platform` 'webex', required — * `webex` - webex
      - `meeting_subdomain` string, required
      - `meeting_personal_room_id` string — Required for personal room meetings.
      - `meeting_mtid` string — Required for scheduled/spaces meetings.
      - `meeting_path` string — Required for scheduled/spaces meetings.
    - GmeetMeetingInviteMeetingLink
      - `platform` 'google_meet', required — * `google_meet` - google_meet
      - `meeting_id` string, required
    - GotoMeetingInviteMeetingLink
      - `platform` 'goto_meeting', required — * `goto_meeting` - goto_meeting
      - `meeting_id` string, required
    - TeamsLiveMeetingInviteMeetingLink
      - `platform` 'microsoft_teams_live', required — * `microsoft_teams_live` - microsoft_teams_live
      - `meeting_id` string, required
      - `meeting_password` string, nullable
    - TeamsMeetingInviteMeetingLink
      - `platform` 'microsoft_teams', required — * `microsoft_teams` - microsoft_teams
      - `meeting_id` string, nullable
      - `meeting_password` string, nullable
      - `organizer_id` string, nullable
      - `tenant_id` string, nullable
      - `message_id` string, nullable
      - `thread_id` string, nullable
      - `business_meeting_id` string, nullable
      - `business_meeting_password` string, nullable
    - ZoomMeetingInviteMeetingLink
      - `platform` 'zoom', required — * `zoom` - zoom
      - `meeting_id` string, required
      - `meeting_password` string, nullable
      - `tk` string, nullable
      - `zak` string, nullable
  - `bot_name` string — The name of the bot that will be displayed in the call. *(Note: Authenticated Google Meet bots will use the Google account name and this field will be ignored.)*
  - `join_at` string, date-time, nullable — The time at which the bot will join the call, formatted in ISO 8601. This field can only be read from scheduled bots that have not yet joined a call.
  - `recording_config` BotRecordingConfig
    - `transcript` BotRecordingConfigTranscriptArtifact
      - `metadata` object
      - `provider` BotRecordingConfigTranscriptProvider, required
        - `recallai_streaming` RecallaiStreamingTranscription
          - `language_code` 'auto' | 'bg' | 'ca' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'en_au' | 'en_uk' | 'en_us' | 'es' | 'et' | 'fi' | 'fr' | 'he' | 'hi' | 'hr' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'lt' | 'lv' | 'ms' | 'nl' | 'no' | 'pl' | 'pt' | 'ro' | 'ru' | 'sk' | 'sv' | 'th' | 'tr' | 'uk' | 'vi' | 'zh' — * `auto` - auto * `bg` - bg * `ca` - ca * `cs` - cs * `da` - da * `de` - de * `el` - el * `en` - en * `en_au` - en_au * `en_uk` - en_uk * `en_us` - en_us * `es` - es * `et` - et * `fi` - fi * `fr` - fr * `he` - he * `hi` - hi * `hr` - hr * `hu` - hu * `id` - id * `it` - it * `ja` - ja * `ko` - ko * `lt` - lt * `lv` - lv * `ms` - ms * `nl` - nl * `no` - no * `pl` - pl * `pt` - pt * `ro` - ro * `ru` - ru * `sk` - sk * `sv` - sv * `th` - th * `tr` - tr * `uk` - uk * `vi` - vi * `zh` - zh
          - `spelling` RecallaiSpellingEntry[] — List of text strings to find/replace in the transcript.
            - `find` string[], required — Find any of these items in the source transcript
            - `replace` string, required — Replace found matches with this exact string (will not change case)
          - `key_terms` string[] — Increases the chances that these terms appear in the transcript over some sound-alikes.
          - `filter_profanity` boolean
          - `mode` 'prioritize_low_latency' | 'prioritize_accuracy' — * `prioritize_low_latency` - prioritize_low_latency * `prioritize_accuracy` - prioritize_accuracy
        - `assembly_ai_async_chunked` object — Docs: https://www.assemblyai.com/docs/api-reference/transcripts/submit
          - `audio_end_at` integer — The point in time, in milliseconds, to stop transcribing in your media file. See [Set the start and end of the transcript](https://www.assemblyai.com/docs/pre-recorded-audio/set-the-start-and-end-of-the-transcript) for more details.
          - `audio_start_from` integer — The point in time, in milliseconds, to begin transcribing in your media file. See [Set the start and end of the transcript](https://www.assemblyai.com/docs/pre-recorded-audio/set-the-start-and-end-of-the-transcript) for more details.
          - `auto_chapters` boolean — Enable [Auto Chapters](https://www.assemblyai.com/docs/speech-understanding/auto-chapters), can be true or false
          - `auto_highlights` boolean — Enable [Key Phrases](https://www.assemblyai.com/docs/speech-understanding/key-phrases), either true or false
          - `content_safety` boolean — Enable [Content Moderation](https://www.assemblyai.com/docs/content-moderation), can be true or false
          - `content_safety_confidence` integer — The confidence threshold for the [Content Moderation](https://www.assemblyai.com/docs/content-moderation) model. Values must be between 25 and 100.
          - `custom_spelling` object[] — Customize how words are spelled and formatted using to and from values. See [Custom Spelling](https://www.assemblyai.com/docs/pre-recorded-audio/custom-spelling) for more details.
            - `from` string[], required — Words or phrases to replace
            - `to` string, required — Word to replace with
          - `disfluencies` boolean — Transcribe [Filler Words](https://www.assemblyai.com/docs/pre-recorded-audio/filler-words), like "umm", in your media file; can be true or false
          - `entity_detection` boolean — Enable [Entity Detection](https://www.assemblyai.com/docs/speech-understanding/entity-detection), can be true or false
          - `filter_profanity` boolean — Filter profanity from the transcribed text, can be true or false. See [Profanity Filtering](https://www.assemblyai.com/docs/profanity-filtering) for more details.
          - `format_text` boolean — Enable [Text Formatting](https://www.assemblyai.com/docs/pre-recorded-audio), can be true or false
          - `iab_categories` boolean — Enable [Topic Detection](https://www.assemblyai.com/docs/speech-understanding/topic-detection), can be true or false
          - `keyterms_prompt` string[] — Improve accuracy with up to 200 (for Universal-2) or 1000 (for Universal-3-Pro) domain-specific words or phrases (maximum 6 words per phrase). See [Keyterms Prompting](https://www.assemblyai.com/docs/pre-recorded-audio/keyterms-prompting) for more details.
          - `language_code` union — The language of your audio file. Possible values are found in [Supported Languages](https://www.assemblyai.com/docs/pre-recorded-audio/supported-languages). The default value is 'en_us'.
            - union
              - …
            - string, nullable
          - `language_codes` string[], nullable — The language codes of your audio file. Used for [Code switching](https://www.assemblyai.com/docs/speech-to-text/pre-recorded-audio/code-switching) One of the values specified must be `en`.
          - `language_confidence_threshold` number, float — The confidence threshold for the automatically detected language. An error will be returned if the language confidence is below this threshold. Defaults to 0. See [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection) for more details.
          - `language_detection` boolean — Enable [Automatic language detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection), either true or false.
          - `language_detection_options` object — Specify options for [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection).
            - `expected_languages` string[] — List of languages expected in the audio file. Defaults to `["all"]` when unspecified. See [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection) for more details.
            - `fallback_language` string — If the detected language of the audio file is not in the list of expected languages, the `fallback_language` is used. Specify `["auto"]` to let our model choose the fallback language from `expected_languages` with the highest confidence score. See [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection) for more details.
            - `code_switching` boolean — Whether [code switching](https://www.assemblyai.com/docs/speech-to-text/pre-recorded-audio/code-switching) should be detected.
            - `code_switching_confidence_threshold` number — The confidence threshold for [code switching](https://www.assemblyai.com/docs/speech-to-text/pre-recorded-audio/code-switching) detection. If the code switching confidence is below this threshold, the transcript will be processed in the language with the highest `language_detection_confidence` score.
          - `multichannel` boolean — Enable [Multichannel](https://www.assemblyai.com/docs/pre-recorded-audio/multichannel) transcription, can be true or false.
          - `prompt` string — Provide natural language prompting of up to 1,500 words of contextual information to the model. See the [Prompting Guide](https://www.assemblyai.com/docs/pre-recorded-audio/prompting) for best practices. Note: This parameter is only supported for the Universal-3-Pro model.
          - `punctuate` boolean — Enable [Automatic Punctuation](https://www.assemblyai.com/docs/pre-recorded-audio), can be true or false
          - `redact_pii` boolean — Redact PII from the transcribed text using the Redact PII model, can be true or false. See [PII Redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
          - `redact_pii_audio` boolean — Generate a copy of the original media file with spoken PII "beeped" out, can be true or false. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) for more details.
          - `redact_pii_audio_options` object — Specify options for [PII redacted audio](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) files.
            - `return_redacted_no_speech_audio` boolean — By default, audio redaction provides redacted audio URLs only when speech is detected. However, if your use-case specifically requires redacted audio files even for silent audio files without any dialogue, you can opt to receive these URLs by setting this parameter to `true`.
          - `redact_pii_audio_quality` 'mp3' | 'wav' — Controls the filetype of the audio created by redact_pii_audio. Currently supports mp3 (default) and wav. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) for more details.
          - `redact_pii_policies` string[] — The list of PII Redaction policies to enable. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
          - `redact_pii_sub` union — The replacement logic for detected PII, can be `entity_type` or `hash`. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
            - 'entity_name' | 'hash' — The replacement logic for detected PII, can be `entity_name` or `hash`. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
            - string, nullable
          - `sentiment_analysis` boolean — Enable [Sentiment Analysis](https://www.assemblyai.com/docs/speech-understanding/sentiment-analysis), can be true or false
          - `speaker_labels` boolean — Enable [Speaker diarization](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization), can be true or false
          - `speaker_options` object — Specify options for [Speaker diarization](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-a-range-of-possible-speakers). Use this to set a range of possible speakers.
            - `min_speakers_expected` integer — The minimum number of speakers expected in the audio file. See [Set a range of possible speakers](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-a-range-of-possible-speakers) for more details.
            - `max_speakers_expected` integer — <Warning>Setting this parameter too high may hurt model accuracy</Warning> The maximum number of speakers expected in the audio file. See [Set a range of possible speakers](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-a-range-of-possible-speakers) for more details.
          - `speakers_expected` integer, nullable — Tells the speaker label model how many speakers it should attempt to identify. See [Set number of speakers expected](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-number-of-speakers-expected) for more details.
          - `speech_models` string[] — List multiple speech models in priority order, allowing our system to automatically route your audio to the best available option. See [Model Selection](https://www.assemblyai.com/docs/pre-recorded-audio/select-the-speech-model) for available models and routing behavior.
          - `speech_threshold` number, float, nullable — Reject audio files that contain less than this fraction of speech. Valid values are in the range [0, 1] inclusive. See [Speech Threshold](https://www.assemblyai.com/docs/speech-threshold) for more details.
          - `speech_understanding` object — Enable speech understanding tasks like [Translation](https://www.assemblyai.com/docs/speech-understanding/translation), [Speaker Identification](https://www.assemblyai.com/docs/speech-understanding/speaker-identification), and [Custom Formatting](https://www.assemblyai.com/docs/speech-understanding/custom-formatting). See the task-specific docs for available options and configuration.
            - `request` union, required
              - …
          - `summarization` boolean — Enable [Summarization](https://www.assemblyai.com/docs/speech-understanding/summarization), can be true or false
          - `summary_model` 'informative' | 'conversational' | 'catchy' — The model to summarize the transcript
          - `summary_type` 'bullets' | 'bullets_verbose' | 'gist' | 'headline' | 'paragraph' — The type of summary
          - `temperature` number — Control the amount of randomness injected into the model's response. See the [Prompting Guide](https://www.assemblyai.com/docs/pre-recorded-audio/prompting) for more details. Note: This parameter can only be used with the Universal-3-Pro model.
          - `custom_topics` boolean — This parameter does not currently have any functionality attached to it.
          - `speech_model` union — This parameter has been replaced with the `speech_models` parameter, learn more about the `speech_models` parameter [here](https://www.assemblyai.com/docs/pre-recorded-audio/select-the-speech-model).
            - string — The speech model to use for the transcription. See [Model Selection](https://www.assemblyai.com/docs/pre-recorded-audio/select-the-speech-model) for available models.
            - string, nullable
          - `topics` string[] — This parameter does not currently have any functionality attached to it.
        - `assembly_ai_v3_streaming` object — Docs: https://www.assemblyai.com/docs/api-reference/streaming-api/streaming-api
          - `speech_model` 'universal-streaming-english' | 'universal-streaming-multilingual' | 'whisper-rt' | 'u3-rt-pro' | 'universal-3-5-pro' — The speech model used for your Streaming session.
          - `format_turns` boolean — Whether to return formatted final transcripts.
          - `inactivity_timeout` integer — Optional time in seconds of inactivity before session is terminated. If not set, no inactivity timeout is applied.
          - `keyterms_prompt` string[] — A list of words and phrases to improve recognition accuracy for. See [Keyterms Prompting](https://www.assemblyai.com/docs/streaming/keyterms-prompting) for more details.
          - `language_detection` string — Whether to detect the language and return language metadata on utterances and final turns. Only available for the multilingual model.
          - `max_turn_silence` integer — The maximum amount of silence in milliseconds allowed in a turn before end of turn is triggered. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details.
          - `min_turn_silence` integer — The minimum amount of silence in milliseconds required to detect end of turn when confident. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details.
          - `vad_threshold` number — The confidence threshold (0.0 to 1.0) for classifying audio frames as silence. Frames with VAD confidence below this value are considered silent. Increase for noisy environments to reduce false speech detection.
          - `end_of_turn_confidence_threshold` number — The confidence threshold (0.0 to 1.0) to use when determining if the end of a turn has been reached. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details.
          - `language` 'en' | 'multi' — The language of your audio stream.
        - `deepgram_streaming` object — Docs: https://developers.deepgram.com/reference/streaming
          - `diarize` string — Defaults to `false`. Recognize speaker changes. Each word in the transcript will be assigned a speaker number starting at 0
          - `dictation` string — Identify and extract key entities from content in submitted audio
          - `endpointing` string — Indicates how long Deepgram will wait to detect whether a speaker has finished speaking or pauses for a significant period of time. When set to a value, the streaming endpoint immediately finalizes the transcription for the processed time range and returns the transcript with a speech_final parameter set to true. Can also be set to false to disable endpointing
          - `extra` unknown
          - `filler_words` string — Filler Words can help transcribe interruptions in your audio, like "uh" and "um"
          - `interim_results` string — Specifies whether the streaming endpoint should provide ongoing transcription updates as more audio is received. When set to true, the endpoint sends continuous updates, meaning transcription results may evolve over time
          - `keyterm` unknown
          - `keywords` unknown
          - `language` 'bg' | 'ca' | 'cs' | 'da' | 'da-DK' | 'de' | 'de-CH' | 'el' | 'en' | 'en-AU' | 'en-GB' | 'en-IN' | 'en-NZ' | 'en-US' | 'es' | 'es-419' | 'es-LATAM' | 'et' | 'fi' | 'fr' | 'fr-CA' | 'hi' | 'hi-Latn' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'ko-KR' | 'lt' | 'lv' | 'ms' | 'multi' | 'nl' | 'nl-BE' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'pt-PT' | 'ro' | 'ru' | 'sk' | 'sv' | 'sv-SE' | 'taq' | 'th' | 'th-TH' | 'tr' | 'uk' | 'vi' | 'zh' | 'zh-CN' | 'zh-HK' | 'zh-Hans' | 'zh-Hant' | 'zh-TW' — The [BCP-47 language tag](https://tools.ietf.org/html/bcp47) that hints at the primary spoken language. Depending on the Model you choose only certain languages are available
          - `mip_opt_out` string — Opts out requests from the Deepgram Model Improvement Program. Refer to our Docs for pricing impacts before setting this to true. https://dpgr.am/deepgram-mip
          - `model` 'nova-3' | 'nova-3-general' | 'nova-3-medical' | 'nova-2' | 'nova-2-general' | 'nova-2-meeting' | 'nova-2-finance' | 'nova-2-conversationalai' | 'nova-2-voicemail' | 'nova-2-video' | 'nova-2-medical' | 'nova-2-drivethru' | 'nova-2-automotive' | 'nova' | 'nova-general' | 'nova-phonecall' | 'nova-medical' | 'enhanced' | 'enhanced-general' | 'enhanced-meeting' | 'enhanced-phonecall' | 'enhanced-finance' | 'base' | 'meeting' | 'phonecall' | 'finance' | 'conversationalai' | 'voicemail' | 'video' | 'custom' — AI model to use for the transcription
          - `multichannel` string — Transcribe each audio channel independently
          - `numerals` string — Convert numbers from written format to numerical format
          - `profanity_filter` string — Profanity Filter looks for recognized profanity and converts it to the nearest recognized non-profane word or removes it from the transcript completely
          - `punctuate` string — Add punctuation and capitalization to the transcript
          - `redact` union — Redaction removes sensitive information from your transcripts
            - string
            - string[]
          - `replace` unknown
          - `search` unknown
          - `smart_format` string — Apply formatting to transcript output. When set to true, additional formatting will be applied to transcripts to improve readability
          - `tag` unknown
          - `utterance_end_ms` unknown
          - `vad_events` string — Indicates that speech has started. You'll begin receiving Speech Started messages upon speech starting
          - `version` string — Version of an AI model to use
        - `gladia_v2_streaming` object — Docs: https://docs.gladia.io/reference/live-audio
          - `custom_metadata` object — Custom metadata you can attach to this live transcription
          - `model` 'solaria-1' — The model used to process the audio. "solaria-1" is used by default.
          - `endpointing` number — The endpointing duration in seconds. Endpointing is the duration of silence which will cause an utterance to be considered as finished
          - `maximum_duration_without_endpointing` number — The maximum duration in seconds without endpointing. If endpointing is not detected after this duration, current utterance will be considered as finished
          - `language_config` object — Specify the language configuration
            - `languages` string[] — If one language is set, it will be used for the transcription. Otherwise, language will be auto-detected by the model.
            - `code_switching` boolean — If true, language will be auto-detected on each utterance. Otherwise, language will be auto-detected on first utterance and then used for the rest of the transcription. If one language is set, this option will be ignored.
          - `pre_processing` object — Specify the pre-processing configuration
            - `audio_enhancer` boolean — If true, apply pre-processing to the audio stream to enhance the quality.
            - `speech_threshold` number — Sensitivity configuration for Speech Threshold. A value close to 1 will apply stricter thresholds, making it less likely to detect background sounds as speech.
          - `realtime_processing` object — Specify the realtime processing configuration
            - `custom_vocabulary` boolean — If true, enable custom vocabulary for the transcription.
            - `custom_vocabulary_config` object — Custom vocabulary configuration, if `custom_vocabulary` is enabled
              - …
            - `custom_spelling` boolean — If true, enable custom spelling for the transcription.
            - `custom_spelling_config` object — Custom spelling configuration, if `custom_spelling` is enabled
              - …
            - `translation` boolean — If true, enable translation for the transcription
            - `translation_config` object — Translation configuration, if `translation` is enabled
              - …
            - `named_entity_recognition` boolean — If true, enable named entity recognition for the transcription.
            - `sentiment_analysis` boolean — If true, enable sentiment analysis for the transcription.
          - `post_processing` object — Specify the post-processing configuration
            - `summarization` boolean — If true, generates summarization for the whole transcription.
            - `summarization_config` object — Summarization configuration, if `summarization` is enabled
              - …
            - `chapterization` boolean — If true, generates chapters for the whole transcription.
          - `messages_config` object — Specify the websocket messages configuration
            - `receive_final_transcripts` boolean — If true, final utterance will be sent to websocket.
            - `receive_speech_events` boolean — If true, begin and end speech events will be sent to websocket.
            - `receive_pre_processing_events` boolean — If true, pre-processing events will be sent to websocket.
            - `receive_realtime_processing_events` boolean — If true, realtime processing events will be sent to websocket.
            - `receive_post_processing_events` boolean — If true, post-processing events will be sent to websocket.
            - `receive_acknowledgments` boolean — If true, acknowledgments will be sent to websocket.
            - `receive_errors` boolean — If true, errors will be sent to websocket.
            - `receive_lifecycle_events` boolean — If true, lifecycle events will be sent to websocket.
          - `callback` boolean — If true, messages will be sent to configured url.
          - `callback_config` object — Specify the callback configuration
            - `url` string, uri — URL on which we will do a `POST` request with configured messages
            - `receive_final_transcripts` boolean — If true, final utterance will be sent to the defined callback.
            - `receive_speech_events` boolean — If true, begin and end speech events will be sent to the defined callback.
            - `receive_pre_processing_events` boolean — If true, pre-processing events will be sent to the defined callback.
            - `receive_realtime_processing_events` boolean — If true, realtime processing events will be sent to the defined callback.
            - `receive_post_processing_events` boolean — If true, post-processing events will be sent to the defined callback.
            - `receive_acknowledgments` boolean — If true, acknowledgments will be sent to the defined callback.
            - `receive_errors` boolean — If true, errors will be sent to the defined callback.
            - `receive_lifecycle_events` boolean — If true, lifecycle events will be sent to the defined callback.
        - `rev_streaming` object — Docs: https://docs.rev.ai/api/streaming/requests/
          - `obscure_expletives` boolean
          - `delete_after` string, date-span
          - `audio_options._content_type` string
          - `audio_options._layout` string
          - `audio_options._rate` integer
          - `audio_options._format` string
          - `audio_options._channels` integer
          - `transcriber` 0 | 1
          - `language` string
          - `metadata` string
          - `filter_profanity` boolean
          - `remove_disfluencies` boolean
          - `detailed_partials` boolean
          - `custom_vocabulary_id` string
          - `delete_after_seconds` integer
          - `max_segment_duration_seconds` integer
          - `max_connection_wait_seconds` integer
          - `allow_interruption` boolean
          - `enable_speaker_switch` boolean
          - `start_ts` string, date-span
          - `skip_postprocessing` boolean
          - `priority` 0 | 1
          - `user_agent` string
        - `aws_transcribe_streaming` union — You must specify either: - `language_code`(e.g `en-US`) OR - Set `language_identification` to `true` AND specify `language_options`(e.g `en-US,fr-FR,es-US,de-DE,it-IT`). Docs: https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartStreamTranscription.html
          - object
            - `language_code` string, required — Specify the language code that represents the language spoken. If you're unsure of the language spoken in your audio, consider using IdentifyLanguage to enable automatic language identification.
            - `vocabulary_filter_method` string — Specify how you want your vocabulary filter applied to your transcript. To replace words with ***, choose mask. To delete words, choose remove. To flag words without changing them, choose tag.
            - `vocabulary_filter_name` string — Specify the name of the custom vocabulary filter that you want to use when processing your transcription. Note that vocabulary filter names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary filter must be available in Amazon Transcribe in each Region. If you include IdentifyLanguage and want to use one or more vocabulary filters with your transcription, use the VocabularyFilterNames parameter instead.
            - `vocabulary_name` string — Specify the name of the custom vocabulary that you want to use when processing your transcription. Note that vocabulary names are case sensitive. If you use Amazon Transcribe multiple Regions, the vocabulary must be available in Amazon Transcribe in each Region. If you include IdentifyLanguage and want to use one or more custom vocabularies with your transcription, use the VocabularyNames parameter instead.
            - `region` string — The Amazon Web Services Region in which to use Amazon Transcribe. If you don't specify a Region, then the MediaRegion of the meeting is used. However, if Amazon Transcribe is not available in the MediaRegion, then a TranscriptFailed event is sent. Use auto to use Amazon Transcribe in a Region near the meeting’s MediaRegion. For more information, refer to Choosing a transcription Region in the Amazon Chime SDK Developer Guide.
            - `enable_partial_results_stabilization` boolean — Enables partial result stabilization for your transcription. Partial result stabilization can reduce latency in your output, but may impact accuracy.
            - `partial_results_stability` string — Specify the level of stability to use when you enable partial results stabilization (EnablePartialResultsStabilization). Low stability provides the highest accuracy. High stability transcribes faster, but with slightly lower accuracy.
            - `content_identification_type` string — Labels all personally identifiable information (PII) identified in your transcript. If you don't include PiiEntityTypes, all PII is identified. You can’t set ContentIdentificationType and ContentRedactionType.
            - `content_redaction_type` string — Content redaction is performed at the segment level. If you don't include PiiEntityTypes, all PII is redacted. You can’t set ContentRedactionType and ContentIdentificationType.
            - `pii_entity_types` string — Specify which types of personally identifiable information (PII) you want to redact in your transcript. You can include as many types as you'd like, or you can select ALL. Values must be comma-separated and can include: ADDRESS, BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY CREDIT_DEBIT_NUMBER, EMAIL,NAME, PHONE, PIN, SSN, or ALL. Note that if you include PiiEntityTypes, you must also include ContentIdentificationType or ContentRedactionType. If you include ContentRedactionType or ContentIdentificationType, but do not include PiiEntityTypes, all PII is redacted or identified.
            - `language_model_name` string — Specify the name of the custom language model that you want to use when processing your transcription. Note that language model names are case sensitive. The language of the specified language model must match the language code. If the languages don't match, the custom language model isn't applied. There are no errors or warnings associated with a language mismatch. If you use Amazon Transcribe in multiple Regions, the custom language model must be available in Amazon Transcribe in each Region.
            - `identify_language` boolean — Enables automatic language identification for your transcription. If you include IdentifyLanguage, you can optionally use LanguageOptions to include a list of language codes that you think may be present in your audio stream. Including language options can improve transcription accuracy. You can also use PreferredLanguage to include a preferred language. Doing so can help Amazon Transcribe identify the language faster. You must include either LanguageCode or IdentifyLanguage. Language identification can't be combined with custom language models or redaction.
            - `language_options` string — Specify two or more language codes that represent the languages you think may be present in your media; including more than five is not recommended. If you're unsure what languages are present, do not include this parameter. Including language options can improve the accuracy of language identification. If you include LanguageOptions, you must also include IdentifyLanguage. You can only include one language dialect per language. For example, you cannot include en-US and en-AU.
            - `preferred_language` string — Specify a preferred language from the subset of languages codes you specified in LanguageOptions. You can only use this parameter if you include IdentifyLanguage and LanguageOptions.
            - `vocabulary_names` string — Specify the names of the custom vocabularies that you want to use when processing your transcription. Note that vocabulary names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary must be available in Amazon Transcribe in each Region. If you don't include IdentifyLanguage and want to use a custom vocabulary with your transcription, use the VocabularyName parameter instead.
            - `vocabulary_filter_names` string — Specify the names of the custom vocabulary filters that you want to use when processing your transcription. Note that vocabulary filter names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary filter must be available in Amazon Transcribe in each Region. If you're not including IdentifyLanguage and want to use a custom vocabulary filter with your transcription, use the VocabularyFilterName parameter instead.
          - object
            - `language_code` string — Specify the language code that represents the language spoken. If you're unsure of the language spoken in your audio, consider using IdentifyLanguage to enable automatic language identification.
            - `vocabulary_filter_method` string — Specify how you want your vocabulary filter applied to your transcript. To replace words with ***, choose mask. To delete words, choose remove. To flag words without changing them, choose tag.
            - `vocabulary_filter_name` string — Specify the name of the custom vocabulary filter that you want to use when processing your transcription. Note that vocabulary filter names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary filter must be available in Amazon Transcribe in each Region. If you include IdentifyLanguage and want to use one or more vocabulary filters with your transcription, use the VocabularyFilterNames parameter instead.
            - `vocabulary_name` string — Specify the name of the custom vocabulary that you want to use when processing your transcription. Note that vocabulary names are case sensitive. If you use Amazon Transcribe multiple Regions, the vocabulary must be available in Amazon Transcribe in each Region. If you include IdentifyLanguage and want to use one or more custom vocabularies with your transcription, use the VocabularyNames parameter instead.
            - `region` string — The Amazon Web Services Region in which to use Amazon Transcribe. If you don't specify a Region, then the MediaRegion of the meeting is used. However, if Amazon Transcribe is not available in the MediaRegion, then a TranscriptFailed event is sent. Use auto to use Amazon Transcribe in a Region near the meeting’s MediaRegion. For more information, refer to Choosing a transcription Region in the Amazon Chime SDK Developer Guide.
            - `enable_partial_results_stabilization` boolean — Enables partial result stabilization for your transcription. Partial result stabilization can reduce latency in your output, but may impact accuracy.
            - `partial_results_stability` string — Specify the level of stability to use when you enable partial results stabilization (EnablePartialResultsStabilization). Low stability provides the highest accuracy. High stability transcribes faster, but with slightly lower accuracy.
            - `content_identification_type` string — Labels all personally identifiable information (PII) identified in your transcript. If you don't include PiiEntityTypes, all PII is identified. You can’t set ContentIdentificationType and ContentRedactionType.
            - `content_redaction_type` string — Content redaction is performed at the segment level. If you don't include PiiEntityTypes, all PII is redacted. You can’t set ContentRedactionType and ContentIdentificationType.
            - `pii_entity_types` string — Specify which types of personally identifiable information (PII) you want to redact in your transcript. You can include as many types as you'd like, or you can select ALL. Values must be comma-separated and can include: ADDRESS, BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY CREDIT_DEBIT_NUMBER, EMAIL,NAME, PHONE, PIN, SSN, or ALL. Note that if you include PiiEntityTypes, you must also include ContentIdentificationType or ContentRedactionType. If you include ContentRedactionType or ContentIdentificationType, but do not include PiiEntityTypes, all PII is redacted or identified.
            - `language_model_name` string — Specify the name of the custom language model that you want to use when processing your transcription. Note that language model names are case sensitive. The language of the specified language model must match the language code. If the languages don't match, the custom language model isn't applied. There are no errors or warnings associated with a language mismatch. If you use Amazon Transcribe in multiple Regions, the custom language model must be available in Amazon Transcribe in each Region.
            - `identify_language` true, required — Enables automatic language identification for your transcription. If you include IdentifyLanguage, you can optionally use LanguageOptions to include a list of language codes that you think may be present in your audio stream. Including language options can improve transcription accuracy. You can also use PreferredLanguage to include a preferred language. Doing so can help Amazon Transcribe identify the language faster. You must include either LanguageCode or IdentifyLanguage. Language identification can't be combined with custom language models or redaction.
            - `language_options` string, required — Specify two or more language codes that represent the languages you think may be present in your media; including more than five is not recommended. If you're unsure what languages are present, do not include this parameter. Including language options can improve the accuracy of language identification. If you include LanguageOptions, you must also include IdentifyLanguage. You can only include one language dialect per language. For example, you cannot include en-US and en-AU.
            - `preferred_language` string — Specify a preferred language from the subset of languages codes you specified in LanguageOptions. You can only use this parameter if you include IdentifyLanguage and LanguageOptions.
            - `vocabulary_names` string — Specify the names of the custom vocabularies that you want to use when processing your transcription. Note that vocabulary names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary must be available in Amazon Transcribe in each Region. If you don't include IdentifyLanguage and want to use a custom vocabulary with your transcription, use the VocabularyName parameter instead.
            - `vocabulary_filter_names` string — Specify the names of the custom vocabulary filters that you want to use when processing your transcription. Note that vocabulary filter names are case sensitive. If you use Amazon Transcribe in multiple Regions, the vocabulary filter must be available in Amazon Transcribe in each Region. If you're not including IdentifyLanguage and want to use a custom vocabulary filter with your transcription, use the VocabularyFilterName parameter instead.
        - `speechmatics_streaming` object — You must specify `language` (e.g `en`) Docs: https://docs.speechmatics.com/rt-api-ref#transcription-config
          - `language` string, required
          - `domain` string — Request a specialized model based on 'language' but optimized for a particular field, e.g. "finance" or "medical".
          - `output_locale` string
          - `additional_vocab` object[]
            - `content` string, required
            - `sounds_like` string[]
          - `diarization` 'none' | 'speaker'
          - `max_delay` number
          - `max_delay_mode` 'flexible' | 'fixed'
          - `speaker_diarization_config` object
            - `max_speakers` number
            - `prefer_current_speaker` boolean
            - `speaker_sensitivity` number, float
            - `get_speakers` boolean
            - `speakers` object[]
              - …
          - `audio_filtering_config` object
            - `volume_threshold` number, float
          - `transcript_filtering_config` object
            - `remove_disfluencies` boolean
            - `replacements` object[]
              - …
          - `enable_partials` boolean
          - `enable_entities` boolean
          - `operating_point` 'standard' | 'enhanced'
          - `punctuation_overrides` object
            - `permitted_marks` string[] — The punctuation marks which the client is prepared to accept in transcription output, or the special value 'all' (the default). Unsupported marks are ignored. This value is used to guide the transcription process.
            - `sensitivity` number, float — Ranges between zero and one. Higher values will produce more punctuation. The default is 0.5.
          - `conversation_config` object — This mode will detect when a speaker has stopped talking. The end_of_utterance_silence_trigger is the time in seconds after which the server will assume that the speaker has finished speaking, and will emit an EndOfUtterance message. A value of 0 disables the feature.
            - `end_of_utterance_silence_trigger` number, float
        - `elevenlabs_streaming` object — Docs: https://elevenlabs.io/docs/api-reference/speech-to-text
          - `model_id` string — The model to use for transcription.
          - `language_code` string — ISO 639-1 two-letter language code. When not specified, the model auto-detects the language.
          - `previous_text` string — Text from a previous transcription session to provide context for the model. Sent in the first message to the WebSocket.
        - `meeting_captions` MeetingCaptions
          - `language_code` 'cs' | 'de' | 'en' | 'es' | 'fil' | 'fr' | 'he' | 'hi' | 'it' | 'ja' | 'ko' | 'nl' | 'pl' | 'pt' | 'pt-BR' | 'ro' | 'ru' | 'sv' | 'th' | 'tr' | 'uk' | 'vi' | 'zh' — * `cs` - Czech * `de` - German * `en` - English * `es` - Spanish * `fil` - Filipino * `fr` - French * `he` - Hebrew * `hi` - Hindi * `it` - Italian * `ja` - Japanese * `ko` - Korean * `nl` - Dutch * `pl` - Polish * `pt` - Portuguese * `pt-BR` - Portuguese (Brazil) * `ro` - Romanian * `ru` - Russian * `sv` - Swedish * `th` - Thai * `tr` - Turkish * `uk` - Ukrainian * `vi` - Vietnamese * `zh` - Chinese
      - `diarization` BotRecordingConfigTranscriptDiarization
        - `use_separate_streams_when_available` boolean — Use separate audio streams(a.k.a perfect diarization) when available. This feature has limted support. **[Read more in this guide](https://docs.recall.ai/docs/perfect-diarization)**
    - `realtime_endpoints` BotRecordingConfigRealtimeEndpoint[] — Add endpoints here to receive data (e.g transcript, participant events) from the recording in realtime during the meeting. Default: `[]`
      - union
        - BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointRtmp
          - `metadata` object
          - `type` 'rtmp' | 'websocket' | 'webhook' | 'desktop_sdk_callback', required — * `rtmp` - Rtmp * `websocket` - Websocket * `webhook` - Webhook * `desktop_sdk_callback` - Desktop Sdk Callback
          - `url` string, uri, required — The URL of the realtime endpoint.
          - `events` string[], required — The events to send to the realtime endpoint.
        - BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebsocket
          - `metadata` object
          - `type` 'rtmp' | 'websocket' | 'webhook' | 'desktop_sdk_callback', required — * `rtmp` - Rtmp * `websocket` - Websocket * `webhook` - Webhook * `desktop_sdk_callback` - Desktop Sdk Callback
          - `url` string, uri, required — The URL of the realtime endpoint.
          - `events` string[], required — The events to send to the realtime endpoint.
        - BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebhook
          - `metadata` object
          - `type` 'rtmp' | 'websocket' | 'webhook' | 'desktop_sdk_callback', required — * `rtmp` - Rtmp * `websocket` - Websocket * `webhook` - Webhook * `desktop_sdk_callback` - Desktop Sdk Callback
          - `url` string, uri, required — The URL of the realtime endpoint.
          - `events` string[], required — The events to send to the realtime endpoint.
        - BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointDesktopSdkCallback
          - `metadata` object
          - `type` 'rtmp' | 'websocket' | 'webhook' | 'desktop_sdk_callback', required — * `rtmp` - Rtmp * `websocket` - Websocket * `webhook` - Webhook * `desktop_sdk_callback` - Desktop Sdk Callback
          - `events` string[], required — The events to send to the realtime endpoint.
    - `retention` BotRecordingConfigRetention
      - `type` 'timed' | 'forever', required — * `timed` - Timed * `forever` - Forever
      - `hours` integer — The number of hours to retain the recording.
    - `video_mixed_layout` 'speaker_view' | 'gallery_view' | 'gallery_view_v2' | 'audio_only' — * `speaker_view` - speaker_view * `gallery_view` - gallery_view * `gallery_view_v2` - gallery_view_v2 * `audio_only` - audio_only
    - `video_mixed_mp4` BotRecordingConfigBaseArtifact
      - `metadata` object
    - `participant_events` BotRecordingConfigBaseArtifact
      - `metadata` object
    - `meeting_metadata` BotRecordingConfigBaseArtifact
      - `metadata` object
    - `video_mixed_participant_video_when_screenshare` 'hide' | 'beside' | 'overlap' — * `hide` - hide * `beside` - beside * `overlap` - overlap
    - `start_recording_on` 'call_join' | 'participant_join' | 'participant_speak' — * `call_join` - call_join * `participant_join` - participant_join * `participant_speak` - participant_speak
    - `include_bot_in_recording` BotIncludeInRecording
      - `audio` boolean — Whether to record audio from the bot.
    - `metadata` object
    - `audio_mixed_raw` BotRecordingConfigBaseArtifact
      - `metadata` object
    - `audio_mixed_mp3` BotRecordingConfigBaseArtifact
      - `metadata` object
    - `video_separate_mp4` BotRecordingConfigBaseArtifact
      - `metadata` object
    - `audio_separate_raw` BotRecordingConfigBaseArtifact
      - `metadata` object
    - `audio_separate_mp3` BotRecordingConfigBaseArtifact
      - `metadata` object
    - `video_mixed_flv` BotRecordingConfigBaseArtifact
      - `metadata` object
    - `video_separate_png` BotRecordingConfigBaseArtifact
      - `metadata` object
    - `video_separate_h264` BotRecordingConfigBaseArtifact
      - `metadata` object
  - `status_changes` BotEvent[], required
    - `code` string, required
    - `message` string, required
    - `created_at` string, date-time, required
    - `sub_code` string, required
  - `recordings` BotRecordingEmbed[], required
    - `id` string, uuid, required
    - `created_at` string, date-time, required
    - `started_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable
    - `expires_at` string, date-time, nullable
    - `status` RecordingStatus, required
      - `code` 'processing' | 'paused' | 'done' | 'failed' | 'deleted', required — * `processing` - Processing * `paused` - Paused * `done` - Done * `failed` - Failed * `deleted` - Deleted
      - `sub_code` string, nullable, required
      - `updated_at` string, date-time, required
    - `media_shortcuts` RecordingShortcuts, required
      - `video_mixed` VideoMixedArtifactShortcut, required
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `status` ArtifactStatus, required
          - `code` 'processing' | 'done' | 'failed' | 'deleted', required — * `processing` - Processing * `done` - Done * `failed` - Failed * `deleted` - Deleted
          - `sub_code` string, nullable, required
          - `updated_at` string, date-time, required
        - `metadata` object, required
        - `data` VideoMixedArtifactData, required
          - `download_url` string, uri, nullable, required
        - `format` 'mp4', required — * `mp4` - Mp4
      - `transcript` TranscriptArtifactShortcut, required
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `status` ArtifactStatus, required
          - `code` 'processing' | 'done' | 'failed' | 'deleted', required — * `processing` - Processing * `done` - Done * `failed` - Failed * `deleted` - Deleted
          - `sub_code` string, nullable, required
          - `updated_at` string, date-time, required
        - `metadata` object, required
        - `data` TranscriptArtifactData, required
          - `download_url` string, uri, nullable, required — Download transcript for the recording. **[See response format here](https://docs.recall.ai/docs/download-schemas#json-transcript-download-url)**
          - `provider_data_download_url` string, uri, nullable, required — Download raw transcription data received from the provider for the recording. **[See response format here](https://docs.recall.ai/docs/download-schemas#json-transcript-provider-data-download-url)**
        - `diarization` TranscriptArtifactDiarization, required
          - `use_separate_streams_when_available` boolean, required
        - `provider` TranscriptArtifactProvider, required
          - `assembly_ai_async` object, nullable, required — The parameters for creating a transcript
            - `audio_end_at` integer — The point in time, in milliseconds, to stop transcribing in your media file. See [Set the start and end of the transcript](https://www.assemblyai.com/docs/pre-recorded-audio/set-the-start-and-end-of-the-transcript) for more details.
            - `audio_start_from` integer — The point in time, in milliseconds, to begin transcribing in your media file. See [Set the start and end of the transcript](https://www.assemblyai.com/docs/pre-recorded-audio/set-the-start-and-end-of-the-transcript) for more details.
            - `auto_chapters` boolean — Enable [Auto Chapters](https://www.assemblyai.com/docs/speech-understanding/auto-chapters), can be true or false
            - `auto_highlights` boolean — Enable [Key Phrases](https://www.assemblyai.com/docs/speech-understanding/key-phrases), either true or false
            - `content_safety` boolean — Enable [Content Moderation](https://www.assemblyai.com/docs/content-moderation), can be true or false
            - `content_safety_confidence` integer — The confidence threshold for the [Content Moderation](https://www.assemblyai.com/docs/content-moderation) model. Values must be between 25 and 100.
            - `custom_spelling` object[] — Customize how words are spelled and formatted using to and from values. See [Custom Spelling](https://www.assemblyai.com/docs/pre-recorded-audio/custom-spelling) for more details.
              - …
            - `disfluencies` boolean — Transcribe [Filler Words](https://www.assemblyai.com/docs/pre-recorded-audio/filler-words), like "umm", in your media file; can be true or false
            - `entity_detection` boolean — Enable [Entity Detection](https://www.assemblyai.com/docs/speech-understanding/entity-detection), can be true or false
            - `filter_profanity` boolean — Filter profanity from the transcribed text, can be true or false. See [Profanity Filtering](https://www.assemblyai.com/docs/profanity-filtering) for more details.
            - `format_text` boolean — Enable [Text Formatting](https://www.assemblyai.com/docs/pre-recorded-audio), can be true or false
            - `iab_categories` boolean — Enable [Topic Detection](https://www.assemblyai.com/docs/speech-understanding/topic-detection), can be true or false
            - `keyterms_prompt` string[] — Improve accuracy with up to 200 (for Universal-2) or 1000 (for Universal-3-Pro) domain-specific words or phrases (maximum 6 words per phrase). See [Keyterms Prompting](https://www.assemblyai.com/docs/pre-recorded-audio/keyterms-prompting) for more details.
            - `language_code` union — The language of your audio file. Possible values are found in [Supported Languages](https://www.assemblyai.com/docs/pre-recorded-audio/supported-languages). The default value is 'en_us'.
              - …
            - `language_codes` string[], nullable — The language codes of your audio file. Used for [Code switching](https://www.assemblyai.com/docs/speech-to-text/pre-recorded-audio/code-switching) One of the values specified must be `en`.
            - `language_confidence_threshold` number, float — The confidence threshold for the automatically detected language. An error will be returned if the language confidence is below this threshold. Defaults to 0. See [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection) for more details.
            - `language_detection` boolean — Enable [Automatic language detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection), either true or false.
            - `language_detection_options` object — Specify options for [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection).
              - …
            - `multichannel` boolean — Enable [Multichannel](https://www.assemblyai.com/docs/pre-recorded-audio/multichannel) transcription, can be true or false.
            - `prompt` string — Provide natural language prompting of up to 1,500 words of contextual information to the model. See the [Prompting Guide](https://www.assemblyai.com/docs/pre-recorded-audio/prompting) for best practices. Note: This parameter is only supported for the Universal-3-Pro model.
            - `punctuate` boolean — Enable [Automatic Punctuation](https://www.assemblyai.com/docs/pre-recorded-audio), can be true or false
            - `redact_pii` boolean — Redact PII from the transcribed text using the Redact PII model, can be true or false. See [PII Redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
            - `redact_pii_audio` boolean — Generate a copy of the original media file with spoken PII "beeped" out, can be true or false. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) for more details.
            - `redact_pii_audio_options` object — Specify options for [PII redacted audio](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) files.
              - …
            - `redact_pii_audio_quality` 'mp3' | 'wav' — Controls the filetype of the audio created by redact_pii_audio. Currently supports mp3 (default) and wav. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) for more details.
            - `redact_pii_policies` string[] — The list of PII Redaction policies to enable. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
            - `redact_pii_sub` union — The replacement logic for detected PII, can be `entity_type` or `hash`. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
              - …
            - `sentiment_analysis` boolean — Enable [Sentiment Analysis](https://www.assemblyai.com/docs/speech-understanding/sentiment-analysis), can be true or false
            - `speaker_labels` boolean — Enable [Speaker diarization](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization), can be true or false
            - `speaker_options` object — Specify options for [Speaker diarization](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-a-range-of-possible-speakers). Use this to set a range of possible speakers.
              - …
            - `speakers_expected` integer, nullable — Tells the speaker label model how many speakers it should attempt to identify. See [Set number of speakers expected](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-number-of-speakers-expected) for more details.
            - `speech_models` string[] — List multiple speech models in priority order, allowing our system to automatically route your audio to the best available option. See [Model Selection](https://www.assemblyai.com/docs/pre-recorded-audio/select-the-speech-model) for available models and routing behavior.
            - `speech_threshold` number, float, nullable — Reject audio files that contain less than this fraction of speech. Valid values are in the range [0, 1] inclusive. See [Speech Threshold](https://www.assemblyai.com/docs/speech-threshold) for more details.
            - `speech_understanding` object — Enable speech understanding tasks like [Translation](https://www.assemblyai.com/docs/speech-understanding/translation), [Speaker Identification](https://www.assemblyai.com/docs/speech-understanding/speaker-identification), and [Custom Formatting](https://www.assemblyai.com/docs/speech-understanding/custom-formatting). See the task-specific docs for available options and configuration.
              - …
            - `summarization` boolean — Enable [Summarization](https://www.assemblyai.com/docs/speech-understanding/summarization), can be true or false
            - `summary_model` 'informative' | 'conversational' | 'catchy' — The model to summarize the transcript
            - `summary_type` 'bullets' | 'bullets_verbose' | 'gist' | 'headline' | 'paragraph' — The type of summary
            - `temperature` number — Control the amount of randomness injected into the model's response. See the [Prompting Guide](https://www.assemblyai.com/docs/pre-recorded-audio/prompting) for more details. Note: This parameter can only be used with the Universal-3-Pro model.
            - `webhook_auth_header_name` string, nullable — The header name to be sent with the transcript completed or failed [webhook](https://www.assemblyai.com/docs/deployment/webhooks-for-pre-recorded-audio) requests
            - `webhook_auth_header_value` string, nullable — The header value to send back with the transcript completed or failed [webhook](https://www.assemblyai.com/docs/deployment/webhooks-for-pre-recorded-audio) requests for added security
            - `webhook_url` string, url — The URL to which we send [webhook](https://www.assemblyai.com/docs/deployment/webhooks-for-pre-recorded-audio) requests.
            - `custom_topics` boolean — This parameter does not currently have any functionality attached to it.
            - `speech_model` union — This parameter has been replaced with the `speech_models` parameter, learn more about the `speech_models` parameter [here](https://www.assemblyai.com/docs/pre-recorded-audio/select-the-speech-model).
              - …
            - `topics` string[] — This parameter does not currently have any functionality attached to it.
          - `deepgram_async` object, nullable, required
            - `callback` string
            - `callback_method` 'POST' | 'PUT'
            - `custom_topic` union
              - …
            - `custom_topic_mode` 'extended' | 'strict'
            - `custom_intent` union
              - …
            - `custom_intent_mode` 'extended' | 'strict'
            - `detect_entities` boolean
            - `detect_language` union
              - …
            - `diarize` boolean
            - `dictation` boolean
            - `encoding` 'linear16' | 'flac' | 'mulaw' | 'amr-nb' | 'amr-wb' | 'opus' | 'speex' | 'g729'
            - `extra` union
              - …
            - `filler_words` boolean
            - `intents` boolean
            - `keyterm` string[]
            - `keywords` union
              - …
            - `language` 'bg' | 'ca' | 'zh' | 'zh-CN' | 'zh-TW' | 'zh-HK' | 'zh-Hans' | 'zh-Hant' | 'cs' | 'da' | 'da-DK' | 'nl' | 'nl-BE' | 'en' | 'en-US' | 'en-AU' | 'en-GB' | 'en-NZ' | 'en-IN' | 'et' | 'fi' | 'fr' | 'fr-CA' | 'de' | 'de-CH' | 'el' | 'hi' | 'hi-Latn' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'ko-KR' | 'lv' | 'lt' | 'ms' | 'multi' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'pt-PT' | 'ro' | 'ru' | 'sk' | 'es' | 'es-419' | 'es-LATAM' | 'sv' | 'sv-SE' | 'taq' | 'th' | 'th-TH' | 'tr' | 'uk' | 'vi'
            - `measurements` boolean
            - `mip_opt_out` boolean
            - `model` union
              - …
            - `multichannel` boolean
            - `numerals` boolean
            - `paragraphs` boolean
            - `profanity_filter` boolean
            - `punctuate` boolean
            - `redact` union
              - …
            - `replace` union
              - …
            - `search` union
              - …
            - `sentiment` boolean
            - `smart_format` boolean
            - `summarize` unknown
            - `tag` union
              - …
            - `topics` boolean
            - `utterances` boolean
            - `utt_split` number
            - `version` union
              - …
          - `gladia_v2_async` object, nullable, required
            - `context_prompt` string — **[Deprecated]** Context to feed the transcription model with for possible better accuracy
            - `custom_vocabulary` boolean — **[Beta]** Can be either boolean to enable custom_vocabulary for this audio or an array with specific vocabulary list to feed the transcription model with
            - `custom_vocabulary_config` object — **[Beta]** Custom vocabulary configuration, if `custom_vocabulary` is enabled
              - …
            - `detect_language` boolean — **[Deprecated]** Use `language_config` instead. Detect the language from the given audio
            - `enable_code_switching` boolean — **[Deprecated]** Use `language_config` instead.Detect multiple languages in the given audio
            - `code_switching_config` object — **[Deprecated]** Use `language_config` instead. Specify the configuration for code switching
              - …
            - `language` 'af' | 'sq' | 'am' | 'ar' | 'hy' | 'as' | 'az' | 'ba' | 'eu' | 'be' | 'bn' | 'bs' | 'br' | 'bg' | 'ca' | 'zh' | 'hr' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fo' | 'fi' | 'fr' | 'gl' | 'ka' | 'de' | 'el' | 'gu' | 'ht' | 'ha' | 'haw' | 'he' | 'hi' | 'hu' | 'is' | 'id' | 'it' | 'ja' | 'jv' | 'kn' | 'kk' | 'km' | 'ko' | 'lo' | 'la' | 'lv' | 'ln' | 'lt' | 'lb' | 'mk' | 'mg' | 'ms' | 'ml' | 'mt' | 'mi' | 'mr' | 'mn' | 'mymr' | 'ne' | 'no' | 'nn' | 'oc' | 'ps' | 'fa' | 'pl' | 'pt' | 'pa' | 'ro' | 'ru' | 'sa' | 'sr' | 'sn' | 'sd' | 'si' | 'sk' | 'sl' | 'so' | 'es' | 'su' | 'sw' | 'sv' | 'tl' | 'tg' | 'ta' | 'tt' | 'te' | 'th' | 'bo' | 'tr' | 'tk' | 'uk' | 'ur' | 'uz' | 'vi' | 'cy' | 'yi' | 'yo' | 'jp' — **[Deprecated]** Use `language_config` instead. Set the spoken language for the given audio (ISO 639 standard)
            - `callback_url` string, uri — **[Deprecated]** Use `callback`/`callback_config` instead. Callback URL we will do a `POST` request to with the result of the transcription
            - `callback` boolean — Enable callback for this transcription. If true, the `callback_config` property will be used to customize the callback behaviour
            - `callback_config` object — Customize the callback behaviour (url and http method)
              - …
            - `subtitles` boolean — Enable subtitles generation for this transcription
            - `subtitles_config` object — Configuration for subtitles generation if `subtitles` is enabled
              - …
            - `diarization` boolean — Enable speaker recognition (diarization) for this audio
            - `diarization_config` object — Speaker recognition configuration, if `diarization` is enabled
              - …
            - `translation` boolean — **[Beta]** Enable translation for this audio
            - `translation_config` object — **[Beta]** Translation configuration, if `translation` is enabled
              - …
            - `summarization` boolean — **[Beta]** Enable summarization for this audio
            - `summarization_config` object — **[Beta]** Summarization configuration, if `summarization` is enabled
              - …
            - `moderation` boolean — **[Alpha]** Enable moderation for this audio
            - `named_entity_recognition` boolean — **[Alpha]** Enable named entity recognition for this audio
            - `chapterization` boolean — **[Alpha]** Enable chapterization for this audio
            - `name_consistency` boolean — **[Alpha]** Enable names consistency for this audio
            - `custom_spelling` boolean — **[Alpha]** Enable custom spelling for this audio
            - `custom_spelling_config` object — **[Alpha]** Custom spelling configuration, if `custom_spelling` is enabled
              - …
            - `structured_data_extraction` boolean — **[Alpha]** Enable structured data extraction for this audio
            - `structured_data_extraction_config` object — **[Alpha]** Structured data extraction configuration, if `structured_data_extraction` is enabled
              - …
            - `sentiment_analysis` boolean — **[Alpha]** Enable sentiment analysis for this audio
            - `audio_to_llm` boolean — **[Alpha]** Enable audio to llm processing for this audio
            - `audio_to_llm_config` object — **[Alpha]** Audio to llm configuration, if `audio_to_llm` is enabled
              - …
            - `custom_metadata` object — Custom metadata you can attach to this transcription
            - `sentences` boolean — Enable sentences for this audio
            - `display_mode` boolean — **[Alpha]** Allows to change the output display_mode for this audio. The output will be reordered, creating new utterances when speakers overlapped
            - `punctuation_enhanced` boolean — **[Alpha]** Use enhanced punctuation for this audio
            - `language_config` object — Specify the language configuration
              - …
          - `rev_async` object, nullable, required
            - `metadata` string, nullable — Optional metadata for the job
            - `delete_after` string, date-span, nullable — Optional setting for the number of Seconds after job completion when the job should be auto-deleted
            - `language` string, nullable — Optional language setting for foreign languages
            - `skip_diarization` boolean, nullable — Optional setting for turning on/off diarization. If not set, we will assume the value is false.
            - `skip_postprocessing` boolean, nullable — Optional setting for turning on/off postprocessing. If not set, we will assume the value is false.
            - `custom_vocabularies` object[], nullable — Optional setting for passing in custom vocabularies.
              - …
            - `custom_vocabulary_id` string, nullable — The id of the prebuilt custom vocabulary job
            - `strict_custom_vocabulary` boolean, nullable — If true, only exact phrases submitted in the Rev.Ai.Api.Models.SubmitJobOptions.CustomVocabularies option will be used as custom vocabulary, i.e. phrases will not be split into individual words for processing. Defaults to true if Rev.Ai.Api.Models.SubmitJobOptions.CustomVocabularies is set.
            - `skip_punctuation` boolean, nullable — Optional setting for disabling punctuation. If unset, the value is assumed to be false.
            - `remove_disfluencies` boolean, nullable — Optional setting for removing disfluencies If unset the value is assumed to be false
            - `remove_atmospherics` boolean, nullable — Optional setting for removing atmospherics If unset the value is assumed to be false
            - `filter_profanity` boolean, nullable — Optional setting for removing profanities If unset the value is assumed to be false
            - `add_data_labels` boolean, nullable — Optional setting for adding data classification labels If unset the value is assumed to be false
            - `enable_redaction` boolean, nullable — Optional setting for redacting certain data labels If unset the value is assumed to be false
            - `speaker_channels_count` integer, nullable — Optional speaker channels count used to indicate how many individual channels to transcribe for a given audio
            - `speakers_count` integer, nullable — Optional count of speakers in the audio to improve diarization accuracy
            - `alternatives_count` integer, nullable — Optional count of alternatives to generate
            - `deletion_length_penalty` integer, nullable
            - `chunk_size` string, date-span, nullable — Optional chunk size to be sent to Revspeech for processing
            - `transcriber` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17
            - `verbatim` boolean, nullable — Instructs Revver to transcribe audio with all details including disfluencies and other verbal interactions such as laughter
            - `rush` boolean, nullable — Whether human order should be rushed at a greater cost to the customer
            - `segments_to_transcribe` object[], nullable — Specific segments of the file to be transcribed by a human
              - …
            - `test_mode` boolean, nullable — Whether human order is test mode and should return a dummy transcript
            - `speaker_names` object[], nullable — Speaker names for human transcription
              - …
            - `predict_topics` boolean, nullable — Whether to predict topics while performing speech rec
            - `top_nwords` integer, nullable — Returns the top n words of a transcript. Defaults to 0
            - `forced_alignment` boolean, nullable — Whether improved alignment should be used with transcription
            - `enable_fusion` boolean, nullable — Whether transcription should be done with fusion
            - `domain` 0 | 1
            - `apply_duration_padding` boolean, nullable — If set adds one second of silence to the audio at the end
            - `diarization_type` 0 | 10 | 20
            - `summarization_config` object — Summarization options.
              - …
            - `captions_config` object — Caption options.
            - `translation_config` object — Options for translation as part of Async job request
              - …
          - `speechmatics_async` object, nullable, required — JSON object that contains various groups of job configuration parameters. Based on the value of `type`, a type-specific object such as `transcription_config` is required to be present to specify all configuration settings or parameters needed to process the job inputs as expected. If the results of the job are to be forwarded on completion, `notification_config` can be provided with a list of callbacks to be made; no assumptions should be made about the order in which they will occur. Customer specific job details or metadata can be supplied in `tracking`, and this information will be available where possible in the job results and in callbacks.
            - `alignment_config` object
              - …
            - `transcription_config` object
              - …
            - `tracking` object
              - …
            - `output_config` object
              - …
            - `translation_config` object
              - …
            - `language_identification_config` object
              - …
            - `summarization_config` object
              - …
            - `sentiment_analysis_config` object
            - `topic_detection_config` object
              - …
            - `auto_chapters_config` object
            - `audio_events_config` object
              - …
          - `recallai_async` object, nullable, required — Docs: https://docs.recall.ai/docs/recallai-transcription
            - `language_code` 'auto' | 'bg' | 'ca' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'en_au' | 'en_uk' | 'en_us' | 'es' | 'et' | 'fi' | 'fr' | 'he' | 'hi' | 'hr' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'lt' | 'lv' | 'ms' | 'nl' | 'no' | 'pl' | 'pt' | 'ro' | 'ru' | 'sk' | 'sv' | 'th' | 'tr' | 'uk' | 'vi' | 'zh' — Must be `en` in low latency mode. Docs: https://docs.recall.ai/docs/recallai-transcription * `auto` - auto * `bg` - bg * `ca` - ca * `cs` - cs * `da` - da * `de` - de * `el` - el * `en` - en * `en_au` - en_au * `en_uk` - en_uk * `en_us` - en_us * `es` - es * `et` - et * `fi` - fi * `fr` - fr * `he` - he * `hi` - hi * `hr` - hr * `hu` - hu * `id` - id * `it` - it * `ja` - ja * `ko` - ko * `lt` - lt * `lv` - lv * `ms` - ms * `nl` - nl * `no` - no * `pl` - pl * `pt` - pt * `ro` - ro * `ru` - ru * `sk` - sk * `sv` - sv * `th` - th * `tr` - tr * `uk` - uk * `vi` - vi * `zh` - zh
            - `spelling` RecallaiSpellingEntry[] — List of text strings to find/replace in the transcript.
              - …
            - `key_terms` string[] — Increases the chances that these terms appear in the transcript over some sound-alikes.
            - `filter_profanity` boolean
          - `google_speech_v2_async` object, nullable, required — Docs: https://docs.cloud.google.com/speech-to-text/docs/reference/rest/v2/projects.locations.recognizers/batchRecognize
            - `recognizer` string — Required. The name of the Recognizer to use during recognition. The expected format is `projects/{project}/locations/{location}/recognizers/{recognizer}`. The {recognizer} segment may be set to `_` to use an empty implicit Recognizer.
            - `config` object — Provides information to the Recognizer that specifies how to process the recognition request.
              - …
            - `configMask` string, google-fieldmask — The list of fields in config that override the values in the default_recognition_config of the recognizer during this recognition request. If no mask is provided, all given fields in config override the values in the recognizer for this recognition request. If a mask is provided, only the fields listed in the mask override the config in the recognizer for this recognition request. If a wildcard (`*`) is provided, config completely overrides and replaces the config in the recognizer for this recognition request.
          - `aws_transcribe_async` object, nullable, required — Docs: https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html
          - `elevenlabs_async` object, nullable, required — Docs: https://elevenlabs.io/docs/api-reference/speech-to-text
            - `model_id` 'scribe_v1' | 'scribe_v2', required — The ID of the model to use for transcription.
            - `language_code` union — An ISO-639-1 or ISO-639-3 language_code corresponding to the language of the audio file. Can sometimes improve transcription performance if known beforehand. Defaults to null, in this case the language is predicted automatically.
              - …
            - `tag_audio_events` boolean — Whether to tag audio events like (laughter), (footsteps), etc. in the transcription.
            - `num_speakers` union — The maximum amount of speakers talking in the uploaded file. Can help with predicting who speaks when. The maximum amount of speakers that can be predicted is 32. Defaults to null, in this case the amount of speakers is set to the maximum value the model supports.
              - …
            - `diarize` boolean — Whether to annotate which speaker is currently talking in the uploaded file.
            - `diarization_threshold` union — Diarization threshold to apply during speaker diarization. A higher value means there will be a lower chance of one speaker being diarized as two different speakers but also a higher chance of two different speakers being diarized as one speaker (less total speakers predicted). A low value means there will be a higher chance of one speaker being diarized as two different speakers but also a lower chance of two different speakers being diarized as one speaker (more total speakers predicted). Can only be set when diarize=True and num_speakers=None. Defaults to None, in which case we will choose a threshold based on the model_id (0.22 usually).
              - …
            - `additional_formats` union[]
              - …
            - `webhook_id` union — Optional specific webhook ID to send the transcription result to. Only valid when webhook is set to true. If not provided, transcription will be sent to all configured speech-to-text webhooks.
              - …
            - `temperature` union — Controls the randomness of the transcription output. Accepts values between 0.0 and 2.0, where higher values result in more diverse and less deterministic results. If omitted, we will use a temperature based on the model you selected which is usually 0.
              - …
            - `seed` union — If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be an integer between 0 and 2147483647.
              - …
            - `webhook_metadata` union — Optional metadata to be included in the webhook response. This should be a JSON string representing an object with a maximum depth of 2 levels and maximum size of 16KB. Useful for tracking internal IDs, job references, or other contextual information.
              - …
            - `entity_detection` union — Detect entities in the transcript. Can be 'all' to detect all entities, a single entity type or category string, or a list of entity types/categories. Categories include 'pii', 'phi', 'pci', 'other', 'offensive_language'. When enabled, detected entities will be returned in the 'entities' field with their text, type, and character positions.
              - …
            - `keyterms` string[] — A list of keyterms to bias the transcription towards. The keyterms are words or phrases you want the model to recognise more accurately. The number of keyterms cannot exceed 100. The length of each keyterm must be less than 50 characters. Keyterms can contain at most 5 words (after normalisation). For example ["hello", "world", "technical term"]
          - `assembly_ai_async_chunked` object — Docs: https://www.assemblyai.com/docs/api-reference/transcripts/submit
            - `audio_end_at` integer — The point in time, in milliseconds, to stop transcribing in your media file. See [Set the start and end of the transcript](https://www.assemblyai.com/docs/pre-recorded-audio/set-the-start-and-end-of-the-transcript) for more details.
            - `audio_start_from` integer — The point in time, in milliseconds, to begin transcribing in your media file. See [Set the start and end of the transcript](https://www.assemblyai.com/docs/pre-recorded-audio/set-the-start-and-end-of-the-transcript) for more details.
            - `auto_chapters` boolean — Enable [Auto Chapters](https://www.assemblyai.com/docs/speech-understanding/auto-chapters), can be true or false
            - `auto_highlights` boolean — Enable [Key Phrases](https://www.assemblyai.com/docs/speech-understanding/key-phrases), either true or false
            - `content_safety` boolean — Enable [Content Moderation](https://www.assemblyai.com/docs/content-moderation), can be true or false
            - `content_safety_confidence` integer — The confidence threshold for the [Content Moderation](https://www.assemblyai.com/docs/content-moderation) model. Values must be between 25 and 100.
            - `custom_spelling` object[] — Customize how words are spelled and formatted using to and from values. See [Custom Spelling](https://www.assemblyai.com/docs/pre-recorded-audio/custom-spelling) for more details.
              - …
            - `disfluencies` boolean — Transcribe [Filler Words](https://www.assemblyai.com/docs/pre-recorded-audio/filler-words), like "umm", in your media file; can be true or false
            - `entity_detection` boolean — Enable [Entity Detection](https://www.assemblyai.com/docs/speech-understanding/entity-detection), can be true or false
            - `filter_profanity` boolean — Filter profanity from the transcribed text, can be true or false. See [Profanity Filtering](https://www.assemblyai.com/docs/profanity-filtering) for more details.
            - `format_text` boolean — Enable [Text Formatting](https://www.assemblyai.com/docs/pre-recorded-audio), can be true or false
            - `iab_categories` boolean — Enable [Topic Detection](https://www.assemblyai.com/docs/speech-understanding/topic-detection), can be true or false
            - `keyterms_prompt` string[] — Improve accuracy with up to 200 (for Universal-2) or 1000 (for Universal-3-Pro) domain-specific words or phrases (maximum 6 words per phrase). See [Keyterms Prompting](https://www.assemblyai.com/docs/pre-recorded-audio/keyterms-prompting) for more details.
            - `language_code` union — The language of your audio file. Possible values are found in [Supported Languages](https://www.assemblyai.com/docs/pre-recorded-audio/supported-languages). The default value is 'en_us'.
              - …
            - `language_codes` string[], nullable — The language codes of your audio file. Used for [Code switching](https://www.assemblyai.com/docs/speech-to-text/pre-recorded-audio/code-switching) One of the values specified must be `en`.
            - `language_confidence_threshold` number, float — The confidence threshold for the automatically detected language. An error will be returned if the language confidence is below this threshold. Defaults to 0. See [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection) for more details.
            - `language_detection` boolean — Enable [Automatic language detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection), either true or false.
            - `language_detection_options` object — Specify options for [Automatic Language Detection](https://www.assemblyai.com/docs/pre-recorded-audio/language-detection).
              - …
            - `multichannel` boolean — Enable [Multichannel](https://www.assemblyai.com/docs/pre-recorded-audio/multichannel) transcription, can be true or false.
            - `prompt` string — Provide natural language prompting of up to 1,500 words of contextual information to the model. See the [Prompting Guide](https://www.assemblyai.com/docs/pre-recorded-audio/prompting) for best practices. Note: This parameter is only supported for the Universal-3-Pro model.
            - `punctuate` boolean — Enable [Automatic Punctuation](https://www.assemblyai.com/docs/pre-recorded-audio), can be true or false
            - `redact_pii` boolean — Redact PII from the transcribed text using the Redact PII model, can be true or false. See [PII Redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
            - `redact_pii_audio` boolean — Generate a copy of the original media file with spoken PII "beeped" out, can be true or false. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) for more details.
            - `redact_pii_audio_options` object — Specify options for [PII redacted audio](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) files.
              - …
            - `redact_pii_audio_quality` 'mp3' | 'wav' — Controls the filetype of the audio created by redact_pii_audio. Currently supports mp3 (default) and wav. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction#request-for-redacted-audio) for more details.
            - `redact_pii_policies` string[] — The list of PII Redaction policies to enable. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
            - `redact_pii_sub` union — The replacement logic for detected PII, can be `entity_type` or `hash`. See [PII redaction](https://www.assemblyai.com/docs/pii-redaction) for more details.
              - …
            - `sentiment_analysis` boolean — Enable [Sentiment Analysis](https://www.assemblyai.com/docs/speech-understanding/sentiment-analysis), can be true or false
            - `speaker_labels` boolean — Enable [Speaker diarization](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization), can be true or false
            - `speaker_options` object — Specify options for [Speaker diarization](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-a-range-of-possible-speakers). Use this to set a range of possible speakers.
              - …
            - `speakers_expected` integer, nullable — Tells the speaker label model how many speakers it should attempt to identify. See [Set number of speakers expected](https://www.assemblyai.com/docs/pre-recorded-audio/speaker-diarization#set-number-of-speakers-expected) for more details.
            - `speech_models` string[] — List multiple speech models in priority order, allowing our system to automatically route your audio to the best available option. See [Model Selection](https://www.assemblyai.com/docs/pre-recorded-audio/select-the-speech-model) for available models and routing behavior.
            - `speech_threshold` number, float, nullable — Reject audio files that contain less than this fraction of speech. Valid values are in the range [0, 1] inclusive. See [Speech Threshold](https://www.assemblyai.com/docs/speech-threshold) for more details.
            - `speech_understanding` object — Enable speech understanding tasks like [Translation](https://www.assemblyai.com/docs/speech-understanding/translation), [Speaker Identification](https://www.assemblyai.com/docs/speech-understanding/speaker-identification), and [Custom Formatting](https://www.assemblyai.com/docs/speech-understanding/custom-formatting). See the task-specific docs for available options and configuration.
              - …
            - `summarization` boolean — Enable [Summarization](https://www.assemblyai.com/docs/speech-understanding/summarization), can be true or false
            - `summary_model` 'informative' | 'conversational' | 'catchy' — The model to summarize the transcript
            - `summary_type` 'bullets' | 'bullets_verbose' | 'gist' | 'headline' | 'paragraph' — The type of summary
            - `temperature` number — Control the amount of randomness injected into the model's response. See the [Prompting Guide](https://www.assemblyai.com/docs/pre-recorded-audio/prompting) for more details. Note: This parameter can only be used with the Universal-3-Pro model.
            - `custom_topics` boolean — This parameter does not currently have any functionality attached to it.
            - `speech_model` union — This parameter has been replaced with the `speech_models` parameter, learn more about the `speech_models` parameter [here](https://www.assemblyai.com/docs/pre-recorded-audio/select-the-speech-model).
              - …
            - `topics` string[] — This parameter does not currently have any functionality attached to it.
          - `assembly_ai_v3_streaming` object — Docs: https://www.assemblyai.com/docs/api-reference/streaming-api/streaming-api
            - `speech_model` 'universal-streaming-english' | 'universal-streaming-multilingual' | 'whisper-rt' | 'u3-rt-pro' | 'universal-3-5-pro' — The speech model used for your Streaming session.
            - `format_turns` boolean — Whether to return formatted final transcripts.
            - `inactivity_timeout` integer — Optional time in seconds of inactivity before session is terminated. If not set, no inactivity timeout is applied.
            - `keyterms_prompt` string[] — A list of words and phrases to improve recognition accuracy for. See [Keyterms Prompting](https://www.assemblyai.com/docs/streaming/keyterms-prompting) for more details.
            - `language_detection` string — Whether to detect the language and return language metadata on utterances and final turns. Only available for the multilingual model.
            - `max_turn_silence` integer — The maximum amount of silence in milliseconds allowed in a turn before end of turn is triggered. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details.
            - `min_turn_silence` integer — The minimum amount of silence in milliseconds required to detect end of turn when confident. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details.
            - `vad_threshold` number — The confidence threshold (0.0 to 1.0) for classifying audio frames as silence. Frames with VAD confidence below this value are considered silent. Increase for noisy environments to reduce false speech detection.
            - `end_of_turn_confidence_threshold` number — The confidence threshold (0.0 to 1.0) to use when determining if the end of a turn has been reached. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details.
            - `language` 'en' | 'multi' — The language of your audio stream.
          - `recallai_streaming` RecallaiStreamingTranscription
            - `language_code` 'auto' | 'bg' | 'ca' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'en_au' | 'en_uk' | 'en_us' | 'es' | 'et' | 'fi' | 'fr' | 'he' | 'hi' | 'hr' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'lt' | 'lv' | 'ms' | 'nl' | 'no' | 'pl' | 'pt' | 'ro' | 'ru' | 'sk' | 'sv' | 'th' | 'tr' | 'uk' | 'vi' | 'zh' — * `auto` - auto * `bg` - bg * `ca` - ca * `cs` - cs * `da` - da * `de` - de * `el` - el * `en` - en * `en_au` - en_au * `en_uk` - en_uk * `en_us` - en_us * `es` - es * `et` - et * `fi` - fi * `fr` - fr * `he` - he * `hi` - hi * `hr` - hr * `hu` - hu * `id` - id * `it` - it * `ja` - ja * `ko` - ko * `lt` - lt * `lv` - lv * `ms` - ms * `nl` - nl * `no` - no * `pl` - pl * `pt` - pt * `ro` - ro * `ru` - ru * `sk` - sk * `sv` - sv * `th` - th * `tr` - tr * `uk` - uk * `vi` - vi * `zh` - zh
            - `spelling` RecallaiSpellingEntry[] — List of text strings to find/replace in the transcript.
              - …
            - `key_terms` string[] — Increases the chances that these terms appear in the transcript over some sound-alikes.
            - `filter_profanity` boolean
            - `mode` 'prioritize_low_latency' | 'prioritize_accuracy' — * `prioritize_low_latency` - prioritize_low_latency * `prioritize_accuracy` - prioritize_accuracy
          - `deepgram_streaming` object — Docs: https://developers.deepgram.com/reference/streaming
            - `diarize` string — Defaults to `false`. Recognize speaker changes. Each word in the transcript will be assigned a speaker number starting at 0
            - `dictation` string — Identify and extract key entities from content in submitted audio
            - `endpointing` string — Indicates how long Deepgram will wait to detect whether a speaker has finished speaking or pauses for a significant period of time. When set to a value, the streaming endpoint immediately finalizes the transcription for the processed time range and returns the transcript with a speech_final parameter set to true. Can also be set to false to disable endpointing
            - `extra` unknown
            - `filler_words` string — Filler Words can help transcribe interruptions in your audio, like "uh" and "um"
            - `interim_results` string — Specifies whether the streaming endpoint should provide ongoing transcription updates as more audio is received. When set to true, the endpoint sends continuous updates, meaning transcription results may evolve over time
            - `keyterm` unknown
            - `keywords` unknown
            - `language` 'bg' | 'ca' | 'cs' | 'da' | 'da-DK' | 'de' | 'de-CH' | 'el' | 'en' | 'en-AU' | 'en-GB' | 'en-IN' | 'en-NZ' | 'en-US' | 'es' | 'es-419' | 'es-LATAM' | 'et' | 'fi' | 'fr' | 'fr-CA' | 'hi' | 'hi-Latn' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'ko-KR' | 'lt' | 'lv' | 'ms' | 'multi' | 'nl' | 'nl-BE' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'pt-PT' | 'ro' | 'ru' | 'sk' | 'sv' | 'sv-SE' | 'taq' | 'th' | 'th-TH' | 'tr' | 'uk' | 'vi' | 'zh' | 'zh-CN' | 'zh-HK' | 'zh-Hans' | 'zh-Hant' | 'zh-TW' — The [BCP-47 language tag](https://tools.ietf.org/html/bcp47) that hints at the primary spoken language. Depending on the Model you choose only certain languages are available
            - `mip_opt_out` string — Opts out requests from the Deepgram Model Improvement Program. Refer to our Docs for pricing impacts before setting this to true. https://dpgr.am/deepgram-mip
            - `model` 'nova-3' | 'nova-3-general' | 'nova-3-medical' | 'nova-2' | 'nova-2-general' | 'nova-2-meeting' | 'nova-2-finance' | 'nova-2-conversationalai' | 'nova-2-voicemail' | 'nova-2-video' | 'nova-2-medical' | 'nova-2-drivethru' | 'nova-2-automotive' | 'nova' | 'nova-general' | 'nova-phonecall' | 'nova-medical' | 'enhanced' | 'enhanced-general' | 'enhanced-meeting' | 'enhanced-phonecall' | 'enhanced-finance' | 'base' | 'meeting' | 'phonecall' | 'finance' | 'conversationalai' | 'voicemail' | 'video' | 'custom' — AI model to use for the transcription
            - `multichannel` string — Transcribe each audio channel independently
            - `numerals` string — Convert numbers from written format to numerical format
            - `profanity_filter` string — Profanity Filter looks for recognized profanity and converts it to the nearest recognized non-profane word or removes it from the transcript completely
            - `punctuate` string — Add punctuation and capitalization to the transcript
            - `redact` union — Redaction removes sensitive information from your transcripts
              - …
            - `replace` unknown
            - `search` unknown
            - `smart_format` string — Apply formatting to transcript output. When set to true, additional formatting will be applied to transcripts to improve readability
            - `tag` unknown
            - `utterance_end_ms` unknown
            - `vad_events` string — Indicates that speech has started. You'll begin receiving Speech Started messages upon speech starting
            - `version` string — Version of an AI model to use
          - `gladia_v2_streaming` object — Docs: https://docs.gladia.io/api-reference/v2/live/init
            - `custom_metadata` object — Custom metadata you can attach to this live transcription
            - `model` 'solaria-1' — The model used to process the audio. "solaria-1" is used by default.
            - `endpointing` number — The endpointing duration in seconds. Endpointing is the duration of silence which will cause an utterance to be considered as finished
            - `maximum_duration_without_endpointing` number — The maximum duration in seconds without endpointing. If endpointing is not detected after this duration, current utterance will be considered as finished
            - `language_config` object — Specify the language configuration
              - …
            - `pre_processing` object — Specify the pre-processing configuration
              - …
            - `realtime_processing` object — Specify the realtime processing configuration
              - …
            - `post_processing` object — Specify the post-processing configuration
              - …
            - `messages_config` object — Specify the websocket messages configuration
              - …
            - `callback` boolean — If true, messages will be sent to configured url.
            - `callback_config` object — Specify the callback configuration
              - …
          - `rev_streaming` object — Docs: https://docs.rev.ai/api/streaming/requests/
            - `obscure_expletives` boolean
            - `delete_after` string, date-span
            - `audio_options._content_type` string
            - `audio_options._layout` string
            - `audio_options._rate` integer
            - `audio_options._format` string
            - `audio_options._channels` integer
            - `transcriber` 0 | 1
            - `language` string
            - `metadata` string
            - `filter_profanity` boolean
            - `remove_disfluencies` boolean
            - `detailed_partials` boolean
            - `custom_vocabulary_id` string
            - `delete_after_seconds` integer
            - `max_segment_duration_seconds` integer
            - `max_connection_wait_seconds` integer
            - `allow_interruption` boolean
            - `enable_speaker_switch` boolean
            - `start_ts` string, date-span
            - `skip_postprocessing` boolean
            - `priority` 0 | 1
            - `user_agent` string
          - `aws_transcribe_streaming` union — You must specify either: - `language_code`(e.g `en-US`) OR - Set `language_identification` to `true` AND specify `language_options`(e.g `en-US,fr-FR,es-US,de-DE,it-IT`). Docs: https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartStreamTranscription.html
            - object
              - …
            - object
              - …
          - `speechmatics_streaming` object — You must specify `language` (e.g `en`) Docs: https://docs.speechmatics.com/rt-api-ref#transcription-config
            - `language` string, required
            - `domain` string — Request a specialized model based on 'language' but optimized for a particular field, e.g. "finance" or "medical".
            - `output_locale` string
            - `additional_vocab` object[]
              - …
            - `diarization` 'none' | 'speaker'
            - `max_delay` number
            - `max_delay_mode` 'flexible' | 'fixed'
            - `speaker_diarization_config` object
              - …
            - `audio_filtering_config` object
              - …
            - `transcript_filtering_config` object
              - …
            - `enable_partials` boolean
            - `enable_entities` boolean
            - `operating_point` 'standard' | 'enhanced'
            - `punctuation_overrides` object
              - …
            - `conversation_config` object — This mode will detect when a speaker has stopped talking. The end_of_utterance_silence_trigger is the time in seconds after which the server will assume that the speaker has finished speaking, and will emit an EndOfUtterance message. A value of 0 disables the feature.
              - …
          - `elevenlabs_streaming` object — Docs: https://elevenlabs.io/docs/api-reference/speech-to-text
            - `model_id` string — The model to use for transcription.
            - `language_code` string — ISO 639-1 two-letter language code. When not specified, the model auto-detects the language.
            - `previous_text` string — Text from a previous transcription session to provide context for the model. Sent in the first message to the WebSocket.
          - `meeting_captions` object
            - `language_code` 'cs' | 'de' | 'en' | 'es' | 'fil' | 'fr' | 'he' | 'hi' | 'it' | 'ja' | 'ko' | 'nl' | 'pl' | 'pt' | 'pt-BR' | 'ro' | 'ru' | 'sv' | 'th' | 'tr' | 'uk' | 'vi' | 'zh' | 'null', nullable — * `cs` - Czech * `de` - German * `en` - English * `es` - Spanish * `fil` - Filipino * `fr` - French * `he` - Hebrew * `hi` - Hindi * `it` - Italian * `ja` - Japanese * `ko` - Korean * `nl` - Dutch * `pl` - Polish * `pt` - Portuguese * `pt-BR` - Portuguese (Brazil) * `ro` - Romanian * `ru` - Russian * `sv` - Swedish * `th` - Thai * `tr` - Turkish * `uk` - Ukrainian * `vi` - Vietnamese * `zh` - Chinese
          - `zoom_rtms` object
      - `participant_events` ParticipantEventsArtifactShortcut, required
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `status` ArtifactStatus, required
          - `code` 'processing' | 'done' | 'failed' | 'deleted', required — * `processing` - Processing * `done` - Done * `failed` - Failed * `deleted` - Deleted
          - `sub_code` string, nullable, required
          - `updated_at` string, date-time, required
        - `metadata` object, required
        - `data` ParticipantEventsArtifactData, required
          - `participant_events_download_url` string, uri, nullable, required — Download all participant events for the recording. **[See response format here](https://docs.recall.ai/docs/download-schemas#json-participant-event-download-url)**
          - `speaker_timeline_download_url` string, uri, nullable, required — Download speaker timeline for the recording. **[See response format here](https://docs.recall.ai/docs/download-schemas#json-speaker-timeline-download-url)**
          - `participants_download_url` string, uri, nullable, required — Download all participants for the recording. **[See response format here](https://docs.recall.ai/docs/download-schemas#json-participant-download-url)**
      - `meeting_metadata` MeetingMetadataArtifactShortcut, required
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `status` ArtifactStatus, required
          - `code` 'processing' | 'done' | 'failed' | 'deleted', required — * `processing` - Processing * `done` - Done * `failed` - Failed * `deleted` - Deleted
          - `sub_code` string, nullable, required
          - `updated_at` string, date-time, required
        - `metadata` object, required
        - `data` MeetingMetadataArtifactData, required
          - `title` string, nullable, required
          - `zoom` MeetingMetadataArtifactDataZoom, required
            - `meeting_uuid` string, nullable, required
      - `audio_mixed` AudioMixedArtifactShortcut, required
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `status` ArtifactStatus, required
          - `code` 'processing' | 'done' | 'failed' | 'deleted', required — * `processing` - Processing * `done` - Done * `failed` - Failed * `deleted` - Deleted
          - `sub_code` string, nullable, required
          - `updated_at` string, date-time, required
        - `metadata` object, required
        - `data` AudioMixedArtifactData, required
          - `download_url` string, uri, nullable, required
        - `format` 'mp3' | 'raw', required — * `mp3` - Mp3 * `raw` - Raw
    - `metadata` object
  - `output_media` OutputMedia
    - `camera` OutputMediaConfig
      - `kind` 'webpage', required — * `webpage` - webpage
      - `config` OutputMediaWebpageConfig, required
        - `url` string, uri, required — URL for the webpage
    - `screenshare` OutputMediaConfig
      - `kind` 'webpage', required — * `webpage` - webpage
      - `config` OutputMediaWebpageConfig, required
        - `url` string, uri, required — URL for the webpage
  - `automatic_video_output` AutomaticVideoOutput
    - `in_call_recording` VideoOutput
      - `kind` 'jpeg', required — * `jpeg` - jpeg
    - `in_call_not_recording` VideoOutput
      - `kind` 'jpeg', required — * `jpeg` - jpeg
  - `automatic_audio_output` AutomaticAudioOutput
    - `in_call_recording` AudioOutput, required
      - `data` AudioOutputData, required
        - `kind` 'mp3', required — * `mp3` - mp3
      - `replay_on_participant_join` AudioOutputReplay
        - `debounce_mode` 'leading' | 'trailing' — * `leading` - leading * `trailing` - trailing
        - `debounce_interval` integer, required — The amount of time to wait for additional participants to join before replaying the audio.
        - `disable_after` integer — The number of seconds after which the audio will no longer replay when new participants join. This parameter is useful to prevent the bot from interrupting a meeting, if a late participant joins.
  - `chat` Chat
    - `on_bot_join` ChatOnBotJoin
      - `send_to` 'host' | 'everyone' | 'everyone_except_host', required — * `host` - host * `everyone` - everyone * `everyone_except_host` - everyone_except_host
      - `message` string, required
      - `pin` boolean — Pin message after sending. Only Google Meet and Microsoft Teams are supported at this time
    - `on_participant_join` ChatOnParticipantJoin
      - `message` string, required
      - `exclude_host` boolean, required
  - `automatic_leave` AutomaticLeave
    - `waiting_room_timeout` integer — The number of seconds after which the bot will automatically leave the call, if it has not been let in from the waiting room. If you join Zoom using an OBF token, this timeout also caps how long the bot will wait for the associated user to join the meeting; if the user never joins before the timeout, the join fails with zoom_obf_user_not_in_meeting. Note that this has a max value of 600 seconds for Google Meet and 1800 for Microsoft Teams.
    - `noone_joined_timeout` integer — The number of seconds after which the bot will automatically leave the call, if it has joined the meeting but no other participant has joined.
    - `everyone_left_timeout` AutomaticLeaveEveryoneLeft
      - `timeout` integer — The number of seconds after which the bot will automatically leave the call, if there were other participants in the call who have all left.
      - `activate_after` integer, nullable — The number of seconds after which the bot will start detecting everyone left once it has started recording the call.
    - `in_call_not_recording_timeout` integer — The number of seconds after which the bot will automatically leave the call, if it has joined the call and is not recording.This includes all periods when the bot is not recording, even if the bot has recorded previously.
    - `in_call_recording_timeout` integer — The number of seconds after which the bot will automatically leave the call, if it has joined the call and started recording it. This can be used to enforce a maximum recording time limit for a bot. There is no default value for this parameter, meaning a bot will continue to record for as long as the meeting lasts.
    - `recording_permission_denied_timeout` integer — The number of seconds after which the bot will automatically leave the call, if it has joined the call but has not started recording. For e.g This can occur due to bot being denied permission to record(Zoom meetings).
    - `silence_detection` AutomaticLeaveSilenceDetection
      - `timeout` integer — The number of seconds of continuous silence after which the bot will automatically leave the call.
      - `activate_after` integer — The number of seconds after which the bot will start detecting silence once it has started recording the call. This parameter can be helpful if the meeting tends to start late, so the bot does not preemptively leave.
    - `bot_detection` AutomaticLeaveBotDetection
      - `using_participant_events` AutomaticLeaveBotDetectionUsingParticipantEvents
        - `timeout` integer — The number of seconds after which the bot will automatically leave the call if all other participants(in call) are detected as bots using this heuristic. A participant is considered a bot if they have no audio or screenshare activity for the duration of the call.
        - `activate_after` integer — The number of seconds(post recording start) after which the bot will start detecting other participants as bots using this heuristic. This parameter can be helpful if the meeting tends to start late, so the bot does not preemptively leave.
      - `using_participant_names` AutomaticLeaveBotDetectionUsingParticipantNames
        - `timeout` integer, required — The number of seconds after which the bot will automatically leave the call if all other participants(in call) are detected as bots using this heuristic. A participant is considered a bot if their name contains any of the strings specified in the `matches` parameter(case insensitive match).
        - `activate_after` integer, required — The number of seconds(post recording start) after which the bot will start detecting other participants as bots using this heuristic. This parameter can be helpful if the meeting tends to start late, so the bot does not preemptively leave.
        - `matches` string[], required — A list of strings that the bot will use to detect other bots. If a participant's name contains any of these strings(case insensitive match), they will be considered a bot. If all remaining participants in the call are detected as bots(except the bot itself), the bot will automatically leave the call.For e.g ['notetaker', 'recorder', 'assistant']
  - `variant` BotVariant
    - `zoom` 'web' | 'web_4_core' | 'web_gpu'
    - `google_meet` 'web' | 'web_4_core' | 'web_gpu' — * `web` - web * `web_4_core` - web_4_core * `web_gpu` - web_gpu
    - `microsoft_teams` 'web' | 'web_4_core' | 'web_gpu' — * `web` - web * `web_4_core` - web_4_core * `web_gpu` - web_gpu
    - `webex` 'web' | 'web_4_core' | 'web_gpu' — * `web` - web * `web_4_core` - web_4_core * `web_gpu` - web_gpu
  - `calendar_meetings` BotCalendarMeeting[], required — The calendar meetings associated with this bot. This field is **populated only for bots that are dispatched via Calendar V1 API integration**.
    - `id` string, uuid, required
    - `start_time` string, date-time, required
    - `end_time` string, date-time, required
    - `calendar_user` BotCalendarUser, required
      - `id` string, uuid, required
      - `external_id` string, required
  - `zoom` Zoom
    - `join_token_url` string, uri — A URL which Recall will make a GET request to, in order to retrieve the Zoom Join Token for Local Recording, which the Zoom bot uses to automatically record. This token can be generated through the Zoom API. Docs: https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/meetingLocalRecordingJoinToken
    - `zak_url` string, uri — A URL which Recall will make GET request to, in order to retrieve the ZAK. The V1 Zoom bot uses this to join meetings that require authentication to join.This token can be generated through the Zoom API. Docs: https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/userZak
    - `obf_token_url` string, uri — A URL which Recall will make a GET request to, in order to retrieve the OBF (On Behalf Of) token. The bot uses this to join on behalf of another Zoom user. This token can be generated through the Zoom API. Docs: https://developers.zoom.us/docs/api/rest/reference/user/methods/#operation/userToken
    - `user_email` string, email — This is only required for registration-required webinars. This should be the email address registered for the webinar.
  - `google_meet` GoogleMeet
    - `google_login_group_id` string, uuid, nullable — The ID of the google login group to use for this meeting.
  - `slack_team` SlackTeamIntegrationMinimal
    - `id` string, uuid, required
    - `metadata` object, required
  - `webex` Webex
    - `login_group_name` string — The name of the Webex login group to use for this meeting.
  - `breakout_room` BreakoutRoomSchema
    - `mode` 'join_main_room' | 'join_specific_room' | 'auto_accept_all_invites', required — * `join_main_room` - join_main_room * `join_specific_room` - join_specific_room * `auto_accept_all_invites` - auto_accept_all_invites
    - `room_id` string, uuid — Required when mode='join_specific_room'.
  - `metadata` object

## Other responses

- `400` — No response body
- `507`

---

[API](https://skmtc.net/recall/apis/recall-ai-api.md) · [All operations](https://skmtc.net/recall/apis/recall-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/recall/recall-ai-api/versions/e1a54c5db790/schema)
