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

# Get a voice model

> Retrieves a single voice model by id. Works for both Audimee built-in voices and the client's own custom voices.

For custom voices, the same response is used to poll training progress — watch `percentageDone` and `confirmedDone`.



## OpenAPI

````yaml GET /voice-models/{id}
openapi: 3.1.0
info:
  title: Audimee API
  description: >-
    The Audimee API lets clients browse voice models, train custom voices, and
    run AI voice conversions.
  version: 1.0.0
servers:
  - url: https://audimee.com/api/v1
security:
  - bearerAuth: []
paths:
  /voice-models/{id}:
    get:
      tags:
        - Voice Models
      summary: Get a voice model
      description: >-
        Retrieves a single voice model by id. Works for both Audimee built-in
        voices and the client's own custom voices.


        For custom voices, the same response is used to poll training progress —
        watch `percentageDone` and `confirmedDone`.
      operationId: getVoiceModel
      parameters:
        - name: id
          in: path
          required: true
          description: >-
            Voice model ID. Audimee built-in voices use short numeric strings
            (e.g. `"101"`); custom voices use UUIDs.
          schema:
            type: string
      responses:
        '200':
          description: Voice model details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VoiceModel'
              examples:
                audimeeVoice:
                  summary: An Audimee built-in voice
                  value:
                    id: '101'
                    type: audimee
                    name: Mark
                    description: >-
                      Meet Mark, the AI singer whose electrifying voice
                      effortlessly navigates the realms of Pop and EDM.
                    previewUrl: >-
                      https://public-assets.audimeestorage.com/artistPreviews%2Fmark-preview.mp3
                    gender: Male
                    genres:
                      - Pop
                      - Dance
                      - Airy
                    pitchLow: C3
                    pitchHigh: C5
                customStillTraining:
                  summary: A custom voice still training
                  value:
                    id: 8f1c2a7e-3d0b-4b2a-9f6a-1f4d6c3e9b21
                    type: custom
                    name: My band lead
                    createdAt: '2026-04-12T14:08:21.000Z'
                    percentageDone: 47
                    confirmedDone: false
                    failed: false
                    failedMessage: null
                customReady:
                  summary: A custom voice ready for conversions
                  value:
                    id: 8f1c2a7e-3d0b-4b2a-9f6a-1f4d6c3e9b21
                    type: custom
                    name: My band lead
                    createdAt: '2026-04-12T14:08:21.000Z'
                    percentageDone: 100
                    confirmedDone: true
                    failed: false
                    failedMessage: null
                customFailed:
                  summary: A custom voice whose training failed
                  value:
                    id: 8f1c2a7e-3d0b-4b2a-9f6a-1f4d6c3e9b21
                    type: custom
                    name: My band lead
                    createdAt: '2026-04-12T14:08:21.000Z'
                    percentageDone: 12
                    confirmedDone: false
                    failed: true
                    failedMessage: Training audio quality too low
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: No voice model with this id is visible to the authenticated client.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: Voice model not found
        '500':
          description: Server error fetching the voice model.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: Server error fetching voice model
components:
  schemas:
    VoiceModel:
      description: >-
        Discriminated by `type`. `audimee` is a built-in voice; `custom` is a
        client-trained voice.
      oneOf:
        - $ref: '#/components/schemas/AudimeeVoiceModel'
        - $ref: '#/components/schemas/CustomVoiceModel'
      discriminator:
        propertyName: type
        mapping:
          audimee:
            $ref: '#/components/schemas/AudimeeVoiceModel'
          custom:
            $ref: '#/components/schemas/CustomVoiceModel'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Human-readable explanation of what went wrong.
    AudimeeVoiceModel:
      type: object
      required:
        - id
        - type
        - name
        - description
        - previewUrl
        - gender
        - genres
        - pitchLow
        - pitchHigh
      properties:
        id:
          type: string
          description: Short numeric string identifying the built-in voice (e.g. `"101"`).
        type:
          type: string
          enum:
            - audimee
          description: Always `audimee` for built-in voices.
        name:
          type: string
          description: Display name of the voice.
        description:
          type: string
          description: Marketing description of the voice and its characteristics.
        previewUrl:
          type: string
          description: Public URL to a short preview clip of the voice.
        gender:
          type: string
          enum:
            - Male
            - Female
          description: Voice gender.
        genres:
          type: array
          items:
            type: string
          description: Genres this voice is suitable for.
        pitchLow:
          type: string
          description: >-
            Low end of the voice's core pitch range, as a note name string (e.g.
            `C3`, `F#3`).
        pitchHigh:
          type: string
          description: >-
            High end of the voice's core pitch range, as a note name string
            (e.g. `C5`, `G#4`).
    CustomVoiceModel:
      type: object
      required:
        - id
        - type
        - name
        - createdAt
        - percentageDone
        - confirmedDone
        - failed
        - failedMessage
      properties:
        id:
          type: string
          format: uuid
          description: UUID of the custom voice model.
        type:
          type: string
          enum:
            - custom
          description: Always `custom` for client-trained voices.
        name:
          type: string
          description: Name the client supplied when creating the model.
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the model was created.
        percentageDone:
          type: number
          minimum: 0
          maximum: 100
          description: Training progress, `0`–`100`. Reaches `100` when training finishes.
        confirmedDone:
          type: boolean
          description: >-
            `true` once training finishes successfully and the model is usable
            for conversions.
        failed:
          type: boolean
          description: >-
            `true` if training failed. The model cannot be used for conversions
            in this state.
        failedMessage:
          type:
            - string
            - 'null'
          description: >-
            Failure reason when `failed` is `true`; `null` otherwise. Always
            present.
  responses:
    Unauthorized:
      description: Missing, malformed, or unrecognised bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missingHeader:
              summary: No Authorization header
              value:
                error: Missing or invalid Authorization header
            invalidToken:
              summary: Token not recognised
              value:
                error: Invalid authorization token
            userNotFound:
              summary: Token valid but user no longer exists
              value:
                error: User not found
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Static API key issued by Audimee, passed as `Authorization: Bearer
        {token}`.

````