Skip to content
Developers
API docs / Features

MAKEUGC PLATFORM API · DOCS V2

Voices & languages

Discover stock and custom voices, preview audio, and select a voice for video generation.

Workflow

  1. Filter voices by language and optionally gender.
  2. Listen to previewUrl and save the selected id.
  3. 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
curl --fail-with-body --max-time 120 -X GET "https://app.makeugc.ai/api/platform/video/voices" \
  -H "X-Api-Key: $MAKEUGC_API_KEY"
JavaScript
// 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);
Python
# 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

JSON response
{
  "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.