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 ` |
| voice_settings | object | The settings associated with the voice selected |
JSON Schema
{
"$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.
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.