Telnyx Voice Designs API

Create and manage AI-generated voice designs using natural language prompts.

OpenAPI Specification

telnyx-voice-designs-api-openapi.yml Raw ↑
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