REST API

Tts

GET /api/v1/tts/voices

Description

Retrieve the list of available TTS voices for a given language. Each language offers multiple voices to choose from, covering different genders and styles.

Authentication

Header: X-API-Key (see Authentication)

Request Parameters

ParameterTypeLocationRequiredDescription
languagestringqueryYesLanguage code (e.g. en-US)

Request Example

curl -X GET "https://vas-poc.vurbo.ai/api/v1/tts/voices?language=en-US" \
  -H "X-API-Key: vas_aB3dE5fG7hI9jK1lM3nO5pQ7rS9tU1vW"

Success Response

HTTP 200

{
  "data": {
    "language": "en-US",
    "voices": [
      {
        "voice_name": "en-US-JennyNeural",
        "display_name": "Jenny",
        "gender": "Female",
        "is_default": true,
        "sample_url": "https://vas-poc.vurbo.ai/api/v1/tts/voices/en-US-JennyNeural/sample"
      },
      {
        "voice_name": "en-US-GuyNeural",
        "display_name": "Guy",
        "gender": "Male",
        "is_default": false,
        "sample_url": "https://vas-poc.vurbo.ai/api/v1/tts/voices/en-US-GuyNeural/sample"
      },
      {
        "voice_name": "en-US-AriaNeural",
        "display_name": "Aria",
        "gender": "Female",
        "is_default": false,
        "sample_url": "https://vas-poc.vurbo.ai/api/v1/tts/voices/en-US-AriaNeural/sample"
      },
      {
        "voice_name": "en-US-DavisNeural",
        "display_name": "Davis",
        "gender": "Male",
        "is_default": false,
        "sample_url": "https://vas-poc.vurbo.ai/api/v1/tts/voices/en-US-DavisNeural/sample"
      }
    ]
  }
}

Response Fields

FieldTypeDescription
voice_namestringVoice identifier (used in API calls)
display_namestringDisplay name of the voice
genderstringGender: Female / Male
is_defaultbooleanWhether this is the default voice for the language
sample_urlstringSample audio URL for the voice (playable directly for preview)

Specific Error Codes

Error CodeHTTP StatusDescriptionRecommended Action
validation_failed400Missing language parameter or invalid parameter formatProvide a valid language parameter
tts_invalid_language400Unsupported languageRefer to the supported language list for valid language codes (note: if this voices endpoint receives an unsupported locale, it returns an empty voices array rather than an error; only the TTS streaming endpoint /api/v1/sse/tts/{taskId} returns this error code)

GET /api/v1/tts/voices/{voiceName}/sample

Description

Retrieve the sample audio file (MP3 format) for a given voice. The first request synthesizes and caches the audio in real time; subsequent requests are served directly from the cache.

This endpoint does not count toward TTS usage charges.

Authentication

Header: X-API-Key (see Authentication)

Request Parameters

ParameterTypeLocationRequiredDescription
voiceNamestringpathYesVoice name (e.g. en-US-JennyNeural)

Request Example

curl -X GET "https://vas-poc.vurbo.ai/api/v1/tts/voices/zh-TW-HsiaoChenNeural/sample" \
  -H "X-API-Key: vas_aB3dE5fG7hI9jK1lM3nO5pQ7rS9tU1vW" \
  --output sample.mp3

Success Response

HTTP 200

The response is binary MP3 audio data (not JSON).

HeaderValue
Content-Typeaudio/mpeg
Content-LengthAudio file size (bytes)
Cache-Controlpublic, max-age=86400

Rate Limiting

30 requests per minute per user. Requests exceeding the limit return HTTP 429.

Specific Error Codes

Error CodeHTTP StatusDescriptionRecommended Action
tts_voice_not_found404Voice not foundVerify that the voice name is correct
tts_sample_generation_failed500TTS sample generation failedRetry later
-429Request rate too highWait and retry (limit: 30 requests/minute)

Tip: To look up the list of languages that support TTS, refer to the TTS speech synthesis support section in Appendix - Supported Language List.


Version: V1.5.7 Last Updated: 2026-05-20

Copyright © 2026