Telnyx · Schema

Speak Request

CommunicationsCPaaSVoiceSMSIoTTelecommunicationsMessagingArtificial IntelligenceMCPVoice AIPhone NumbersInference

Properties

Name Type Description
client_state string Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.
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`.
language string The language you want spoken. This parameter is ignored when a `Polly.*` voice is specified.
loop object The number of times to play the audio file. Use `infinity` to loop indefinitely. Defaults to 1.
payload string The text or SSML to be converted into speech. There is a 3,000 character limit.
payload_type string The type of the provided payload. The payload can either be plain text, or Speech Synthesis Markup Language (SSML).
service_level string This parameter impacts speech quality, language options and payload types. When using `basic`, only the `en-US` language and payload type `text` are allowed.
stop string When specified, it stops the current audio being played. Specify `current` to stop the current audio being played, and to play the next file in the queue. Specify `all` to stop the current audio file
target_legs string Specifies which legs of the call should receive the spoken audio.
voice string Specifies the voice used in speech synthesis. - Define voices using the format `..`. Specifying only the provider will give default values for voice_id and model_id. **Suppor
voice_settings object The settings associated with the voice selected
View JSON Schema on GitHub

JSON Schema

telnyx-speak-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/telnyx/main/json-schema/telnyx-speak-request-schema.json",
  "title": "Speak Request",
  "x-generated": "2026-10-08",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/telnyx-call-commands-api-openapi.yml#/components/schemas/SpeakRequest",
  "properties": {
    "client_state": {
      "description": "Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.",
      "type": "string"
    },
    "command_id": {
      "description": "Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.",
      "type": "string"
    },
    "language": {
      "description": "The language you want spoken. This parameter is ignored when a `Polly.*` voice is specified.",
      "enum": [
        "arb",
        "cmn-CN",
        "cy-GB",
        "da-DK",
        "de-DE",
        "en-AU",
        "en-GB",
        "en-GB-WLS",
        "en-IN",
        "en-US",
        "es-ES",
        "es-MX",
        "es-US",
        "fr-CA",
        "fr-FR",
        "hi-IN",
        "is-IS",
        "it-IT",
        "ja-JP",
        "ko-KR",
        "nb-NO",
        "nl-NL",
        "pl-PL",
        "pt-BR",
        "pt-PT",
        "ro-RO",
        "ru-RU",
        "sv-SE",
        "tr-TR"
      ],
      "type": "string"
    },
    "loop": {
      "$ref": "#/$defs/Loopcount",
      "description": "The number of times to play the audio file. Use `infinity` to loop indefinitely. Defaults to 1."
    },
    "payload": {
      "description": "The text or SSML to be converted into speech. There is a 3,000 character limit.",
      "type": "string"
    },
    "payload_type": {
      "default": "text",
      "description": "The type of the provided payload. The payload can either be plain text, or Speech Synthesis Markup Language (SSML).",
      "enum": [
        "text",
        "ssml"
      ],
      "type": "string"
    },
    "service_level": {
      "default": "premium",
      "description": "This parameter impacts speech quality, language options and payload types. When using `basic`, only the `en-US` language and payload type `text` are allowed.",
      "enum": [
        "basic",
        "premium"
      ],
      "type": "string"
    },
    "stop": {
      "description": "When specified, it stops the current audio being played. Specify `current` to stop the current audio being played, and to play the next file in the queue. Specify `all` to stop the current audio file being played and to also clear all audio files from the queue.",
      "type": "string"
    },
    "target_legs": {
      "default": "self",
      "description": "Specifies which legs of the call should receive the spoken audio.",
      "enum": [
        "self",
        "opposite",
        "both"
      ],
      "type": "string"
    },
    "voice": {
      "description": "Specifies the voice used in speech synthesis.\n\n- Define voices using the format `<Provider>.<Model>.<VoiceId>`. Specifying only the provider will give default values for voice_id and model_id.\n\n **Supported Providers:**\n- **AWS:** Use `AWS.Polly.<VoiceId>` (e.g., `AWS.Polly.Joanna`). For neural voices, which provide more realistic, human-like speech, append `-Neural` to the `VoiceId` (e.g., `AWS.Polly.Joanna-Neural`). Check the [available voices](https://docs.aws.amazon.com/polly/latest/dg/available-voices.html) for compatibility.\n- **Azure:** Use `Azure.<VoiceId>` (e.g., `Azure.en-CA-ClaraNeural`, `Azure.en-US-BrianMultilingualNeural`, `Azure.en-US-Ava:DragonHDLatestNeural`). For a complete list of voices, go to [Azure Voice Gallery](https://speech.microsoft.com/portal/voicegallery). Use `voice_settings` to configure custom deployments, regions, or API keys.\n- **ElevenLabs:** Use `ElevenLabs.<ModelId>.<VoiceId>` (e.g., `ElevenLabs.eleven_multilingual_v2.21m00Tcm4TlvDq8ikWAM`). The `ModelId` part is optional. To use ElevenLabs, you must provide your ElevenLabs API key as an integration identifier secret in `\"voice_settings\": {\"api_key_ref\": \"<secret_identifier>\"}`. See [integration secrets documentation](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) for details. Check [available voices](https://elevenlabs.io/docs/api-reference/get-voices).\n- **Telnyx:** Use `Telnyx.<model_id>.<voice_id>` (e.g., `Telnyx.KokoroTTS.af`). Use `voice_settings` to configure voice_speed and other synthesis parameters.\n- **Minimax:** Use `Minimax.<ModelId>.<VoiceId>` (e.g., `Minimax.speech-02-hd.Wise_Woman`). Supported models: `speech-02-turbo`, `speech-02-hd`, `speech-2.6-turbo`, `speech-2.8-turbo`. Use `voice_settings` to configure speed, volume, pitch, and language_boost.\n- **Rime:** Use `Rime.<model_id>.<voice_id>` (e.g., `Rime.Arcana.cove`). Supported model_ids: `Arcana`, `Mist`. Use `voice_settings` to configure voice_speed.\n- **Resemble:** Use `Resemble.Turbo.<voice_id>` (e.g., `Resemble.Turbo.my_voice`). Only `Turbo` model is supported. Use `voice_settings` to configure precision, sample_rate, and format.\n- **Inworld:** Use `Inworld.<ModelId>.<VoiceId>` (e.g., `Inworld.Mini.Loretta`, `Inworld.Max.Oliver`). Supported models: `Mini`, `Max`.\n- **xAI:** Use `xAI.<VoiceId>` (e.g., `xAI.eve`). Available voices: `eve`, `ara`, `rex`, `sal`, `leo`.\n\nFor service_level basic, you may define the gender of the speaker (male or female).",
      "type": "string"
    },
    "voice_settings": {
      "description": "The settings associated with the voice selected",
      "oneOf": [
        {
          "$ref": "#/$defs/ElevenLabsVoiceSettings"
        },
        {
          "$ref": "#/$defs/TelnyxVoiceSettings"
        },
        {
          "$ref": "#/$defs/AWSVoiceSettings"
        },
        {
          "$ref": "#/$defs/MinimaxVoiceSettings"
        },
        {
          "$ref": "#/$defs/AzureVoiceSettings"
        },
        {
          "$ref": "#/$defs/RimeVoiceSettings"
        },
        {
          "$ref": "#/$defs/ResembleVoiceSettings"
        },
        {
          "$ref": "#/$defs/InworldVoiceSettings"
        },
        {
          "$ref": "#/$defs/XAIVoiceSettings"
        }
      ]
    }
  },
  "required": [
    "payload",
    "voice"
  ],
  "type": "object",
  "$defs": {
    "AWSVoiceSettings": {
      "properties": {
        "type": {
          "description": "Voice settings provider type",
          "enum": [
            "aws"
          ],
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "AWS Voice Settings",
      "type": "object"
    },
    "AzureVoiceSettings": {
      "properties": {
        "api_key_ref": {
          "description": "The `identifier` for an integration secret that refers to your Azure Speech API key.",
          "type": "string"
        },
        "deployment_id": {
          "description": "The deployment ID for a custom Azure neural voice.",
          "type": "string"
        },
        "effect": {
          "description": "Audio effect to apply.",
          "enum": [
            "eq_car",
            "eq_telecomhp8k"
          ],
          "type": "string"
        },
        "gender": {
          "description": "Voice gender filter.",
          "enum": [
            "Male",
            "Female"
          ],
          "type": "string"
        },
        "region": {
          "description": "The Azure region for the Speech service (e.g., `eastus`, `westeurope`). Required when using a custom API key.",
          "type": "string"
        },
        "type": {
          "description": "Voice settings provider type",
          "enum": [
            "azure"
          ],
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "Azure Voice Settings",
      "type": "object"
    },
    "ElevenLabsVoiceSettings": {
      "properties": {
        "api_key_ref": {
          "description": "The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.",
          "type": "string"
        },
        "type": {
          "description": "Voice settings provider type",
          "enum": [
            "elevenlabs"
          ],
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "ElevenLabs Voice Settings",
      "type": "object"
    },
    "InworldVoiceSettings": {
      "properties": {
        "type": {
          "description": "Voice settings provider type",
          "enum": [
            "inworld"
          ],
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "Inworld Voice Settings",
      "type": "object"
    },
    "Loopcount": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        }
      ]
    },
    "MinimaxVoiceSettings": {
      "properties": {
        "language_boost": {
          "default": null,
          "description": "Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection.",
          "enum": [
            null,
            "auto",
            "Chinese",
            "Chinese,Yue",
            "English",
            "Arabic",
            "Russian",
            "Spanish",
            "French",
            "Portuguese",
            "German",
            "Turkish",
            "Dutch",
            "Ukrainian",
            "Vietnamese",
            "Indonesian",
            "Japanese",
            "Italian",
            "Korean",
            "Thai",
            "Polish",
            "Romanian",
            "Greek",
            "Czech",
            "Finnish",
            "Hindi",
            "Bulgarian",
            "Danish",
            "Hebrew",
            "Malay",
            "Persian",
            "Slovak",
            "Swedish",
            "Croatian",
            "Filipino",
            "Hungarian",
            "Norwegian",
            "Slovenian",
            "Catalan",
            "Nynorsk",
            "Tamil",
            "Afrikaans"
          ],
          "type": [
            "string",
            "null"
          ]
        },
        "pitch": {
          "default": 0,
          "description": "Voice pitch adjustment. Default is 0.",
          "type": "integer"
        },
        "speed": {
          "default": 1.0,
          "description": "Speech speed multiplier. Default is 1.0.",
          "format": "float",
          "type": "number"
        },
        "type": {
          "description": "Voice settings provider type",
          "enum": [
            "minimax"
          ],
          "type": "string"
        },
        "vol": {
          "default": 1.0,
          "description": "Speech volume multiplier. Default is 1.0.",
          "format": "float",
          "type": "number"
        }
      },
      "required": [
        "type"
      ],
      "title": "Minimax Voice Settings",
      "type": "object"
    },
    "ResembleSampleRate": {
      "default": "48000",
      "description": "Audio sample rate in Hz.",
      "enum": [
        "8000",
        "16000",
        "22050",
        "32000",
        "44100",
        "48000"
      ],
      "title": "Resemble Sample Rate",
      "type": "string"
    },
    "ResembleVoiceSettings": {
      "properties": {
        "format": {
          "default": "mp3",
          "description": "Output audio format.",
          "enum": [
            "wav",
            "mp3"
          ],
          "type": "string"
        },
        "precision": {
          "default": "PCM_32",
          "description": "Audio precision format.",
          "enum": [
            "PCM_16",
            "PCM_24",
            "PCM_32",
            "MULAW"
          ],
          "type": "string"
        },
        "sample_rate": {
          "$ref": "#/$defs/ResembleSampleRate"
        },
        "type": {
          "description": "Voice settings provider type",
          "enum": [
            "resemble"
          ],
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "Resemble Voice Settings",
      "type": "object"
    },
    "RimeVoiceSettings": {
      "properties": {
        "type": {
          "description": "Voice settings provider type",
          "enum": [
            "rime"
          ],
          "type": "string"
        },
        "voice_speed": {
          "default": 1.0,
          "description": "Speech speed multiplier. Default is 1.0.",
          "format": "float",
          "type": "number"
        }
      },
      "required": [
        "type"
      ],
      "title": "Rime Voice Settings",
      "type": "object"
    },
    "TelnyxVoiceSettings": {
      "properties": {
        "type": {
          "description": "Voice settings provider type",
          "enum": [
            "telnyx"
          ],
          "type": "string"
        },
        "voice_speed": {
          "default": 1.0,
          "description": "The voice speed to be used for the voice. The voice speed must be between 0.1 and 2.0. Default value is 1.0.",
          "format": "float",
          "maximum": 2.0,
          "minimum": 0.1,
          "type": "number"
        }
      },
      "required": [
        "type"
      ],
      "title": "Telnyx Voice Settings",
      "type": "object"
    },
    "XAIVoiceSettings": {
      "properties": {
        "language": {
          "default": "auto",
          "description": "Language code, or `auto` to detect automatically.",
          "type": "string"
        },
        "type": {
          "description": "Voice settings provider type",
          "enum": [
            "xai"
          ],
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "xAI Voice Settings",
      "type": "object"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/telnyx-speak-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.