# List Voices
Purpose: API operation reference for `GET /v1/audio/voices`.
Last updated: 2026-09-15

## Endpoint

```txt
GET /v1/audio/voices
```

## Description

List a page of the model's preset voices followed by the caller org's enrolled voices.

Raises:
    GatewayError: 400 when ``after`` names no voice in this listing.

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `model` | query | Yes | `string` | the model whose voices to list; a shared alias unions its members' voices |
| `limit` | query | No | `integer` | most voices to return |
| `after` | query | No | `string \| null` | voice id to resume past; absent starts at the first |

## Success response

Status: `200`
Content type: `application/json`

| Field | Required | Type | Description |
| --- | --- | --- | --- |
| `object` | No | `"list"` | envelope type discriminator; always 'list' |
| `data` | Yes | `array<VoiceObject>` | the voices |
| `has_more` | No | `boolean` | whether a further page exists past this one |
| `first_id` | No | `string \| null` | first voice id, or None when empty |
| `last_id` | No | `string \| null` | last voice id, or None when empty |

## Error responses

| Status | Description |
| --- | --- |
| `400` | The request was malformed, or a field value was invalid. |
| `401` | Missing, invalid, or expired credentials. |
| `403` | Authenticated, but not a member of the requested organization. |
| `404` | The requested model does not exist or is not available. |
| `429` | Rate limit exceeded. |
| `502` | The model backend answered with something the gateway could not serve. |
| `503` | Authentication, rate limiting, or a backing service is temporarily unavailable. |

## Related links

- [Markdown reference](https://sprag.ai/docs/api/audio/voices-get.md)
- [OpenAPI spec](https://sprag.ai/openapi.json)
- [Authentication](https://sprag.ai/docs/authentication.md)
- [Errors](https://sprag.ai/docs/errors.md)
