curl --request PATCH \
--url https://app.thinnest.ai/api/v1/voice-clones/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Dr Mehta — reception",
"tags": [
"warm",
"healthcare",
"reception"
]
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Dr Mehta — reception', tags: ['warm', 'healthcare', 'reception']})
};
fetch('https://app.thinnest.ai/api/v1/voice-clones/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/voice-clones/{id}"
payload = {
"name": "Dr Mehta — reception",
"tags": ["warm", "healthcare", "reception"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)Update Voice Clone
Renames, re-describes or re-tags a cloned voice. Its language, recording and consent are what it was made from and cannot be changed; sending any other field is refused. A build key may do this.
curl --request PATCH \
--url https://app.thinnest.ai/api/v1/voice-clones/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Dr Mehta — reception",
"tags": [
"warm",
"healthcare",
"reception"
]
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Dr Mehta — reception', tags: ['warm', 'healthcare', 'reception']})
};
fetch('https://app.thinnest.ai/api/v1/voice-clones/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/voice-clones/{id}"
payload = {
"name": "Dr Mehta — reception",
"tags": ["warm", "healthcare", "reception"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)Authorizations
Your API key (ta_live_…) from Settings → API keys, sent as Authorization: Bearer <key>. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with 403.
Headers
Developers only: the customer workspace this request acts in — its org_… id from POST /customers. Leave it out to act in your own workspace.
"org_3fKq9TzQ1mN8vB2xR7cLpA"
Path Parameters
The cloned voice's id (vc_…), or its bare voiceId — both name the same voice.
Body
Any of the three. No other field is accepted.
Response
The voice after the change.
A voice your workspace cloned.
The clone's id.
"vc_c4a19e72-0b3d-4f58-a6e1-9d2c7b5f8a03"
What an agent's voice.voice takes — the id List Voices shows it under.
Its name, up to 40 characters.
What it was recorded in, as a language tag: en-IN, hi, ta.
A note about it, up to 200 characters.
Lower-case labels such as warm.
8Whether background noise was cleaned from the recording before cloning.
A link to its preview that works for sixty seconds, or null.
Whether your plan may put a cloned voice on an agent.
What was agreed to when it was made, and when.
Show child attributes
Show child attributes
When the voice was made.