Skip to main content
POST
Create a voice
Creates a voice in the workspace that owns the API key. A newly created voice has status draft - it has no audio yet and cannot synthesize until you enroll a reference clip with /enroll. To create and enroll in a single request, use /clone instead.
Creating a voice counts against your plan’s max_voices limit. Over the cap, the request returns 403 with { "error": "plan limit reached", "feature": "max_voices", "limit": <n> }.

Authorization

string
required
Your workspace API key (flv_…).

Body

string
required
Display name for the voice.
string
Optional long-form description.
string
default:"instant"
How the voice will be created. One of instant, professional, design, or remix. This is informational metadata on the voice - the value is not currently plan-gated (for example, professional is accepted on any plan).
string
The synthesis model to bind to the voice. Fixed at creation; an unknown value falls back to the default model.
visibility is not accepted on the public API. New voices are always created as private - any visibility value sent here is ignored. Publishing a voice is admin-only.
string
default:"en"
Primary language (BCP-47, e.g. en, hi). Used when a synthesis request omits language.
object
Optional key/value tags, e.g. { "accent": "american", "gender": "female" }.

Response

Voice
The created Voice object with status draft.
Response

Prompt

Copy this into your coding agent (Claude Code, Cursor, Codex…) to implement this endpoint.