openapi: 3.0.1 info: title: Get Voices description: 'API Endpoint to get voices supported by our TTS models. ' version: 1.0.0 servers: - url: https://api.smallest.ai description: Waves API server x-fern-server-name: waves paths: /waves/v1/{model}/get_voices: get: tags: - Voices summary: Get Voices description: | List voices available for Lightning v3.1. The response is the union of the standard and Pro voice catalogs — the API does not return a per-voice "is Pro" flag, so consult the [Lightning v3.1 Pro](/models/model-cards/text-to-speech/lightning-v-3-1-pro) and [Lightning v3.1](/models/model-cards/text-to-speech/lightning-v-3-1) model cards for the canonical per-pool voice lists. Use the `voice_id` from this response together with `"model": "lightning_v3.1"` (default) or `"model": "lightning_v3.1_pro"` on the unified `/waves/v1/tts` route to pick the pool. operationId: getWavesVoices parameters: - in: path name: model required: true schema: type: string enum: - lightning-v3.1 default: lightning-v3.1 description: | The catalog to query. Currently only `lightning-v3.1` is supported — the response returns the union of standard Lightning v3.1 voices and Lightning v3.1 Pro voices. The API does not include a per-voice Pro flag; consult the model cards for the canonical per-pool catalogs. responses: '200': description: Voices retrieved successfully. content: application/json: schema: type: object properties: voices: type: array description: List of available voices. items: type: object required: - voiceId - displayName properties: voiceId: type: string description: Unique Voice ID. Pass this value as `voice_id` on `POST /waves/v1/tts` (or the streaming route). example: avery displayName: type: string description: Display name for the voice. example: Avery tags: type: object description: Tag metadata used to identify the voice's characteristics. Filter on these fields to find voices for a target language, accent, or use case. Fields may be empty on some voices. properties: language: type: array description: Languages the voice was trained on (e.g., `["english"]`, `["english", "hindi"]`). items: type: string example: ["english"] accent: type: string description: Accent of the voice (e.g., `american`, `british`, `indian`). example: american gender: type: string description: Gender of the voice (`male` or `female`). example: female age: type: string description: Age range of the voice (e.g., `young`, `middle aged`, `senior`). example: young emotions: type: array description: Emotional ranges the voice supports. May be empty. items: type: string example: [] usecases: type: array description: Recommended use cases for the voice (e.g., `conversational`, `narration`). items: type: string example: ["conversational"] example: voices: - voiceId: avery displayName: Avery tags: language: ["english"] accent: american gender: female age: young emotions: [] usecases: ["conversational"] - voiceId: liam displayName: Liam tags: language: ["english"] accent: british gender: male age: young emotions: [] usecases: ["conversational"] - voiceId: devansh displayName: Devansh tags: language: ["hindi", "english"] accent: indian gender: male age: young emotions: [] usecases: ["conversational"] '400': description: Bad request content: application/json: schema: type: object properties: error: type: string description: Error type message: type: string description: Error message '401': description: Unauthorized content: application/json: schema: type: object properties: error: type: string description: Error type message: type: string description: Error message '500': description: Server error occurred content: application/json: schema: type: object properties: error: type: string description: Error type message: type: string description: Error message security: - bearerAuth: [] components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT