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

# list voices

> Returns a list of all voices. A search or filter that matches none answers 200 with an empty `data` list.



## OpenAPI

````yaml https://api.anam.ai/swagger.json get /v1/voices
openapi: 3.1.0
info:
  title: Anam AI API
  version: '1.0'
servers:
  - url: https://api.anam.ai
    description: Anam API
security:
  - BearerAuth: []
tags:
  - name: Sessions
  - name: Avatar Videos
  - name: Meetings
  - name: Personas
  - name: Avatars
  - name: Voices
  - name: Pronunciation Dictionaries
  - name: LLMs
  - name: Knowledge
  - name: Tools
  - name: Share Links
  - name: Engine
paths:
  /v1/voices:
    get:
      tags:
        - Voices
      summary: list voices
      description: >-
        Returns a list of all voices. A search or filter that matches none
        answers 200 with an empty `data` list.
      operationId: listVoices
      parameters:
        - in: query
          name: page
          schema:
            type: integer
            minimum: 1
            default: 1
          description: Page number for pagination
        - in: query
          name: perPage
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
          description: Number of voices per page (max 100)
        - in: query
          name: search
          schema:
            type: string
          description: Search term to filter voices by display name
        - in: query
          name: gender
          schema:
            type: string
            enum:
              - male
              - female
              - neutral
          description: Only voices of this gender
        - in: query
          name: country
          schema:
            type: string
            pattern: ^[A-Za-z]{2}$
          description: >-
            Only voices with this ISO 3166-1 alpha-2 country (accent), such as
            `GB` or `MX`
        - in: query
          name: language
          schema:
            type: string
            pattern: ^[A-Za-z]{2,3}$
          description: >-
            Only voices that speak this ISO 639-1 language, such as `es`, as
            listed in each voice's `languages`.
      responses:
        '200':
          description: Successfully retrieved voices
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/Voice'
                        - type: object
                          properties:
                            languages:
                              type: array
                              items:
                                type: string
                              description: >-
                                ISO 639-1 languages the voice speaks, from the
                                language it was cloned or imported in, or else
                                its country and description. Empty when unknown.
                  meta:
                    $ref: '#/components/schemas/Pagination'
              examples:
                default:
                  $ref: '#/components/examples/VoiceListResponse'
        '400':
          description: >-
            A `page`, `perPage` or filter value is malformed: `page` isn't a
            whole number of at least 1, `perPage` isn't one from 1 to 100, or
            `gender`, `country` or `language` isn't one of the values above.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                    description: What is wrong with the query.
                    example: gender must be male, female or neutral
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: >-
            Forbidden - Account does not have access or API key lacks the
            required permission
        '500':
          description: Server error
        '503':
          description: >-
            The API key could not be checked because of a temporary server
            problem. The key may be valid; retry after `Retry-After` seconds.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableError'
components:
  schemas:
    Voice:
      type: object
      description: A voice preset a persona can use for text-to-speech.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the voice.
        displayName:
          type: string
          description: Human-readable name shown in the Lab.
        provider:
          type: string
          enum:
            - CARTESIA
            - ELEVENLABS
            - FISH_AUDIO
          description: Upstream TTS provider for this voice.
        providerVoiceId:
          type:
            - string
            - 'null'
          description: The upstream provider's identifier for the voice.
        providerModelId:
          type:
            - string
            - 'null'
          description: The upstream provider's model identifier used to generate speech.
        sampleUrl:
          type:
            - string
            - 'null'
          format: uri
          description: URL of a short audio preview of the voice.
        previewSampleUrl:
          type:
            - string
            - 'null'
          format: uri
          description: Alias for `sampleUrl`, kept for backwards compatibility.
        gender:
          type:
            - string
            - 'null'
          enum:
            - MALE
            - FEMALE
            - NEUTRAL
            - null
          description: Perceived gender of the voice, if categorised.
        country:
          type:
            - string
            - 'null'
          description: ISO 3166-1 alpha-2 country code representing the voice's accent.
        description:
          type:
            - string
            - 'null'
          description: Free-form description of the voice's character.
        displayTags:
          type: array
          items:
            type: string
          description: Tags used to categorise the voice in the Lab UI.
        isZdr:
          type: boolean
          description: Whether this voice meets the Zero Data Retention requirements.
        createdByOrganizationId:
          type:
            - string
            - 'null'
          description: >-
            ID of the organization that created the voice, or `null` for stock
            voices. IDs may be either UUIDs or nanoid-style strings depending on
            when the organization was created.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the voice was created.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the voice was last updated.
    Pagination:
      type: object
      description: >-
        Pagination metadata returned alongside the `data` array of every list
        endpoint.
      properties:
        total:
          type: integer
          description: Total number of items across all pages.
        lastPage:
          type: integer
          description: Number of the last page.
        currentPage:
          type: integer
          description: Number of the current page.
        perPage:
          type: integer
          description: Number of items per page.
        prev:
          type:
            - integer
            - 'null'
          description: Number of the previous page, or null if on the first page.
        next:
          type:
            - integer
            - 'null'
          description: Number of the next page, or null if on the last page.
    ServiceUnavailableError:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          example: Service temporarily unavailable
        message:
          type: string
          example: We could not check your API key. Please retry shortly.
  examples:
    VoiceListResponse:
      summary: A paginated list of voices
      value:
        data:
          - id: de23e340-1416-4dd8-977d-065a7ca11697
            displayName: Lucy - Fresh & Casual
            provider: ELEVENLABS
            providerVoiceId: lcMyyd2HUfFzxdCaC4Ta
            providerModelId: eleven_flash_v2_5
            sampleUrl: >-
              https://newgxnc1uqs0jnqm.public.blob.vercel-storage.com/voice-samples/de23e340-1416-4dd8-977d-065a7ca11697/1760617899390.mp3
            previewSampleUrl: >-
              https://newgxnc1uqs0jnqm.public.blob.vercel-storage.com/voice-samples/de23e340-1416-4dd8-977d-065a7ca11697/1760617899390.mp3
            gender: FEMALE
            country: GB
            description: >-
              Energetic and youthful British voice, perfect for narrations and
              conversational agents.
            displayTags:
              - fast
            isZdr: true
            createdByOrganizationId: null
            createdAt: '2026-04-20T10:00:00.000Z'
            updatedAt: '2026-04-20T10:00:00.000Z'
        meta:
          total: 1
          lastPage: 1
          currentPage: 1
          perPage: 10
          prev: null
          next: null
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

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