curl --request GET \
--url https://app.thinnest.ai/api/v1/voices \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/voices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/voices"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"items": [
{
"id": "3b7e2c10-5f4a-4d89-9c61-0a2e8b7d4f15",
"name": "Anjali",
"accent": "hi",
"tier": "standard",
"description": null
},
{
"id": "009ae8b5-4a03-492d-af1c-3055989ac734",
"name": "Anika",
"accent": "hi",
"tier": "premium",
"description": null
},
{
"id": "priya",
"name": "Priya",
"accent": "hi",
"tier": "premium",
"description": "Best female — Hindi, Telugu, Kannada, Tamil, Marathi, Gujarati, English."
},
{
"id": "spry-swallow-5564__rakesh",
"name": "Rakesh Khanna",
"accent": "hi",
"tier": "studio",
"description": "Customer support"
},
{
"id": "c4a19e72-0b3d-4f58-a6e1-9d2c7b5f8a03",
"name": "Dr Mehta (clinic)",
"accent": "en-IN",
"tier": "studio",
"description": "Warm, unhurried",
"mine": true
},
{
"id": "7e2b5c90-4d1a-4f63-8b7e-2c9a0d6f1e48",
"name": "Brand voice (from your developer)",
"accent": "en-IN",
"tier": "studio",
"description": null,
"sharedFromDeveloper": true
}
]
}List Voices
Every voice your agents may speak with, in the picker’s order: standard, then premium, then Studio. tier is the price band a call is billed at. Studio voices — the shared Studio catalogue and your own clones (mine: true) and, in a developer’s customer workspace, the developer’s clones (sharedFromDeveloper: true) — are listed only on the Pro plan and above, so every id here is one you can set. Every voice speaks every supported language; the agent’s language decides which.
curl --request GET \
--url https://app.thinnest.ai/api/v1/voices \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/voices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/voices"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"items": [
{
"id": "3b7e2c10-5f4a-4d89-9c61-0a2e8b7d4f15",
"name": "Anjali",
"accent": "hi",
"tier": "standard",
"description": null
},
{
"id": "009ae8b5-4a03-492d-af1c-3055989ac734",
"name": "Anika",
"accent": "hi",
"tier": "premium",
"description": null
},
{
"id": "priya",
"name": "Priya",
"accent": "hi",
"tier": "premium",
"description": "Best female — Hindi, Telugu, Kannada, Tamil, Marathi, Gujarati, English."
},
{
"id": "spry-swallow-5564__rakesh",
"name": "Rakesh Khanna",
"accent": "hi",
"tier": "studio",
"description": "Customer support"
},
{
"id": "c4a19e72-0b3d-4f58-a6e1-9d2c7b5f8a03",
"name": "Dr Mehta (clinic)",
"accent": "en-IN",
"tier": "studio",
"description": "Warm, unhurried",
"mine": true
},
{
"id": "7e2b5c90-4d1a-4f63-8b7e-2c9a0d6f1e48",
"name": "Brand voice (from your developer)",
"accent": "en-IN",
"tier": "studio",
"description": null,
"sharedFromDeveloper": true
}
]
}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. Refused with 404 (Workspace not found.) when the id is unknown, is not one of your customers, or is not an org_… id; 410 when that customer was deleted (restore it with POST /customers/{id}/restore until it is erased); 403 when the key belongs to one customer workspace (it cannot act as another); 400 when your workspace is not a developer workspace. /customers/* and GET /customers/usage are your own workspace's and refuse the header with 400: call them without it.
"org_3fKq9TzQ1mN8vB2xR7cLpA"
Response
The voices. Not paged.
Every voice, standard first, then premium, then Studio.
Show child attributes
Show child attributes