> ## Documentation Index
> Fetch the complete documentation index at: https://docs.60db.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get TTS Languages

> Retrieve the list of voice languages supported by the Text-to-Speech service

Returns the catalog of voice languages available for TTS synthesis. This list is distinct from the STT transcription languages returned by [`GET /stt/languages`](/api-reference/stt/get-languages) — TTS supports a smaller set of voice-tuned languages (\~30) whereas STT supports 39 transcription languages plus an `auto` auto-detect option.

<Note>
  Use the `language_id` values from this endpoint when you filter voices by language or when you create custom / professional cloned voices.
</Note>

## Request

### Headers

<ParamField header="Authorization" type="string" required>
  Bearer token with your API key
</ParamField>

## Response

<ResponseField name="success" type="boolean">
  Always `true` on 200 responses
</ResponseField>

<ResponseField name="message" type="string">
  Status message (`"TTS languages retrieved successfully"`)
</ResponseField>

<ResponseField name="data" type="array">
  Flat array of supported TTS voice languages
</ResponseField>

<ResponseField name="data[].language_id" type="string">
  ISO 639-1 language code (e.g. `"en"`, `"hi"`, `"fr"`). Use this value when passing a `language` field to any voice-creation or voice-filter endpoint.
</ResponseField>

<ResponseField name="data[].name" type="string">
  Human-readable language name (e.g. `"English"`, `"Hindi"`)
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.60db.ai/tts/languages \
    -H "Authorization: Bearer your-api-key"
  ```

  ```javascript JavaScript theme={null}
  import { SixtyDBClient } from "60db";

  const client = new SixtyDBClient("your-api-key");

  const res = await client.getTTSLanguages();
  for (const lang of res.data) {
    console.log(`${lang.language_id} — ${lang.name}`);
  }
  ```

  ```python Python theme={null}
  from sixtydb import SixtyDBClient

  client = SixtyDBClient('your-api-key')

  res = client.get_tts_languages()
  for lang in res['data']:
      print(f"{lang['language_id']} — {lang['name']}")
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "message": "TTS languages retrieved successfully",
    "data": [
      { "language_id": "en",  "name": "English" },
      { "language_id": "hi",  "name": "Hindi" },
      { "language_id": "as",  "name": "Assamese" },
      { "language_id": "bn",  "name": "Bengali" },
      { "language_id": "gu",  "name": "Gujarati" },
      { "language_id": "kn",  "name": "Kannada" },
      { "language_id": "ml",  "name": "Malayalam" },
      { "language_id": "mr",  "name": "Marathi" },
      { "language_id": "ne",  "name": "Nepali" },
      { "language_id": "or",  "name": "Odia" },
      { "language_id": "pa",  "name": "Punjabi" },
      { "language_id": "ta",  "name": "Tamil" },
      { "language_id": "te",  "name": "Telugu" },
      { "language_id": "de",  "name": "German" },
      { "language_id": "nl",  "name": "Dutch" },
      { "language_id": "fr",  "name": "French" },
      { "language_id": "es",  "name": "Spanish" },
      { "language_id": "it",  "name": "Italian" },
      { "language_id": "pt",  "name": "Portuguese" },
      { "language_id": "pl",  "name": "Polish" },
      { "language_id": "ar",  "name": "Arabic" },
      { "language_id": "ja",  "name": "Japanese" },
      { "language_id": "ko",  "name": "Korean" },
      { "language_id": "tr",  "name": "Turkish" },
      { "language_id": "vi",  "name": "Vietnamese" },
      { "language_id": "ru",  "name": "Russian" },
      { "language_id": "id",  "name": "Indonesian" },
      { "language_id": "th",  "name": "Thai" },
      { "language_id": "fil", "name": "Filipino" },
      { "language_id": "uk",  "name": "Ukrainian" }
    ]
  }
  ```
</ResponseExample>

## Notes

* **TTS ≠ STT language list.** TTS voice synthesis supports a curated set of voice-tuned languages. If you need to transcribe audio in a language that is not in this list, use the STT API — the supported language sets are deliberately different.
* The endpoint is a transparent wrapper around the upstream TTS service's `/v1/languages`, so the `data` array is the raw upstream response. Do not rely on the order being alphabetical — sort on the client side if needed.
* Languages returned here can be passed as the `language` field when creating a cloned voice via [`POST /voices`](/api-reference/voices/create-voice) or a professional voice via [`POST /voices/professional`](/api-reference/voices/create-voice).
