Telnyx Voice Designs API
Create and manage AI-generated voice designs using natural language prompts.
Create and manage AI-generated voice designs using natural language prompts.
openapi: 3.1.0
info:
contact:
email: support@telnyx.com
description: Telnyx provides global communications and connectivity APIs for developers — including SIP trunking, programmable voice, SMS, MMS, WhatsApp Business Messaging, Call Control, Fax, Wireless (IoT & eSIM), Phone Numbers (DID provisioning & porting), Emergency Services, and Network APIs for private interconnects and edge connectivity. Build, scale, and manage voice, messaging, and data networks with Telnyx's carrier-grade global infrastructure and API-first platform.
title: Telnyx Access Tokens Voice Designs API
version: 2.0.0
x-endpoint-cost: light
servers:
- description: Version 2.0.0 of the Telnyx API
url: https://api.telnyx.com/v2
security:
- bearerAuth: []
tags:
- description: Create and manage AI-generated voice designs using natural language prompts.
name: Voice Designs
paths:
/voice_designs:
get:
description: Returns a paginated list of voice designs belonging to the authenticated account.
operationId: listVoiceDesigns
parameters:
- $ref: '#/components/parameters/voice-designs_PageNumber'
- $ref: '#/components/parameters/voice-designs_PageSize'
- $ref: '#/components/parameters/FilterName'
- $ref: '#/components/parameters/voice-designs_Sort'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/VoiceDesignListResponse'
description: A paginated list of voice designs.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Unauthorized — missing or invalid bearer token.
summary: List voice designs
tags:
- Voice Designs
x-latency-category: interactive
post:
description: Creates a new voice design (version 1) when `voice_design_id` is omitted. When `voice_design_id` is provided, adds a new version to the existing design instead. A design can have at most 50 versions.
operationId: createVoiceDesign
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VoiceDesignRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/VoiceDesignResponse'
description: Voice design created or new version added successfully.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Unauthorized — missing or invalid bearer token.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Voice design not found — the specified `voice_design_id` does not exist.
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Conflict — the voice design has reached the maximum of 50 versions.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Unprocessable entity — validation error in the request body.
'502':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Bad gateway — upstream voice synthesis service is unavailable.
summary: Create or add a version to a voice design
tags:
- Voice Designs
x-latency-category: interactive
/voice_designs/{id}:
delete:
description: Permanently deletes a voice design and all of its versions. This action cannot be undone.
operationId: deleteVoiceDesign
parameters:
- description: The voice design UUID or name.
in: path
name: id
required: true
schema:
type: string
responses:
'204':
description: Voice design deleted successfully.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Unauthorized — missing or invalid bearer token.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Voice design not found.
summary: Delete a voice design
tags:
- Voice Designs
x-latency-category: interactive
get:
description: Returns the latest version of a voice design, or a specific version when `?version=N` is provided. The `id` parameter accepts either a UUID or the design name.
operationId: getVoiceDesign
parameters:
- description: The voice design UUID or name.
in: path
name: id
required: true
schema:
type: string
- description: Specific version number to retrieve. Defaults to the latest version.
in: query
name: version
required: false
schema:
minimum: 1
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/VoiceDesignResponse'
description: The requested voice design.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Unauthorized — missing or invalid bearer token.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Voice design not found.
summary: Get a voice design
tags:
- Voice Designs
x-latency-category: interactive
patch:
description: Updates the name of a voice design. All versions retain their other properties.
operationId: updateVoiceDesign
parameters:
- description: The voice design UUID or name.
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VoiceDesignUpdateRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/VoiceDesignUpdatedResponse'
description: Voice design renamed successfully.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Unauthorized — missing or invalid bearer token.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Voice design not found.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Unprocessable entity — validation error in the request body.
summary: Rename a voice design
tags:
- Voice Designs
x-latency-category: interactive
/voice_designs/{id}/sample:
get:
description: Downloads the WAV audio sample for the voice design. Returns the latest version's sample by default, or a specific version when `?version=N` is provided. The `id` parameter accepts either a UUID or the design name.
operationId: getVoiceDesignSample
parameters:
- description: The voice design UUID or name.
in: path
name: id
required: true
schema:
type: string
- description: Specific version number to download the sample for. Defaults to the latest version.
in: query
name: version
required: false
schema:
minimum: 1
type: integer
responses:
'200':
content:
audio/wav:
schema:
format: binary
type: string
description: WAV audio sample binary.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Unauthorized — missing or invalid bearer token.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Voice design or version not found.
summary: Download voice design audio sample
tags:
- Voice Designs
x-latency-category: interactive
/voice_designs/{id}/versions/{version}:
delete:
description: Permanently deletes a specific version of a voice design. The version number must be a positive integer.
operationId: deleteVoiceDesignVersion
parameters:
- description: The voice design UUID or name.
in: path
name: id
required: true
schema:
type: string
- description: The version number to delete.
in: path
name: version
required: true
schema:
minimum: 1
type: integer
responses:
'204':
description: Voice design version deleted successfully.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Bad request — invalid version number.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Unauthorized — missing or invalid bearer token.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/voice-designs_ErrorResponse'
description: Voice design or version not found.
summary: Delete a specific version of a voice design
tags:
- Voice Designs
x-latency-category: interactive
components:
schemas:
VoiceDesignData:
description: A voice design object with full version detail.
properties:
created_at:
description: Timestamp when the voice design was first created.
format: date-time
type: string
id:
description: Unique identifier for the voice design.
format: uuid
type: string
name:
description: Name of the voice design.
type: string
prompt:
description: Natural language prompt used to define the voice style for this version.
type: string
provider:
description: Voice synthesis provider used for this design.
enum:
- telnyx
- minimax
- Telnyx
- Minimax
- null
type:
- string
- 'null'
provider_supported_models:
description: List of TTS model identifiers supported by this design's provider (e.g. `Qwen3TTS`, `speech-02-turbo`).
items:
type: string
type: array
provider_voice_id:
description: Provider-specific voice identifier. For Telnyx designs this is the design version ID; for Minimax it is the Minimax-assigned voice ID.
type:
- string
- 'null'
record_type:
description: Identifies the resource type.
enum:
- voice_design
type: string
text:
description: Sample text used to synthesize this version.
type: string
updated_at:
description: Timestamp when the voice design was last updated.
format: date-time
type: string
version:
description: Version number of this voice design.
type: integer
version_created_at:
description: Timestamp when this specific version was created.
format: date-time
type: string
voice_sample_size:
description: Size of the voice sample audio in bytes.
type: integer
type: object
VoiceDesignResponse:
description: Response envelope for a single voice design with full version detail.
example:
data:
created_at: '2024-01-01T00:00:00Z'
id: 550e8400-e29b-41d4-a716-446655440000
name: friendly-narrator
prompt: Speak in a warm tone
provider: Telnyx
provider_supported_models:
- Qwen3TTS
provider_voice_id: 550e8400-e29b-41d4-a716-446655440000
record_type: voice_design
text: Hello, welcome.
updated_at: '2024-01-01T00:00:00Z'
version: 1
version_created_at: '2024-01-01T00:00:00Z'
voice_sample_size: 48000
properties:
data:
$ref: '#/components/schemas/VoiceDesignData'
type: object
VoiceDesignListResponse:
description: Paginated list of voice designs.
properties:
data:
description: Array of voice design summary objects.
items:
$ref: '#/components/schemas/VoiceDesignSummaryData'
type: array
meta:
$ref: '#/components/schemas/voice-designs_PaginationMeta'
type: object
VoiceDesignSummaryData:
description: A summarized voice design object (without version-specific fields).
properties:
created_at:
description: Timestamp when the voice design was first created.
format: date-time
type: string
id:
description: Unique identifier for the voice design.
format: uuid
type: string
name:
description: Name of the voice design.
type: string
provider:
description: Voice synthesis provider used for this design.
enum:
- telnyx
- minimax
- Telnyx
- Minimax
- null
type:
- string
- 'null'
provider_supported_models:
description: List of TTS model identifiers supported by this design's provider.
items:
type: string
type: array
record_type:
description: Identifies the resource type.
enum:
- voice_design
type: string
updated_at:
description: Timestamp when the voice design was last updated.
format: date-time
type: string
type: object
VoiceDesignUpdateRequest:
description: Request body for renaming a voice design.
example:
name: updated-narrator
properties:
name:
description: New name for the voice design.
maxLength: 255
minLength: 1
type: string
required:
- name
type: object
VoiceDesignRequest:
description: Request body for creating a new voice design or adding a version to an existing one. Omit `voice_design_id` to create a new design; include it to add a new version.
example:
language: Auto
name: friendly-narrator
prompt: Speak in a warm, friendly tone
provider: telnyx
text: Hello, welcome to our service.
properties:
language:
default: Auto
description: 'Language for synthesis. Supported values: Auto, Chinese, English, Japanese, Korean, German, French, Russian, Portuguese, Spanish, Italian. Defaults to Auto.'
type: string
max_new_tokens:
description: 'Maximum number of tokens to generate. Default: 2048.'
maximum: 4096
minimum: 100
type: integer
name:
description: Name for the voice design. Required when creating a new design (`voice_design_id` is not provided); ignored when adding a version. Cannot be a UUID.
maxLength: 255
minLength: 1
type: string
prompt:
description: Natural language description of the voice style, e.g. 'Speak in a warm, friendly tone with a slight British accent'.
type: string
provider:
default: telnyx
description: Voice synthesis provider. `telnyx` uses the Qwen3TTS model; `minimax` uses the Minimax speech models. Case-insensitive. Defaults to `telnyx`.
enum:
- telnyx
- minimax
- Telnyx
- Minimax
type: string
repetition_penalty:
description: 'Repetition penalty to reduce repeated patterns in generated audio. Default: 1.05.'
format: float
maximum: 2.0
minimum: 1.0
type: number
temperature:
description: 'Sampling temperature controlling randomness. Higher values produce more varied output. Default: 0.9.'
format: float
maximum: 2.0
minimum: 0.0
type: number
text:
description: Sample text to synthesize for this voice design.
type: string
top_k:
description: 'Top-k sampling parameter — limits the token vocabulary considered at each step. Default: 50.'
maximum: 1000
minimum: 1
type: integer
top_p:
description: 'Top-p (nucleus) sampling parameter — cumulative probability cutoff for token selection. Default: 1.0.'
format: float
maximum: 1.0
minimum: 0.0
type: number
voice_design_id:
description: ID of an existing voice design to add a new version to. When provided, a new version is created instead of a new design.
format: uuid
type: string
required:
- text
- prompt
type: object
voice-designs_PaginationMeta:
description: Pagination metadata returned with list responses.
example:
page_number: 1
page_size: 20
total_pages: 3
total_results: 42
properties:
page_number:
description: Current page number (1-based).
type: integer
page_size:
description: Number of results per page.
type: integer
total_pages:
description: Total number of pages.
type: integer
total_results:
description: Total number of results across all pages.
type: integer
type: object
voice-designs_ErrorObject:
description: A single error object.
properties:
code:
description: Telnyx-specific error code.
type: string
detail:
description: Detailed, human-readable explanation of the error.
type: string
source:
description: Reference to the source of the error.
properties:
pointer:
description: A JSON Pointer (RFC 6901) to the field that caused the error.
type: string
type: object
title:
description: Short, human-readable summary of the error.
type: string
type: object
voice-designs_ErrorResponse:
description: Standard error response envelope.
example:
errors:
- code: '10005'
detail: Voice design not found
title: Resource not found
properties:
errors:
items:
$ref: '#/components/schemas/voice-designs_ErrorObject'
type: array
type: object
VoiceDesignUpdatedResponse:
description: Response envelope for a voice design after a rename operation (no version-specific fields).
example:
data:
created_at: '2024-01-01T00:00:00Z'
id: 550e8400-e29b-41d4-a716-446655440000
name: updated-narrator
record_type: voice_design
updated_at: '2024-01-02T00:00:00Z'
properties:
data:
$ref: '#/components/schemas/VoiceDesignSummaryData'
type: object
parameters:
voice-designs_PageSize:
description: Number of results per page.
in: query
name: page[size]
required: false
schema:
default: 20
maximum: 250
minimum: 1
type: integer
FilterName:
description: Case-insensitive substring filter on the name field.
in: query
name: filter[name]
required: false
schema:
type: string
voice-designs_Sort:
description: Sort order. Prefix with `-` for descending. Defaults to `-created_at`.
in: query
name: sort
required: false
schema:
default: -created_at
enum:
- name
- -name
- created_at
- -created_at
type: string
voice-designs_PageNumber:
description: Page number for pagination (1-based).
in: query
name: page[number]
required: false
schema:
default: 1
minimum: 1
type: integer
securitySchemes:
bearerAuth:
scheme: bearer
type: http
branded-calling_bearerAuth:
description: API key passed as a Bearer token in the Authorization header
scheme: bearer
type: http
oauthClientAuth:
description: OAuth 2.0 authentication for Telnyx API and MCP integrations
flows:
authorizationCode:
authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
refreshUrl: https://api.telnyx.com/v2/oauth/token
scopes:
admin: Administrative access to Telnyx resources
tokenUrl: https://api.telnyx.com/v2/oauth/token
clientCredentials:
scopes:
admin: Administrative access to Telnyx resources
tokenUrl: https://api.telnyx.com/v2/oauth/token
type: oauth2
outbound-voice-profiles_bearerAuth:
bearerFormat: JWT
scheme: bearer
type: http
pronunciation-dicts_bearerAuth:
description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
scheme: bearer
type: http
stored-payment-transactions_bearerAuth:
bearerFormat: JWT
scheme: bearer
type: http