List text-to-speech voices

June 25, 2026

Table of contents

  1. Request Headers
  2. Query Parameters
  3. Responses
  4. Model
  5. Examples
  6. Try It

List the voices available for POST speech/create, filtered by model and language. Each POST speech/create request needs a voice_id from here — the paired provider_voice_id is derived from it automatically. The MiniMax catalog carries 300+ voices, ElevenLabs ~20.

The provider is derived from the model, so you only pass model (and optionally language).

https://api.useapi.net/v2/pixverse/speech/voices?…

Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
Query Parameters
  • email is optional when only one account configured. However, if you have multiple accounts configured, this parameter becomes required.

  • model is optional, default speech-2.8-hd. One of the models — the provider is derived from it. An unknown model is rejected with 400.

  • language is optional, default auto. An ISO language code (en, es, ja, …) to filter the catalog to voices recommended for that language.

Responses
  • 200 OK

    {
        "voices": [
            {
                "voice_id": "minimax_english_radiant_girl",
                "provider_voice_id": "English_radiant_girl",
                "display_name": "Radiant Girl",
                "provider": "minimax",
                "gender": "female",
                "age": "young",
                "accent": "",
                "style_tags": ["bright", "warm"],
                "recommended_languages": ["en"],
                "preview_url": "https://media.pixverse.ai/pixverse/audio/voice/preview/English_radiant_girl.mp3",
                "compatible_models": ["speech-2.8-hd", "speech-2.8-turbo"]
            }
        ],
        "pagination": { "total": 332, "has_more": false }
    }
    
  • 400 Bad Request

    Returned for an unknown model.

    {
        "error": "Invalid model '<model>'. Valid values: speech-2.8-hd,speech-2.8-turbo,eleven-multilingual-v2,eleven-v3,eleven-turbo-v2.5",
        "code": 400
    }
    
  • 401 Unauthorized

    {
      "error": "Unauthorized",
      "code": 401
    }
    
Model
{   // TypeScript, all fields are optional
  voices: {
    voice_id: string
    provider_voice_id: string
    display_name: string
    provider: string
    gender: string
    age: string
    accent: string
    style_tags: string[]
    recommended_languages: string[]
    preview_url: string
    compatible_models: string[]
  }[]
  pagination: {
    total: number
    has_more: boolean
  }
}
Examples
  • curl "https://api.useapi.net/v2/pixverse/speech/voices?model=speech-2.8-hd&language=en" \
       -H "Accept: application/json" \
       -H "Authorization: Bearer …"
    
  • const token = "API token";
    const apiUrl = `https://api.useapi.net/v2/pixverse/speech/voices?model=speech-2.8-hd&language=en`;
    const response = await fetch(apiUrl, {
      headers: {
        "Authorization": `Bearer ${token}`,
      },
    });
    const result = await response.json();
    console.log("response", {response, result});
    
  • import requests
    token = "API token"
    apiUrl = f"https://api.useapi.net/v2/pixverse/speech/voices?model=speech-2.8-hd&language=en"
    headers = {
        "Content-Type": "application/json",
        "Authorization" : f"Bearer {token}"
    }
    response = requests.get(apiUrl, headers=headers)
    print(response, response.json())
    
Try It