queued,
moves to processing, and finishes as either ready or failed.
Every endpoint on this page requires
Authorization: Bearer sk_live_YOUR_API_KEY, except a signed preview URL.
Resources are scoped to the organization associated with the credential.Endpoints
Custom voice object
Request access and quota
Check policy
Check whether cloning is enabled and how many of your organization’s ThunderPhone custom voice slots are in use.Response (200 OK)
Submit a quota request
Use the same flow to request initial access or a larger ThunderPhone limit. Only one request can be pending for an organization at a time.Response (201 Created)
Check the latest request
Response (200 OK)
Returns
404 Not Found when the organization has never submitted a request.
Create a custom voice
Upload one WAV or MP3 file asmultipart/form-data. The sample must contain
3–15 seconds of speech and be no larger than 4 MB. Use one language per
clone, and only upload a voice you have the rights and consent to clone.
Response (202 Accepted)
202 Accepted response means the upload was queued, not that the voice is
ready. Poll the clone detail until it reaches a terminal status, or subscribe
to voice.ready and voice.failed for push
notifications.
The
403 response is:
List and retrieve clones
List all non-deleted custom voices for the organization, newest first:Response (200 OK)
GET /v1/voices/clones/{public_id}. It returns the
same custom voice object, or 404 Not Found if the
voice does not exist, belongs to another organization, or was deleted.
Rename a clone
Onlydisplay_name can be changed. The agent-facing name,
custom:<public_id>, stays stable.
Delete a clone
204 No Content. Deletion is soft: the voice disappears from clone
and catalog responses immediately and frees one ThunderPhone custom voice
slot. A deleted voice can no longer be assigned to an agent.
Play the preview
A ready clone’ssample_url is a signed URL to:
GET /v1/voices/clones/{public_id}/preview?sig={signature}
It streams audio/mpeg without an Authorization header. You can also call
the endpoint without sig while authenticated:
401 Unauthorized. A valid request returns 404 Not Found
when the clone is not ready or has no stored preview.
Use a custom voice
Oncestatus is ready, pass the clone’s name to an agent’s voice or
draft_voice field:
voices array returned
by GET /v1/voices:
surcharges object is empty when the organization has no custom voice
surcharge. You can filter the catalog with ?category=custom, ?languages=en,
or ?gender=female.