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

# Get TTS provider

> Retrieve one TTS provider by its `provider_name`, for example `elevenlabs`, with every language and voice it offers.

The provider is returned as is, without an envelope. Use `id` as `tts.provider_id` and `languages[].voices[].voice_id` as `tts.voice_id`.

An unknown provider returns `404` with an empty body. To browse the catalog, use [List TTS providers](/api-reference/speech-providers/list-tts-providers).



## OpenAPI

````yaml /api-reference/openapi.json get /v3/tts/providers/{provider_name}
openapi: 3.1.0
info:
  title: Verbex Platform API
  description: API for managing AI agents, calls, phone numbers, and more.
  version: 1.0.0
servers: []
security: []
tags:
  - name: Knowledge Bases
    description: >-
      Create and manage knowledge bases, ingest documents into them, and search
      them semantically.


      **Authentication.** Every request carries a bearer token: `Authorization:
      Bearer <API_TOKEN>`. That is the only credential a client sends. The
      gateway resolves your identity from it and injects the tenant headers the
      service reads internally, so clients never send `x-user-org-id` or
      `x-verbex-id` themselves.


      **Tenancy is enforced on every route.** A knowledge base belongs to one
      organization and one user. Requesting one your token does not own returns
      `404 Knowledge base not found`, never `403`. This is deliberate: a
      nonexistent ID, a malformed ID and someone else's ID are indistinguishable
      in the response, so the API cannot be used to probe for other tenants'
      data. If you get a `404` on an ID you are certain exists, suspect the
      token before you suspect the ID.


      **Ingestion is asynchronous.** File upload and website crawl both answer
      `202` as soon as the material is stored and the job is queued. Parsing,
      chunking, embedding and indexing happen afterwards in a worker. Poll the
      document status endpoint until it reports `completed` before expecting
      search to see the content. That gap is the most common source of "why
      isn't my data showing up".


      **There is no document update endpoint.** Every submission mints a new
      `document_id`, so re-uploading a file or re-crawling the same URLs creates
      a second document while the first remains. To refresh material, delete
      then resubmit — and note that the sequence is not atomic.
  - name: AI Agents v3
    description: >-
      Create, read, update and delete AI agents. v3 selects the LLM,
      speech-to-text model and voice by catalog id, and wraps every response in
      a standard envelope. It replaces the deprecated AI Agents v2 operations,
      which stop working on November 30, 2026. See [Migrate from v2 to
      v3](/api-reference/ai-agents-v3/migrate-from-v2).
  - name: LLM Models
    description: >-
      The LLM model catalog. Look up the `llm_model_id` to send as `llm.llm_id`
      when you create or update an agent.
  - name: Speech Providers
    description: >-
      The speech-to-text and text-to-speech provider catalogs. Look up the
      `provider_id`, `model_id` and `voice_id` to send when you create or update
      an agent.
paths:
  /v3/tts/providers/{provider_name}:
    get:
      tags:
        - Speech Providers
      summary: Get TTS provider
      description: >-
        Retrieve one TTS provider by its `provider_name`, for example
        `elevenlabs`, with every language and voice it offers.


        The provider is returned as is, without an envelope. Use `id` as
        `tts.provider_id` and `languages[].voices[].voice_id` as `tts.voice_id`.


        An unknown provider returns `404` with an empty body. To browse the
        catalog, use [List TTS
        providers](/api-reference/speech-providers/list-tts-providers).
      operationId: get_tts_provider_v3
      parameters:
        - name: provider_name
          in: path
          required: true
          description: Provider key, for example `elevenlabs`.
          schema:
            type: string
            title: Provider Name
      responses:
        '200':
          description: The TTS provider
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TtsProvider'
              example:
                id: 6a5c079f814b8ed08b15172b
                provider_name: elevenlabs
                display_name: ElevenLabs
                status: ACTIVE
                priority: 10
                languages:
                  - language_code: en-US
                    language_name: English (US)
                    is_default: true
                    voices:
                      - voice_id: cgSgspJ2msm6clMCkdW9
                        voice_name: Jessica
                        display_name: Jessica
                        model_name: eleven_flash_v2_5
                        model_version: '2.5'
                        latency_in_ms: 250
                        tag: fast
                        gender: female
                        accent: american
                        style: conversational
                        is_default: true
                created_at: '2026-05-04T08:00:00Z'
                modified_at: '2026-09-12T11:20:00Z'
        '404':
          description: No provider with that name. The body is empty.
components:
  schemas:
    TtsProvider:
      type: object
      title: TtsProvider
      properties:
        id:
          type: string
          title: Id
          description: Provider id. Send it as `tts.provider_id`.
        provider_name:
          type: string
          title: Provider Name
          description: >-
            Provider key, for example `deepgram`. Also the path parameter of the
            get operation.
        display_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Display Name
          description: Provider name for display.
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
            - DELETED
          title: Status
          description: >-
            Lifecycle status. Only `ACTIVE` providers can be referenced by an
            agent.
        priority:
          anyOf:
            - type: integer
            - type: 'null'
          title: Priority
          description: Sort weight.
        created_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created At
          description: Creation time.
        modified_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Modified At
          description: Last change time.
        languages:
          type: array
          items:
            $ref: '#/components/schemas/TtsLanguage'
          title: Languages
          description: Languages the provider supports.
    TtsLanguage:
      type: object
      title: TtsLanguage
      properties:
        language_code:
          type: string
          title: Language Code
          description: BCP-47 language code.
        language_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Language Name
          description: Language name for display.
        is_default:
          type: boolean
          title: Is Default
          description: Whether this is the provider's default language.
        voices:
          type: array
          items:
            $ref: '#/components/schemas/TtsVoice'
          title: Voices
          description: Voices offered for this language.
    TtsVoice:
      type: object
      title: TtsVoice
      properties:
        voice_id:
          type: string
          title: Voice Id
          description: >-
            Voice id. Send it as `tts.voice_id`. A voice is listed once per
            language it supports.
        voice_name:
          type: string
          title: Voice Name
          description: Voice name.
        display_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Display Name
          description: Voice name for display.
        model_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Name
          description: Synthesis model that produces this voice.
        model_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Version
          description: Model version.
        latency_in_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Latency In Ms
          description: Expected latency in milliseconds.
        tag:
          anyOf:
            - type: string
            - type: 'null'
          title: Tag
          description: Optional label for grouping.
        gender:
          anyOf:
            - type: string
            - type: 'null'
          title: Gender
          description: Voice gender.
        accent:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent
          description: Voice accent.
        style:
          anyOf:
            - type: string
            - type: 'null'
          title: Style
          description: Voice style.
        is_default:
          type: boolean
          title: Is Default
          description: Whether this is the default voice for the language.

````

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