> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.videogen.io/rest-api-reference/resources/list-tts-voices/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.videogen.io/_mcp/server. # List TTS voices GET https://api.videogen.io/v1/resources/tts-voices List available text-to-speech voices. Pass a `voiceId` or `displayName` from the response to the text-to-speech endpoint. Cursor-paginated; see the [Pagination](/pagination) guide. Pass `query` to filter by voice id, display name, language, accent, or description. Reference: https://docs.videogen.io/rest-api-reference/resources/list-tts-voices ## Authentication - `Authorization` header (bearer token, required) — API key from [app.videogen.io/api](https://app.videogen.io/api). The full key is only shown once when you create it. ## Request ### Query parameters - `limit` (integer, optional, default: 50) — Maximum number of items to return in the page. Defaults to 50; capped at 200. See [Pagination](/pagination). - `cursor` (string, optional) — Opaque pagination cursor returned as `nextCursor` by the previous page. Omit on the first request. Cursors are tied to the endpoint that produced them and must be passed unmodified. See [Pagination](/pagination). - `includeDeprecatedVoices` (boolean, optional, default: false) — When true, includes voices that are deprecated but still callable. Defaults to false. - `query` (string, optional) — Optional case-insensitive substring filter across each item's searchable text fields. Omit to return the unfiltered catalogue. ## Response ### 200 List of TTS voices. Pass a `voiceId` or `displayName` to `POST /v1/tools/text-to-speech`. - `ttsVoices` (list of TtsVoice, required) - `hasMore` (boolean, required) — When true, there are more voices available. Pass `nextCursor` as the `cursor` query param to fetch the next page. - `nextCursor` (string, required, nullable) — Opaque cursor to fetch the next page. `null` when `hasMore` is false. ## Types ### TtsVoice A text-to-speech voice. - `voiceId` (string, required) — Voice id (e.g. `vg_voic_...`). Pass this or `displayName` as `voiceId` to `POST /v1/tools/text-to-speech`. - `languageCode` (string, required) — Locale tag for the voice (e.g. `en-US`, `es-ES`). - `displayName` (string, required) — Human-readable voice name. - `displayGender` (enum, required) — Voice gender. - Allowed values: `MALE`, `FEMALE`, `NEUTRAL` - `supportsDirectToolExecution` (boolean, required) — When false, this voice cannot be used directly with `POST /v1/tools/text-to-speech`. All voices, regardless of this field, can be used in full video generation workflows such as script-to-video. - `supportsAllLanguages` (boolean, required) — When true, this voice can synthesize text in any language regardless of its `languageCode`. When false, the voice only supports its listed language. - `isDeprecated` (boolean, required) — When true, this voice is deprecated and may be removed in a future API version. Prefer non-deprecated voices for new integrations. - `accent` (string, optional, nullable) — Accent (e.g. `american`, `british`). - `description` (string, optional, nullable) — Description of the voice. ## Examples **Response** ```json { "ttsVoices": [ { "voiceId": "vg_voic_7t1wdka3tmk", "languageCode": "en-US", "displayName": "Matilda", "displayGender": "FEMALE", "supportsDirectToolExecution": false, "supportsAllLanguages": true, "isDeprecated": false, "accent": "american", "description": "A professional woman with a pleasing alto pitch." } ], "hasMore": false, "nextCursor": null } ``` **SDK Code** ```typescript import { VideoGen } from "@videogen/sdk"; const client = new VideoGen({ apiKey: "sk_videogen_live_..." }); await client.resources.listTtsVoices(); ``` ```python from videogen import VideoGen client = VideoGen(api_key="sk_videogen_live_...") client.resources.list_tts_voices() ``` > HTTP API with TypeScript and Python SDKs for generating image, video, and audio assets with VideoGen.