MAKEUGC PLATFORM API · DOCS V2
Voices & languages
Discover stock and custom voices, preview audio, and select a voice for video generation.
Workflow
- Filter voices by language and optionally gender.
- Listen to previewUrl and save the selected id.
- Pass that id as voice_id to a compatible generation endpoint.
Use id when calling Platform API endpoints. voiceId is the underlying voice identifier and is not interchangeable with id.
For cloning, voice design and standalone speech audio, use the Custom Voice & Text to Speech feature reference.
Example IDs and media URLs are placeholders. Replace them with values from your account and accessible media files.
List voices #
GET
/video/voices
Returns stock voices and the account’s custom voices. Availability and languages are defined by this live list.
Parameters
| Parameter | Description |
|---|---|
language
string · query
Optional
|
Case-insensitive language name, for example English. |
gender
string · query
Optional
|
Case-insensitive gender, for example Female. |
Request example
curl --fail-with-body --max-time 120 -X GET "https://app.makeugc.ai/api/platform/video/voices" \
-H "X-Api-Key: $MAKEUGC_API_KEY"
// Run on your server with Node.js 20+.
const apiKey = process.env.MAKEUGC_API_KEY;
if (!apiKey) throw new Error("Set MAKEUGC_API_KEY first");
const response = await fetch("https://app.makeugc.ai/api/platform/video/voices", {
method: "GET",
headers: {
"X-Api-Key": apiKey,
},
signal: AbortSignal.timeout(120000),
});
const text = await response.text();
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${text} (request ${response.headers.get("x-request-id")})`);
}
const result = JSON.parse(text);
console.log(result);
# Install the requests package before running.
import os
import requests
response = requests.get(
"https://app.makeugc.ai/api/platform/video/voices",
headers={"X-Api-Key": os.environ["MAKEUGC_API_KEY"]},
timeout=120,
)
if not response.ok:
raise RuntimeError(f"HTTP {response.status_code}: {response.text} "
f"(request {response.headers.get('x-request-id')})")
print(response.json())
200 response example
{
"status": true,
"message": "Voices fetched",
"data": [
{
"id": "voice_123",
"name": "Example voice",
"language": "English",
"gender": "Female",
"voiceId": "provider_voice_id",
"previewUrl": "https://your-cdn.example/preview.mp3",
"accent": "American",
"country": "United States",
"isCustom": false
}
]
}
All requests require X-Api-Key. See
errors & retries for unsuccessful
responses.