This endpoint has two independent admission gates and is the only public endpoint that mandates an API key:1.
An API key is required (Authorization: Bearer sk-...). Calling with a logged-in session token returns 403 TTS_SESSION_TOKEN_NOT_ALLOWED.
2.
The account must be on a paid plan, otherwise 403 TTS_PAID_ONLY.
API keys are returned in plaintext only at creation time. See the "Authentication" document.
When over concurrency budget the call does not fail immediately; it may wait about 330 seconds before RATE_LIMIT_CONCURRENT. Set the client HTTP timeout above 330 seconds. See the "Text to speech" document.
Limits are quota.syncBaseConcurrent + quota.syncPaidConcurrent on GET /api/account/info.Three mutually exclusive modes (chosen by which fields you send):input_audio → voice conversion. TTS fields are silently cleared; the URL must come from POST /api/tts/upload-audio or you get TTS_INPUT_AUDIO_INVALID.
instruct_mode: true → controllable synthesis, no SRT.
neither → regular TTS. Unsupported voices return VOICE_INSTRUCT_PATH_ONLY.
Invalid values are not always errors: short language codes, out-of-range speechRate / seed, and all-zero emo_switch are dropped. Only a malformed emo_switch (length ≠ 5) is 400. See the "Text to speech" document.Output is MP3. There is no format / bitrate / sampleRate parameter. See the "Audio and formats" document. Billing is charged on success (credit_used / billing).See the Errors document for the full code reference. Always use the X-Vocu-App-Request-Id response header when troubleshooting.