> ## Documentation Index
> Fetch the complete documentation index at: https://www.bolna.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Add a custom TTS voice

> Register a voice from your own OpenAI-compatible text-to-speech server so Bolna voice agents can speak with it.

Registers one voice from your text-to-speech server, with the model, endpoint and key Bolna uses to call it. Send `custom_tts_key` as an empty string if your server has no authentication. Read more in [Custom TTS](/docs/custom-tts).


## OpenAPI

````yaml POST /user/tts/custom
openapi: 3.1.0
info:
  title: Bolna API
  description: >-
    Use and leverage Bolna Voice AI using APIs through HTTP requests from any
    language in your applications and workflows.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.bolna.ai
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: SIP trunks
    description: >-
      Bring-your-own-carrier SIP trunks, their gateways, carrier IPs and
      numbers.
paths:
  /user/tts/custom:
    post:
      description: Add a custom TTS voice
      requestBody:
        description: Add a voice from an OpenAI-compatible text-to-speech server
        content:
          application/json:
            schema:
              required:
                - custom_tts_voice
                - custom_tts_model
                - custom_tts_url
                - custom_tts_key
              properties:
                custom_tts_voice:
                  type: string
                  description: >-
                    The voice name your server accepts, passed through
                    unchanged. Unique within the scope
                custom_tts_model:
                  type: string
                  description: The model your server serves, passed through unchanged
                custom_tts_url:
                  type: string
                  format: uri
                  description: >-
                    OpenAI-compatible base URL, including the version segment.
                    Bolna calls POST {base_url}/audio/speech
                custom_tts_key:
                  type: string
                  description: >-
                    Bearer token sent to your endpoint. Stored encrypted. Send
                    an empty string if your server has no authentication
            examples:
              example-1:
                summary: Example of adding a custom TTS voice
                value:
                  custom_tts_voice: vivian
                  custom_tts_model: Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice
                  custom_tts_url: https://your-host/v1
                  custom_tts_key: your-endpoint-key
        required: true
      responses:
        '200':
          description: the voice was added
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: custom TTS added successfully
                  status:
                    type: string
                    enum:
                      - added
                    example: added
                  id:
                    type: string
                    description: Identifier used to delete the voice
        '400':
          description: The endpoint URL is not reachable publicly or rejected the API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: A custom TTS with this voice already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: integer
          format: int32
        message:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.