Public API v1

Create a reusable cloned voice

Clones a voice from a short reference clip and SAVES it, returning a persistent voiceId (clone_…). The voice then appears in GET /v1/voices (when you send your key) and is usable as voiceId in POST /v1/tts like any catalog voice. Pass engine to enrol on "v3" (default) or "v4"; the reference-clip duration limits differ per engine. A flat per-clone token cost is charged on create (independent of clip/text length, × the engine multiplier); subsequent generation bills per character at that engine's rate. Subject to your plan’s cloned-voice limit — delete unused voices with DELETE /v1/voices/{voiceId}.

post/api/v1/voices

Response

The saved voice. Use voiceId in any later generation call.

voiceIdstring required

Persistent voice id — pass as voiceId to POST /v1/tts.

namestring required
engine'v3' | 'v4' required

The engine this voice was enrolled for, and the only one it renders on. Pass it as engine alongside this voiceId in POST /v1/tts.

sampleAudioUrlstring nullable

Preview sample, rendered best-effort after the voice is saved — expect null for a short while after create, and treat null as "no preview yet", not as a failed clone. A HOST-RELATIVE path outside /api/v1: it is served by the application, is not part of this versioned contract, and may change or disappear without a version bump. Do not build against it — re-synthesize with the voiceId if you need a durable sample.

createdAtstring required

Example response

{
  "voiceId": "clone_9f1c2d34-...",
  "name": "My narrator voice",
  "engine": "v3",
  "sampleAudioUrl": "/api/tts/voices/{id}/sample?v={cacheBuster}",
  "createdAt": "2026-07-11T10:00:00.000Z"
}

Changes

No recorded changes to this endpoint across all 1 revision of this API.