curl --request GET \
--url https://app.thinnest.ai/api/v1/agents/{id}/byok-voice \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/agents/{id}/byok-voice', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/agents/{id}/byok-voice"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"provider": {
"id": "elevenlabs",
"label": "ElevenLabs"
},
"model": "eleven_flash_v2_5",
"voice": "EXAVITQu4vr4xnSDxMaL",
"stale": null
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "That agent was not found."
}{
"error": "This workspace is not using its own keys (or that agent was not found)."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}Get Agent BYOK Voice
On a workspace that brings its own keys: the voice this agent speaks with on your own voice provider. voice is null for the provider’s default voice. A choice belongs to the provider it was made on; after you switch your voice key to another provider, stale holds the old choice and calls speak the new provider’s default until you choose again. Refused with 409 when the workspace is not using its own keys.
curl --request GET \
--url https://app.thinnest.ai/api/v1/agents/{id}/byok-voice \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/agents/{id}/byok-voice', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/agents/{id}/byok-voice"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"provider": {
"id": "elevenlabs",
"label": "ElevenLabs"
},
"model": "eleven_flash_v2_5",
"voice": "EXAVITQu4vr4xnSDxMaL",
"stale": null
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "That agent was not found."
}{
"error": "This workspace is not using its own keys (or that agent was not found)."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}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 agent's id (ag_…), as List Agents returns it. Another workspace's agent is the same 404 as one that never existed.
Response
The agent's voice on your provider.
One of your own providers.
Show child attributes
Show child attributes
The model your voice key runs.
The voice this agent speaks with on this provider, or null for the provider's default.
A choice made on a different provider, which no longer applies; null when there is none.
Show child attributes
Show child attributes