---
title: "Transcription start"
method: POST
path: "/calls/{call_control_id}/actions/transcription_start"
tags: ["Call Commands"]
---

# Transcription start

`POST /calls/{call_control_id}/actions/transcription_start`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/calls/{call_control_id}/actions/transcription_start`
- Auth: HTTP bearer

Start real-time transcription. Transcription will stop on call hang-up, or can be initiated via the Transcription stop command.

**Expected Webhooks:**

- `call.transcription`

## Path parameters

- `call_control_id` string, required

## Request body

- TranscriptionStartRequest
  - `transcription_engine` 'Google' | 'Telnyx' | 'Deepgram' | 'Azure' | 'xAI' | 'AssemblyAI' | 'Speechmatics' | 'Soniox' | 'Parakeet' | 'Humain' | 'Reson8' | 'Cohere' | 'A' | 'B': Engine to use for speech recognition. Legacy values `A` - `Google`, `B` - `Telnyx` are supported for backward compatibility.
  - `transcription_engine_config` union
    - TranscriptionEngineGoogleConfig
      - `transcription_engine` 'Google': Engine identifier for Google transcription service
      - `language` 'af' | 'sq' | 'am' | 'ar' | 'hy' | 'az' | 'eu' | 'bn' | 'bs' | 'bg' | 'my' | 'ca' | 'yue' | 'zh' | 'hr' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fil' | 'fi' | 'fr' | 'gl' | 'ka' | 'de' | 'el' | 'gu' | 'iw' | 'hi' | 'hu' | 'is' | 'id' | 'it' | 'ja' | 'jv' | 'kn' | 'kk' | 'km' | 'ko' | 'lo' | 'lv' | 'lt' | 'mk' | 'ms' | 'ml' | 'mr' | 'mn' | 'ne' | 'no' | 'fa' | 'pl' | 'pt' | 'pa' | 'ro' | 'ru' | 'rw' | 'sr' | 'si' | 'sk' | 'sl' | 'ss' | 'st' | 'es' | 'su' | 'sw' | 'sv' | 'ta' | 'te' | 'th' | 'tn' | 'tr' | 'ts' | 'uk' | 'ur' | 'uz' | 've' | 'vi' | 'xh' | 'zu': Language to use for speech recognition
      - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
      - `enable_speaker_diarization` boolean: Enables speaker diarization.
      - `min_speaker_count` integer: Defines minimum number of speakers in the conversation.
      - `max_speaker_count` integer: Defines maximum number of speakers in the conversation.
      - `profanity_filter` boolean: Enables profanity_filter.
      - `use_enhanced` boolean: Enables enhanced transcription, this works for models `phone_call` and `video`.
      - `model` 'latest_long' | 'latest_short' | 'command_and_search' | 'phone_call' | 'video' | 'default' | 'medical_conversation' | 'medical_dictation': The model to use for transcription.
      - `hints` string[]: Hints to improve transcription accuracy.
      - `speech_context` object[]: Speech context to improve transcription accuracy.
        - `phrases` string[]
        - `boost` number: Boost factor for the speech context.
    - TranscriptionEngineTelnyxConfig
      - `transcription_engine` 'Telnyx': Engine identifier for Telnyx transcription service
      - `language` 'en' | 'zh' | 'de' | 'es' | 'ru' | 'ko' | 'fr' | 'ja' | 'pt' | 'tr' | 'pl' | 'ca' | 'nl' | 'ar' | 'sv' | 'it' | 'id' | 'hi' | 'fi' | 'vi' | 'he' | 'uk' | 'el' | 'ms' | 'cs' | 'ro' | 'da' | 'hu' | 'ta' | 'no' | 'th' | 'ur' | 'hr' | 'bg' | 'lt' | 'la' | 'mi' | 'ml' | 'cy' | 'sk' | 'te' | 'fa' | 'lv' | 'bn' | 'sr' | 'az' | 'sl' | 'kn' | 'et' | 'mk' | 'br' | 'eu' | 'is' | 'hy' | 'ne' | 'mn' | 'bs' | 'kk' | 'sq' | 'sw' | 'gl' | 'mr' | 'pa' | 'si' | 'km' | 'sn' | 'yo' | 'so' | 'af' | 'oc' | 'ka' | 'be' | 'tg' | 'sd' | 'gu' | 'am' | 'yi' | 'lo' | 'uz' | 'fo' | 'ht' | 'ps' | 'tk' | 'nn' | 'mt' | 'sa' | 'lb' | 'my' | 'bo' | 'tl' | 'mg' | 'as' | 'tt' | 'haw' | 'ln' | 'ha' | 'ba' | 'jw' | 'su' | 'auto_detect': Language to use for speech recognition
      - `transcription_model` 'openai/whisper-tiny' | 'openai/whisper-large-v3-turbo': The model to use for transcription.
    - union
      - DeepgramNova2Config
        - `transcription_engine` 'Deepgram', required
        - `transcription_model` 'deepgram/nova-2', required
        - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
        - `utterance_end_ms` integer: Number of milliseconds of silence to consider an utterance ended. Ranges from 0 to 5000 ms.
        - `language` 'bg' | 'ca' | 'zh' | 'zh-CN' | 'zh-Hans' | 'zh-TW' | 'zh-Hant' | 'zh-HK' | 'cs' | 'da' | 'da-DK' | 'nl' | 'en' | 'en-US' | 'en-AU' | 'en-GB' | 'en-NZ' | 'en-IN' | 'et' | 'fi' | 'nl-BE' | 'fr' | 'fr-CA' | 'de' | 'de-CH' | 'el' | 'hi' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'ko-KR' | 'lv' | 'lt' | 'ms' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'pt-PT' | 'ro' | 'ru' | 'sk' | 'es' | 'es-419' | 'sv' | 'sv-SE' | 'th' | 'th-TH' | 'tr' | 'uk' | 'vi' | 'auto_detect': Language to use for speech recognition with nova-2 model
        - `smart_format` boolean: Enable Deepgram's smart formatting (capitalization, punctuation, and digit normalization). Note: Telnyx defaults this to `true`, overriding Deepgram's underlying default of `false` — omit the field to get a smart-formatted transcript, or set it to `false` to receive the raw lowercase transcript without punctuation.
        - `keywords_boosting` object: Keywords and their respective intensifiers (boosting values) to improve transcription accuracy for specific words or phrases. The intensifier should be a numeric value. Example: `{"snuffleupagus": 5, "systrom": 2, "krieger": 1}`.
        - `hints` string[]: Nova-2 keyword biasing without intensifiers. Up to 100 terms to bias recognition toward. For weighted biasing, use `keywords_boosting` instead. Supported on Nova-2 models only (`deepgram/nova-2`, `deepgram/nova-2-medical`, `deepgram/nova-2-phonecall`); use `keyterms` on Nova-3 and Flux.
      - DeepgramNova2SpecialtyConfig: Deepgram Nova-2 specialty models: `deepgram/nova-2-medical` (medical vocabulary) and `deepgram/nova-2-phonecall` (low-bandwidth phone audio). English only.
        - `transcription_engine` 'Deepgram', required
        - `transcription_model` 'deepgram/nova-2-medical' | 'deepgram/nova-2-phonecall', required
        - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
        - `utterance_end_ms` integer: Number of milliseconds of silence to consider an utterance ended. Ranges from 0 to 5000 ms.
        - `language` 'en' | 'en-US' | 'en-AU' | 'en-GB' | 'en-IN' | 'en-NZ': Language to transcribe. Deepgram's medical and phonecall models support English only.
        - `smart_format` boolean: Enable Deepgram's smart formatting (capitalization, punctuation, and digit normalization). Note: Telnyx defaults this to `true`, overriding Deepgram's underlying default of `false` — omit the field to get a smart-formatted transcript, or set it to `false` to receive the raw lowercase transcript without punctuation.
        - `keywords_boosting` object: Keywords and their respective intensifiers (boosting values) to improve transcription accuracy for specific words or phrases. The intensifier should be a numeric value. Example: `{"snuffleupagus": 5, "systrom": 2, "krieger": 1}`.
        - `hints` string[]: Nova-2 keyword biasing without intensifiers. Up to 100 terms to bias recognition toward. For weighted biasing, use `keywords_boosting` instead. Supported on Nova-2 models only (`deepgram/nova-2`, `deepgram/nova-2-medical`, `deepgram/nova-2-phonecall`); use `keyterms` on Nova-3 and Flux.
      - DeepgramNova3Config
        - `transcription_engine` 'Deepgram', required
        - `transcription_model` 'deepgram/nova-3', required
        - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
        - `utterance_end_ms` integer: Number of milliseconds of silence to consider an utterance ended. Ranges from 0 to 5000 ms.
        - `language` 'en' | 'en-US' | 'en-AU' | 'en-GB' | 'en-IN' | 'en-NZ' | 'de' | 'nl' | 'sv' | 'sv-SE' | 'da' | 'da-DK' | 'es' | 'es-419' | 'fr' | 'fr-CA' | 'pt' | 'pt-BR' | 'pt-PT' | 'auto_detect': Language to use for speech recognition with nova-3 model
        - `smart_format` boolean: Enable Deepgram's smart formatting (capitalization, punctuation, and digit normalization). Note: Telnyx defaults this to `true`, overriding Deepgram's underlying default of `false` — omit the field to get a smart-formatted transcript, or set it to `false` to receive the raw lowercase transcript without punctuation.
        - `keywords_boosting` object: Keywords and their respective intensifiers (boosting values) to improve transcription accuracy for specific words or phrases. The intensifier should be a numeric value. Example: `{"snuffleupagus": 5, "systrom": 2, "krieger": 1}`.
        - `keyterms` string[]: Keyterm prompting. Up to 100 domain-specific terms or brand names to bias recognition toward. Supported on Nova-3 and Flux models (`deepgram/nova-3`, `deepgram/nova-3-medical`, `deepgram/flux`, `deepgram/flux-multi`); use `hints` on Nova-2.
      - DeepgramNova3MedicalConfig: Deepgram Nova-3 medical model, tuned for medical vocabulary. English only.
        - `transcription_engine` 'Deepgram', required
        - `transcription_model` 'deepgram/nova-3-medical', required
        - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
        - `utterance_end_ms` integer: Number of milliseconds of silence to consider an utterance ended. Ranges from 0 to 5000 ms.
        - `language` 'en' | 'en-US' | 'en-AU' | 'en-GB' | 'en-IN' | 'en-NZ': Language to transcribe. Deepgram's medical and phonecall models support English only.
        - `smart_format` boolean: Enable Deepgram's smart formatting (capitalization, punctuation, and digit normalization). Note: Telnyx defaults this to `true`, overriding Deepgram's underlying default of `false` — omit the field to get a smart-formatted transcript, or set it to `false` to receive the raw lowercase transcript without punctuation.
        - `keywords_boosting` object: Keywords and their respective intensifiers (boosting values) to improve transcription accuracy for specific words or phrases. The intensifier should be a numeric value. Example: `{"snuffleupagus": 5, "systrom": 2, "krieger": 1}`.
        - `keyterms` string[]: Keyterm prompting. Up to 100 domain-specific terms or brand names to bias recognition toward. Supported on Nova-3 and Flux models (`deepgram/nova-3`, `deepgram/nova-3-medical`, `deepgram/flux`, `deepgram/flux-multi`); use `hints` on Nova-2.
      - DeepgramFluxConfig: Deepgram Flux (English), a conversational speech recognition model with built-in end-of-turn detection. `smart_format`, `utterance_end_ms`, `hints` and `keywords_boosting` do not apply to Flux.
        - `transcription_engine` 'Deepgram', required
        - `transcription_model` 'deepgram/flux', required
        - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
        - `language` 'en': Language to transcribe. `deepgram/flux` supports English only.
        - `keyterms` string[]: Keyterm prompting. Up to 100 domain-specific terms or brand names to bias recognition toward. Supported on Nova-3 and Flux models (`deepgram/nova-3`, `deepgram/nova-3-medical`, `deepgram/flux`, `deepgram/flux-multi`); use `hints` on Nova-2.
      - DeepgramFluxMultiConfig: Deepgram Flux multilingual, a conversational speech recognition model with built-in end-of-turn detection. `smart_format`, `utterance_end_ms`, `hints` and `keywords_boosting` do not apply to Flux.
        - `transcription_engine` 'Deepgram', required
        - `transcription_model` 'deepgram/flux-multi', required
        - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
        - `language` 'en' | 'es' | 'fr' | 'de' | 'hi' | 'ru' | 'pt' | 'ja' | 'it' | 'nl' | 'auto': Language to transcribe. Flux-multi uses the language as a hint; `auto` lets Flux detect the language.
        - `keyterms` string[]: Keyterm prompting. Up to 100 domain-specific terms or brand names to bias recognition toward. Supported on Nova-3 and Flux models (`deepgram/nova-3`, `deepgram/nova-3-medical`, `deepgram/flux`, `deepgram/flux-multi`); use `hints` on Nova-2.
    - TranscriptionEngineAzureConfig
      - `transcription_engine` 'Azure', required: Engine identifier for Azure transcription service
      - `language` 'af' | 'am' | 'ar' | 'bg' | 'bn' | 'bs' | 'ca' | 'cs' | 'cy' | 'da' | 'de' | 'el' | 'en' | 'es' | 'et' | 'eu' | 'fa' | 'fi' | 'fr' | 'ga' | 'gl' | 'gu' | 'he' | 'hi' | 'hr' | 'hu' | 'hy' | 'id' | 'is' | 'it' | 'ja' | 'ka' | 'kk' | 'km' | 'kn' | 'ko' | 'lo' | 'lt' | 'lv' | 'mk' | 'ml' | 'mn' | 'mr' | 'ms' | 'mt' | 'my' | 'nb' | 'ne' | 'nl' | 'pl' | 'ps' | 'pt' | 'ro' | 'ru' | 'si' | 'sk' | 'sl' | 'so' | 'sq' | 'sr' | 'sv' | 'sw' | 'ta' | 'te' | 'th' | 'tr' | 'uk' | 'ur' | 'uz' | 'vi' | 'wuu' | 'yue' | 'zh' | 'zu' | 'auto': Language to use for speech recognition
      - `region` 'australiaeast' | 'centralindia' | 'eastus' | 'northcentralus' | 'westeurope' | 'westus2', required: Azure region to use for speech recognition
      - `api_key_ref` string: Reference to the API key for authentication. See [integration secrets documentation](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) for details. The parameter is optional as defaults are available for some regions.
    - TranscriptionEngineXaiConfig
      - `transcription_engine` 'xAI': Engine identifier for xAI transcription service
      - `language` 'ar' | 'cs' | 'da' | 'de' | 'en' | 'es' | 'fa' | 'fil' | 'fr' | 'hi' | 'id' | 'it' | 'ja' | 'ko' | 'mk' | 'ms' | 'nl' | 'pl' | 'pt' | 'ro' | 'ru' | 'sv' | 'th' | 'tr' | 'vi': Language to use for speech recognition
      - `transcription_model` 'xai/grok-stt': The model to use for transcription.
      - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
    - TranscriptionEngineAssemblyaiConfig
      - `transcription_engine` 'AssemblyAI': Engine identifier for AssemblyAI transcription service
      - `transcription_model` 'assemblyai/universal-3-5-pro' | 'assemblyai/universal-streaming': The model to use for transcription. `assemblyai/universal-streaming` is a legacy alias of `assemblyai/universal-3-5-pro` and resolves to the same model.
      - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
    - TranscriptionEngineSpeechmaticsConfig
      - `transcription_engine` 'Speechmatics': Engine identifier for Speechmatics transcription service
      - `language` 'en' | 'ba' | 'eu' | 'gl' | 'ga' | 'mt' | 'mn' | 'sw' | 'ug' | 'cy' | 'ar_en' | 'cmn_en' | 'en_ms' | 'en_ta' | 'tl' | 'es-bilingual-en' | 'cmn_en_ms_ta' | 'ar' | 'be' | 'bg' | 'bn' | 'ca' | 'cmn' | 'cs' | 'da' | 'de' | 'el' | 'eo' | 'es' | 'et' | 'fa' | 'fi' | 'fr' | 'he' | 'hi' | 'hr' | 'hu' | 'ia' | 'id' | 'it' | 'ja' | 'ko' | 'lt' | 'lv' | 'mr' | 'ms' | 'nl' | 'no' | 'pl' | 'pt' | 'ro' | 'ru' | 'sk' | 'sl' | 'sv' | 'ta' | 'th' | 'tr' | 'uk' | 'ur' | 'vi' | 'yue' | 'en-US' | 'en-GB' | 'en-AU' | 'cmn-Hans' | 'cmn-Hant': Language to use for speech recognition. Accepted values depend on the selected `transcription_model`. `speechmatics/standard` supports: `en`, `ba`, `eu`, `gl`, `ga`, `mt`, `mn`, `sw`, `ug`, `cy`, `ar_en`, `cmn_en`, `en_ms`, `en_ta`, `tl`, `es-bilingual-en`, `cmn_en_ms_ta`. `speechmatics/linden-1` (preview) supports the same languages as Speechmatics Realtime: `ar`, `ar_en`, `ba`, `be`, `bg`, `bn`, `ca`, `cmn`, `cmn_en`, `cmn_en_ms_ta`, `cs`, `cy`, `da`, `de`, `el`, `en`, `en_ms`, `en_ta`, `eo`, `es`, `es-bilingual-en`, `et`, `eu`, `fa`, `fi`, `fr`, `ga`, `gl`, `he`, `hi`, `hr`, `hu`, `ia`, `id`, `it`, `ja`, `ko`, `lt`, `lv`, `mn`, `mr`, `ms`, `mt`, `nl`, `no`, `pl`, `pt`, `ro`, `ru`, `sk`, `sl`, `sv`, `sw`, `ta`, `th`, `tl`, `tr`, `ug`, `uk`, `ur`, `vi`, `yue`, plus the spelling and script variants `en-US`, `en-GB`, `en-AU`, `cmn-Hans`, and `cmn-Hant` (`en` alone uses the default spelling). A value outside the selected model's list is rejected. For `speechmatics/standard`, unset, blank, `auto`, `auto_beta`, or `multi` defaults to `en`; for `speechmatics/linden-1`, only an unset language defaults to `en`, and `auto`, `auto_beta`, or `multi` is rejected.
      - `transcription_model` 'speechmatics/standard' | 'speechmatics/linden-1': The model to use for transcription. `speechmatics/linden-1` is a preview, vendor-hosted model with its own language support (see `language`).
      - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
    - TranscriptionEngineSonioxConfig
      - `transcription_engine` 'Soniox', required: Engine identifier for Soniox transcription service
      - `transcription_model` 'soniox/stt-rt-v4': The model to use for transcription.
      - `language` string: ISO 639-1 language hint (e.g. `en`, `es`), or `auto` to omit the hint and let Soniox auto-detect supported languages multilingually.
      - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
      - `enable_endpoint_detection` boolean: When true, Soniox emits end-of-utterance events at the cadence configured by `max_endpoint_delay_ms`.
      - `max_endpoint_delay_ms` integer: Maximum silence (in milliseconds) before Soniox emits an end-of-utterance event. Only honored when `enable_endpoint_detection` is true. Range: 500-3000 ms.
    - TranscriptionEngineParakeetConfig
      - `transcription_engine` 'Parakeet': Engine identifier for Parakeet transcription service
      - `transcription_model` 'nvidia/parakeet-v3' | 'omi-health/omi-med-stt-v1': The model to use for transcription.
      - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
    - TranscriptionEngineHumainConfig
      - `transcription_engine` 'Humain': Engine identifier for Humain transcription service
      - `transcription_model` 'humain/realtime': The model to use for transcription.
      - `language` 'ar' | 'en' | 'codeswitch' | 'auto': The language of the audio to be transcribed. `codeswitch` enables Arabic/English code-switching. `auto` resolves server-side to code-switching.
    - TranscriptionEngineReson8Config
      - `transcription_engine` 'Reson8': Engine identifier for Reson8 transcription service
      - `transcription_model` 'reson8/turns': The model to use for transcription.
      - `language` 'auto' | 'nl' | 'en' | 'fr' | 'fy' | 'de' | 'it' | 'pl' | 'pt' | 'es' | 'sv': The language of the audio to be transcribed. `auto` (the default, also applied when `language` is omitted) enables automatic language detection.
    - TranscriptionEngineCohereConfig
      - `transcription_engine` 'Cohere': Engine identifier for Cohere transcription service
      - `transcription_model` 'cohere/ar-stt': The model to use for transcription.
      - `language` 'ar' | 'en': The language of the audio to be transcribed. Unlike other self-hosted models, Cohere does not auto-detect the language; `auto` is not supported.
    - TranscriptionEngineAConfig
      - `transcription_engine` 'A': Engine identifier for Google transcription service
      - `language` 'af' | 'sq' | 'am' | 'ar' | 'hy' | 'az' | 'eu' | 'bn' | 'bs' | 'bg' | 'my' | 'ca' | 'yue' | 'zh' | 'hr' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fil' | 'fi' | 'fr' | 'gl' | 'ka' | 'de' | 'el' | 'gu' | 'iw' | 'hi' | 'hu' | 'is' | 'id' | 'it' | 'ja' | 'jv' | 'kn' | 'kk' | 'km' | 'ko' | 'lo' | 'lv' | 'lt' | 'mk' | 'ms' | 'ml' | 'mr' | 'mn' | 'ne' | 'no' | 'fa' | 'pl' | 'pt' | 'pa' | 'ro' | 'ru' | 'rw' | 'sr' | 'si' | 'sk' | 'sl' | 'ss' | 'st' | 'es' | 'su' | 'sw' | 'sv' | 'ta' | 'te' | 'th' | 'tn' | 'tr' | 'ts' | 'uk' | 'ur' | 'uz' | 've' | 'vi' | 'xh' | 'zu': Language to use for speech recognition
      - `interim_results` boolean: Whether to send also interim results. If set to false, only final results will be sent.
      - `enable_speaker_diarization` boolean: Enables speaker diarization.
      - `min_speaker_count` integer: Defines minimum number of speakers in the conversation.
      - `max_speaker_count` integer: Defines maximum number of speakers in the conversation.
      - `profanity_filter` boolean: Enables profanity_filter.
      - `use_enhanced` boolean: Enables enhanced transcription, this works for models `phone_call` and `video`.
      - `model` 'latest_long' | 'latest_short' | 'command_and_search' | 'phone_call' | 'video' | 'default' | 'medical_conversation' | 'medical_dictation': The model to use for transcription.
      - `hints` string[]: Hints to improve transcription accuracy.
      - `speech_context` object[]: Speech context to improve transcription accuracy.
        - `phrases` string[]
        - `boost` number: Boost factor for the speech context.
    - TranscriptionEngineBConfig
      - `transcription_engine` 'B': Engine identifier for Telnyx transcription service
      - `language` 'en' | 'zh' | 'de' | 'es' | 'ru' | 'ko' | 'fr' | 'ja' | 'pt' | 'tr' | 'pl' | 'ca' | 'nl' | 'ar' | 'sv' | 'it' | 'id' | 'hi' | 'fi' | 'vi' | 'he' | 'uk' | 'el' | 'ms' | 'cs' | 'ro' | 'da' | 'hu' | 'ta' | 'no' | 'th' | 'ur' | 'hr' | 'bg' | 'lt' | 'la' | 'mi' | 'ml' | 'cy' | 'sk' | 'te' | 'fa' | 'lv' | 'bn' | 'sr' | 'az' | 'sl' | 'kn' | 'et' | 'mk' | 'br' | 'eu' | 'is' | 'hy' | 'ne' | 'mn' | 'bs' | 'kk' | 'sq' | 'sw' | 'gl' | 'mr' | 'pa' | 'si' | 'km' | 'sn' | 'yo' | 'so' | 'af' | 'oc' | 'ka' | 'be' | 'tg' | 'sd' | 'gu' | 'am' | 'yi' | 'lo' | 'uz' | 'fo' | 'ht' | 'ps' | 'tk' | 'nn' | 'mt' | 'sa' | 'lb' | 'my' | 'bo' | 'tl' | 'mg' | 'as' | 'tt' | 'haw' | 'ln' | 'ha' | 'ba' | 'jw' | 'su' | 'auto_detect': Language to use for speech recognition
      - `transcription_model` 'openai/whisper-tiny' | 'openai/whisper-large-v3-turbo': The model to use for transcription.
  - `client_state` string: Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.
  - `transcription_tracks` string: Indicates which leg of the call will be transcribed. Use `inbound` for the leg that requested the transcription, `outbound` for the other leg, and `both` for both legs of the call. Will default to `inbound`.
  - `command_id` string: Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.

## Response `200`

Successful response upon making a call control command.

- object
  - `data` CallControlCommandResult
    - `result` string

## Other responses

- `422`: Unprocessable entity. The request was well-formed but could not be processed due to semantic errors. This includes validation errors, invalid parameter values, call state errors, conference errors, queue errors, recording/transcription errors, and business logic violations.
- `default`: Unexpected error

## Changes

- **2026-10-21** `a2e3f7a0ec7b`: 51 info
  - added the new `ar` enum value to the request property `transcription_engine_config/oneOf[subschema #7: Transcription engine Speechmatics config]/language`
  - added the new `be` enum value to the request property `transcription_engine_config/oneOf[subschema #7: Transcription engine Speechmatics config]/language`
  - added the new `bg` enum value to the request property `transcription_engine_config/oneOf[subschema #7: Transcription engine Speechmatics config]/language`
  - added the new `bn` enum value to the request property `transcription_engine_config/oneOf[subschema #7: Transcription engine Speechmatics config]/language`
  - …47 more
- **2026-10-19** `a1c38ee7cad5`: 2 info
  - added `deepgram/nova-2-medical, deepgram/nova-2-phonecall, deepgram/nova-3-medical, deepgram/flux, deepgram/flux-multi` discriminator mapping keys to the `transcription_engine_config/oneOf[#/components/schemas/TranscriptionEngineDeepgramConfig]/` request property
  - added `#/components/schemas/DeepgramNova2SpecialtyConfig, #/components/schemas/DeepgramNova3MedicalConfig, #/components/schemas/DeepgramFluxConfig, #/components/schemas/DeepgramFluxMultiConfig` to the `transcription_engine_config/oneOf[#/components/schemas/TranscriptionEngineDeepgramConfig]/` request property `oneOf` list
- …earlier changes not shown

[Operation history](https://skmtc.dev/team-telnyx/apis/telnyx-api/changes/calls/:call_control_id/actions/transcription_start/post.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api.md) - [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api/llms.txt) - [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api/revisions/0f17b8167873?raw)
