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

# List Voice Catalog

> The voice picker's roster (issue #229): every selectable conversation
voice, white-labeled. `id` is what `hello.voice` and every other API
surface accepts/echoes (config.VOICE_ROSTER) -- NEVER the underlying
Google TTS voice name, which never appears in this response or anywhere
else client-facing. `default` marks the roster's first entry, the voice
a session resolves to when `hello.voice` is omitted and nothing was
chosen in a prior session (config.VOICE_ROSTER_DEFAULT_ID). `preview_url`
is always null in this wave: a per-voice audition clip is a planned
live-test byproduct, not yet wired to R2.

Train 2 (voice-choice-at-generation, VA3): filtered to `live` entries
only. VOICE_ROSTER grew to ten narration personas; the five NEW ones are
narration-only (live=False) until a live-session bake-off + filler
decision promotes one -- this catalog, and hello.voice below, must stay
EXACTLY the five vetted personas, unchanged surfaces (D3).



## OpenAPI

````yaml /openapi.yaml get /api/v1/voice/voices
openapi: 3.1.0
info:
  title: Mahara Platform
  description: >
    AI Sales Training Course Generator, a Coursera-style platform.


    ## Authentication


    Every request must carry your API key as a Bearer token:


    `Authorization: Bearer sk_live_your_key_here`


    ## Getting an API key


    API keys are provisioned by our team. They are not self-service, so there is
    no signup page to apply on. To request access, email **sales@myustadia.com**
    and we will issue a key for your account.
  version: 1.0.0
servers: []
security: []
paths:
  /api/v1/voice/voices:
    get:
      tags:
        - Voice
      summary: List Voice Catalog
      description: >-
        The voice picker's roster (issue #229): every selectable conversation

        voice, white-labeled. `id` is what `hello.voice` and every other API

        surface accepts/echoes (config.VOICE_ROSTER) -- NEVER the underlying

        Google TTS voice name, which never appears in this response or anywhere

        else client-facing. `default` marks the roster's first entry, the voice

        a session resolves to when `hello.voice` is omitted and nothing was

        chosen in a prior session (config.VOICE_ROSTER_DEFAULT_ID).
        `preview_url`

        is always null in this wave: a per-voice audition clip is a planned

        live-test byproduct, not yet wired to R2.


        Train 2 (voice-choice-at-generation, VA3): filtered to `live` entries

        only. VOICE_ROSTER grew to ten narration personas; the five NEW ones are

        narration-only (live=False) until a live-session bake-off + filler

        decision promotes one -- this catalog, and hello.voice below, must stay

        EXACTLY the five vetted personas, unchanged surfaces (D3).
      operationId: list_voice_catalog_api_v1_voice_voices_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/VoiceCatalogEntry'
                type: array
                title: Response List Voice Catalog Api V1 Voice Voices Get
components:
  schemas:
    VoiceCatalogEntry:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        description:
          type: string
          title: Description
        default:
          type: boolean
          title: Default
        preview_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Preview Url
      type: object
      required:
        - id
        - name
        - description
        - default
      title: VoiceCatalogEntry

````

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