# List voices (/docs/api-reference/providers/listVoices)

> Retrieve voices with filtering and pagination support. ElevenLabs
supports advanced filtering by name, language, accent, and gender.
Other providers support basic pagination only.




**GET** `/providers/voices`

Retrieve voices with filtering and pagination support. ElevenLabs
supports advanced filtering by name, language, accent, and gender.
Other providers support basic pagination only.

```yaml
operationId: listVoices
parameters:
  - name: provider
    in: query
    schema:
      type: string
      enum:
        - eleven_labs
        - google
        - deepgram
        - cartesia
        - sarvam
  - name: search
    in: query
    schema:
      type: string
    description: ElevenLabs only.
  - name: language
    in: query
    schema:
      type: string
    description: ElevenLabs only.
  - name: accent
    in: query
    schema:
      type: string
    description: ElevenLabs only.
  - name: gender
    in: query
    schema:
      type: string
      enum:
        - male
        - female
    description: ElevenLabs only.
  - name: page
    in: query
    schema:
      type: integer
      default: 1
  - name: page_size
    in: query
    schema:
      type: integer
      default: 30
      maximum: 100
responses:
  '200':
    description: Voices and filter metadata.
    content:
      application/json:
        schema:
          type: object
          properties:
            voices:
              type: array
              items:
                type: object
                properties:
                  id:
                    oneOf:
                      - type: integer
                      - type: 'null'
                  name:
                    type: string
                  display_name:
                    type: string
                  service:
                    type: string
                  sample_url:
                    type: string
                    format: uri
                  tags:
                    type: array
                    items:
                      type: string
                  source:
                    type: string
                    description: Origin marker (e.g. `external` for ElevenLabs community voices).
                  external_id:
                    type: string
                    description: Identifier on the upstream provider.
                  description:
                    type: string
            total:
              type: integer
            page:
              type: integer
            page_size:
              type: integer
            filters_applied:
              type: object
              description: >-
                Echoes the filter parameters the request applied. `null` for any filter that wasn't
                sent.
              properties:
                provider:
                  type: string
                  nullable: true
                search:
                  type: string
                  nullable: true
                language:
                  type: string
                  nullable: true
                accent:
                  type: string
                  nullable: true
                gender:
                  type: string
                  nullable: true
        example:
          voices:
            - id: 1
              name: aura-luna-en
              display_name: luna
              service: deepgram
              sample_url: >-
                https://res.cloudinary.com/deepgram/video/upload/v1709565351/aura/luna_docs_clom0e.wav
              tags:
                - feminine
                - Young Adult
                - en-us
                - American
                - Friendly, Natural, Engaging
                - IVR
          total: 30
          page: 1
          page_size: 30
          filters_applied:
            provider: null
            search: null
            language: null
            accent: null
            gender: null
```

**Python SDK**

```python
# Basic usage - list all voices with default pagination
voices = client.providers.list_voices()
print(voices)
# Returns: {'voices': [...], 'total': 123, 'page': 1, 'page_size': 30, 'filters_applied': False}

# With pagination
voices = client.providers.list_voices(page=2, page_size=50)
print(voices)

# Filter by specific provider (only supports basic pagination)
voices = client.providers.list_voices(provider='eleven_labs', page=1, page_size=20)
print(voices)

# Advanced filtering (ElevenLabs only)
voices = client.providers.list_voices(
    provider='eleven_labs',
    search='professional',
    language='en',
    accent='american',
    gender='male',
    page=1,
    page_size=15
)
print(voices)

# Search by voice name/description
voices = client.providers.list_voices(
    provider='eleven_labs',
    search='excited',
    gender='female'
)
print(voices)

# Filter by language
voices = client.providers.list_voices(
    provider='eleven_labs',
    language='en'
)
print(voices)

# Filter by accent
voices = client.providers.list_voices(
    provider='eleven_labs',
    accent='british'
)
print(voices)
```

**curl**

```bash
curl -X GET "https://backend.omnidim.io/api/v1/providers/voices" \
  -H "Authorization: Bearer $OMNIDIM_API_KEY"
```
