## Get voices

`voices.list()  -> VoiceListResponse`

**get** `/voices`

Retrieve all voices available for AI calls, including preset voices from Cartesia/ElevenLabs and your organization's cloned voices.

### Returns

- `class VoiceListResponse: …`

  - `voices: List[Voice]`

    - `id: str`

      The ID of the voice.

    - `description: str`

      The description of the voice.

    - `language: Literal["en", "fr", "es", 5 more]`

      The language of the voice.

      - `"en"`

      - `"fr"`

      - `"es"`

      - `"de"`

      - `"it"`

      - `"pt"`

      - `"ru"`

      - `"zh"`

    - `name: str`

      The name of the voice.

    - `provider: Literal["cartesia", "elevenlabs", "gradium"]`

      The provider of the voice.

      - `"cartesia"`

      - `"elevenlabs"`

      - `"gradium"`

    - `accent: Optional[str]`

      The accent/dialect of the voice (e.g. 'american', 'british', 'australian', 'quebec').

    - `gender: Optional[str]`

      The gender of the voice (e.g. 'male', 'female', 'neutral').

    - `is_cloned: Optional[bool]`

      Whether this is a cloned voice.

    - `model_compat: Optional[Literal["universal", "sonic-3", "sonic-3.5", "sonic-3.6"]]`

      Cartesia model compatibility. Used to filter the voice list by the selected model. Absent/undefined is treated as 'universal'.

      - `"universal"`

      - `"sonic-3"`

      - `"sonic-3.5"`

      - `"sonic-3.6"`

### Example

```python
import os
from revox import Revox

client = Revox(
    api_key=os.environ.get("REVOX_API_KEY"),  # This is the default and can be omitted
)
voices = client.voices.list()
print(voices.voices)
```

#### Response

```json
{
  "voices": [
    {
      "id": "x",
      "description": "description",
      "language": "en",
      "name": "name",
      "provider": "cartesia",
      "accent": "accent",
      "gender": "gender",
      "isCloned": true,
      "modelCompat": "universal"
    }
  ]
}
```
