Skip to main content
POST
Design Voice
Only the tts_voice_id is required: the service fills tts_provider / tts_model_id for that voice.
Both endpoints return a usable voice in the same shape. The difference is where the voice comes from:They share one voice quota, so a designed voice counts against the same max_voices limit as a cloned one.
The instruction describes the voice, not the content. Keep it concrete and about delivery:
preview_audio_url is a permanent, unauthenticated WAV (mono, 16 kHz) you can play directly in an <audio> element or download.The field is absent when the preview could not be generated. A missing preview does not mean the voice failed — the voice is still usable for sessions. There is no status field to poll: the response itself means the voice is ready.
Error responses use the same {code, message, data} envelope; a non-zero code identifies the error.

Authorizations

Authorization
string
header
required

Your Vivix API key. Keep it on your server.

Body

application/json
instruction
string
required

Describes the voice to synthesize: timbre, age, speaking style, pace. At most 1500 characters. Required.

name
string
required

Display name, at most 100 characters. Required.

sample_text
string

Text the voice speaks in the generated preview. At most 1500 characters. Required when language is neither Chinese nor English; optional for zh and en, where the service supplies a default.

language
string

Language of sample_text: zh (Chinese), en (English), fr (French), de (German), ja (Japanese), ko (Korean), ru (Russian), pt (Portuguese), th (Thai), id (Indonesian), vi (Vietnamese), it (Italian), es (Spanish), ms (Malay), fil (Filipino), ar (Arabic).

Response

200 - application/json

Success

code
integer
required

0 on success; any other value is an error code.

message
string
required

success, or an English error description.

data
object
required