curl --location 'https://api.inworld.ai/voices/v1/voices/<voice-id>' \
--header "Authorization: Basic $INWORLD_API_KEY"import requests
voice_id = "<voice-id>"
url = f"https://api.inworld.ai/voices/v1/voices/{voice_id}"
headers = {
"Authorization": "Basic <api-key>"
}
response = requests.get(url, headers=headers)
print(response.json())const voiceId = '<voice-id>';
const url = `https://api.inworld.ai/voices/v1/voices/${voiceId}`;
const response = await fetch(url, {
headers: {
'Authorization': 'Basic <api-key>',
},
});
const data = await response.json();
console.log(data);{
"voiceId": "your_workspace_id__my_voice_clone_demo_20260218_223134z",
"langCode": "EN_US",
"displayName": "John",
"description": "Cloned voice for narrations.",
"tags": [
"demo",
"clone"
],
"name": "workspaces/your_workspace_id/voices/my_voice_clone_demo_20260218_223134z",
"source": "IVC"
}{
"code": 123,
"message": "<string>",
"details": [
{
"@type": "<string>"
}
]
}Get a specific voice
curl --location 'https://api.inworld.ai/voices/v1/voices/<voice-id>' \
--header "Authorization: Basic $INWORLD_API_KEY"import requests
voice_id = "<voice-id>"
url = f"https://api.inworld.ai/voices/v1/voices/{voice_id}"
headers = {
"Authorization": "Basic <api-key>"
}
response = requests.get(url, headers=headers)
print(response.json())const voiceId = '<voice-id>';
const url = `https://api.inworld.ai/voices/v1/voices/${voiceId}`;
const response = await fetch(url, {
headers: {
'Authorization': 'Basic <api-key>',
},
});
const data = await response.json();
console.log(data);{
"voiceId": "your_workspace_id__my_voice_clone_demo_20260218_223134z",
"langCode": "EN_US",
"displayName": "John",
"description": "Cloned voice for narrations.",
"tags": [
"demo",
"clone"
],
"name": "workspaces/your_workspace_id/voices/my_voice_clone_demo_20260218_223134z",
"source": "IVC"
}{
"code": 123,
"message": "<string>",
"details": [
{
"@type": "<string>"
}
]
}Authorizations
Your API key. Read permissions are required for GET endpoints. Write permissions are required for POST, PATCH, and DELETE endpoints.
For Basic authentication, please populate Basic $INWORLD_API_KEY. You can create a key in one command with the Inworld CLI: inworld workspace add-key.
Path Parameters
Voice ID of the voice to get.
[^/]+Response
A successful response.
Voice resource representing a voice configuration.
Voice ID. SYSTEM voices use a simple name (e.g. Alex); IVC voices are workspace-prefixed ({workspace}__{voice}).
Primary language of the voice in upper-snake format (e.g. EN_US). Note that when filtering via lang_code, you can pass BCP-47 (en-US), underscore form (en_US), or a language prefix (en) — but the response always returns upper-snake.
EN_US, ZH_CN, KO_KR, JA_JP, RU_RU, AUTO, IT_IT, ES_ES, PT_BR, DE_DE, FR_FR, AR_SA, PL_PL, NL_NL, HI_IN, HE_IL The human-readable name shown anywhere the voice is listed or selected.
Longer blurb that explains the voice's tone, accent, use cases, or other relevant attributes.
Free-form labels for filtering, grouping, and discovery (e.g. british, calm).
Resource name. Format: workspaces/{workspace}/voices/{voice}.
Origin of the voice:
SYSTEM: Built-in voice provided by Inworld, visible to all workspaces.IVC: Voice cloned from audio or created via Voice Design — owned by your workspace only.PVC: Professional Voice Clone.
SYSTEM, IVC, PVC Voice gender (male, female, neutral). Empty string if unspecified. Voices with no gender are excluded when filtering with an explicit gender = predicate.
male, female, neutral, Age group of the voice (young, middle_aged, elderly). Empty string if unspecified.
young, middle_aged, elderly, Use-case categories the voice belongs to. Filterable with the : (has) operator.
Supported values: companions, enterprise, education_training, developer_assistants, healthcare, interactive_media.
companions, enterprise, education_training, developer_assistants, healthcare, interactive_media Languages the voice can handle, in BCP-47 format (e.g. en-US). May differ from langCode for multilingual voices.
Was this page helpful?