Skip to main content
Create a reusable voice model from one or more recordings of a person speaking, and get back a voice_id you can pass to voice.speak. Requires an explicit consent attestation on every call.
Use when you need the SAME custom voice repeatedly: a narrator for a series, a brand voice, a character. Reference recordings arrive two ways, mixable in one call, 1 to 20 in total: sample_urls, public http or https links; or sample_handles, for recordings the user has on their device or can make on the spot. For handles, call create_upload with content_type “audio/*” and give the user upload_page_url: that page lets them RECORD with their microphone right there, or pick an audio file, and the exact format is read from the file itself. At least ten seconds of clear speech per clip; 30 to 60 seconds of natural speech in a quiet room gives the closest match, and several varied clips beat one. The voice belongs to your workspace and no other workspace can use it. It stays available until you delete it with voice.delete. You must set consent_attested to true, which is a statement that the person whose voice this is has agreed to it being cloned: read the field description before you send it, and do not send it on a voice you have no consent for.

Price

Free. This call is not charged. It places no hold, it draws nothing from your balance, and it works on an empty wallet. Nothing to reconcile afterwards and no ceiling to read.

Input

These are all the fields this endpoint accepts. Anything else is rejected as a validation_error rather than forwarded to the provider.

Example

Response

One row of the response. Values are illustrative.