Skip to content

Voices

List and manage available voices for speech synthesis.

List Voices

Endpoint

GET /v1/audio/voices

Authentication

Authorization: Bearer gw_prod_...

Query Parameters

ParameterTypeRequiredDescription
providerstringNoFilter by provider: openai, elevenlabs
languagestringNoFilter by language code (e.g., en, es)

Example

bash
curl https://api.gateflow.ai/v1/audio/voices \
  -H "Authorization: Bearer gw_prod_..."

Python

python
import requests

response = requests.get(
    "https://api.gateflow.ai/v1/audio/voices",
    headers={"Authorization": "Bearer gw_prod_..."}
)

voices = response.json()
for voice in voices["voices"]:
    print(f"{voice['id']}: {voice['name']} ({voice['provider']})")

Response

json
{
  "voices": [
    {
      "id": "alloy",
      "name": "Alloy",
      "provider": "openai",
      "gender": "neutral",
      "languages": ["en"],
      "preview_url": null,
      "gateflow_standard": "friendly"
    },
    {
      "id": "21m00Tcm4TlvDq8ikWAM",
      "name": "Rachel",
      "provider": "elevenlabs",
      "gender": "female",
      "languages": ["en", "es", "fr", "de", "it", "pt", "pl", "hi", "ar"],
      "preview_url": "https://api.elevenlabs.io/v1/voices/21m00Tcm4TlvDq8ikWAM/preview",
      "gateflow_standard": "friendly"
    }
  ],
  "standard_voices": [
    {
      "id": "professional",
      "description": "Clear, authoritative, confident",
      "mappings": {
        "openai": "onyx",
        "elevenlabs": "josh"
      }
    },
    {
      "id": "friendly",
      "description": "Warm, approachable, welcoming",
      "mappings": {
        "openai": "alloy",
        "elevenlabs": "rachel"
      }
    },
    {
      "id": "calm",
      "description": "Measured, relaxed, reassuring",
      "mappings": {
        "openai": "nova",
        "elevenlabs": "bella"
      }
    },
    {
      "id": "energetic",
      "description": "Enthusiastic, dynamic, engaging",
      "mappings": {
        "openai": "shimmer",
        "elevenlabs": "antoni"
      }
    },
    {
      "id": "serious",
      "description": "Deliberate, precise, professional",
      "mappings": {
        "openai": "fable",
        "elevenlabs": "adam"
      }
    },
    {
      "id": "casual",
      "description": "Natural, informal, easy-going",
      "mappings": {
        "openai": "echo",
        "elevenlabs": "domi"
      }
    }
  ]
}

Get Voice Details

Endpoint

GET /v1/audio/voices/{voice_id}

Example

bash
curl https://api.gateflow.ai/v1/audio/voices/21m00Tcm4TlvDq8ikWAM \
  -H "Authorization: Bearer gw_prod_..."

Response

json
{
  "id": "21m00Tcm4TlvDq8ikWAM",
  "name": "Rachel",
  "provider": "elevenlabs",
  "description": "A warm, friendly American female voice",
  "gender": "female",
  "age": "young_adult",
  "accent": "american",
  "languages": ["en", "es", "fr", "de", "it", "pt", "pl", "hi", "ar"],
  "use_cases": ["narration", "conversational", "customer_service"],
  "preview_url": "https://api.elevenlabs.io/v1/voices/21m00Tcm4TlvDq8ikWAM/preview",
  "settings": {
    "stability": 0.5,
    "similarity_boost": 0.75,
    "style": 0.0,
    "use_speaker_boost": true
  }
}

Custom Voice Mappings

Create custom voice mappings that work across providers.

Create Mapping

POST /v1/management/voice-mappings
bash
curl -X POST https://api.gateflow.ai/v1/management/voice-mappings \
  -H "Authorization: Bearer gw_prod_admin_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "customer-support",
    "description": "Voice for customer support interactions",
    "mappings": {
      "openai": "nova",
      "elevenlabs": "21m00Tcm4TlvDq8ikWAM"
    },
    "default_settings": {
      "stability": 0.6,
      "speed": 1.0
    }
  }'

Response

json
{
  "id": "voice_map_abc123",
  "name": "customer-support",
  "description": "Voice for customer support interactions",
  "mappings": {
    "openai": "nova",
    "elevenlabs": "21m00Tcm4TlvDq8ikWAM"
  },
  "created_at": "2026-02-16T10:00:00Z"
}

Use Custom Mapping

python
response = client.audio.speech.create(
    model="auto",
    input="How can I help you today?",
    voice="customer-support"  # Your custom mapping
)

List Custom Mappings

bash
curl https://api.gateflow.ai/v1/management/voice-mappings \
  -H "Authorization: Bearer gw_prod_..."

Delete Mapping

bash
curl -X DELETE https://api.gateflow.ai/v1/management/voice-mappings/voice_map_abc123 \
  -H "Authorization: Bearer gw_prod_admin_key"

Voice Preview

Get a preview audio sample for a voice.

Endpoint

GET /v1/audio/voices/{voice_id}/preview

Example

bash
curl https://api.gateflow.ai/v1/audio/voices/21m00Tcm4TlvDq8ikWAM/preview \
  -H "Authorization: Bearer gw_prod_..." \
  --output preview.mp3

Provider-Specific Voices

OpenAI Voices

VoiceGenderDescription
alloyNeutralBalanced, conversational
echoMaleCasual, relaxed
fableMaleBritish, narrative
onyxMaleDeep, authoritative
novaFemaleWarm, professional
shimmerFemaleExpressive, dynamic

ElevenLabs Voices

Voice IDNameGenderDescription
21m00Tcm4TlvDq8ikWAMRachelFemaleWarm, conversational
29vD33N1CtxCmqQRPOHJDrewMaleProfessional, clear
2EiwWnXFnvU5JabPnv8nClydeMaleDeep, narrative
5Q0t7uMcjvnagumLfvZiPaulMaleNews anchor style
AZnzlk1XvdvUeBnXmlldDomiFemaleYoung, energetic
CYw3kZ02Hs0563khs1FjDaveMaleBritish, conversational
D38z5RcWu1voky8WS1jaFinMaleIrish, friendly
EXAVITQu4vr4xnSDxMaLBellaFemaleSoft, soothing
ErXwobaYiN019PkySvjVAntoniMaleEnergetic, youthful
MF3mGyEYCl7XYWbV9V6OElliFemaleYoung, clear
TxGEqnHWrfWFTfGW9XjXJoshMaleDeep, professional

Errors

CodeDescription
400Invalid parameters
401Invalid API key
404Voice not found
429Rate limit exceeded

See Also

Built with reliability in mind.