OmniDim Logo

    Providers

    Access all available AI service providers including LLMs, voices, STT, and TTS services.

    Overview

    The Providers API provides real-time access to all available AI service providers and their current capabilities within the OmniDimension platform. It serves as the central registry for discovering and accessing:

    • 23+ Large Language Models from leading providers like OpenAI, Anthropic, and Google
    • 1000+ voices from ElevenLabs with advanced filtering and search capabilities
    • Speech-to-Text services from 5 providers including Whisper and Deepgram
    • Text-to-Speech services from 10 providers with multiple voice options
    • Detailed voice information including samples and metadata

    List LLM Providers

    Retrieve a list of all available Large Language Model providers.

    Example

    1 2 3 4 # List all LLM providers llms = client.providers.list_llms() print(llms) # Returns: {'llms': [...], 'total': 5}

    List Voice Providers

    Retrieve voices with advanced filtering and pagination support.

    Parameters

    provider
    string
    Optional

    Filter by specific TTS provider ('eleven_labs', 'google', 'deepgram', 'cartesia', 'sarvam')

    search
    string
    Optional

    ElevenLabs OnlySearch term for voice name/description

    language
    string
    Optional

    ElevenLabs OnlyLanguage filter (e.g., 'en', 'es', 'fr')

    accent
    string
    Optional

    ElevenLabs OnlyAccent filter (e.g., 'american', 'british')

    gender
    string
    Optional

    ElevenLabs OnlyGender filter ('male' or 'female')

    page
    int
    Optional

    Page number for pagination (default: 1)

    page_size
    int
    Optional

    Number of items per page (default: 30, max: 100)

    Example

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 # Basic usage - list all voices with default pagination voices = client.providers.list_voices() print(voices) # Returns: {'voices': [...], 'total': 123, 'page': 1, 'page_size': 30, 'filters_applied': False} # With pagination voices = client.providers.list_voices(page=2, page_size=50) print(voices) # Filter by specific provider (only supports basic pagination) voices = client.providers.list_voices(provider='eleven_labs', page=1, page_size=20) print(voices) # Advanced filtering (ElevenLabs only) voices = client.providers.list_voices( provider='eleven_labs', search='professional', language='en', accent='american', gender='male', page=1, page_size=15 ) print(voices) # Search by voice name/description voices = client.providers.list_voices( provider='eleven_labs', search='excited', gender='female' ) print(voices) # Filter by language voices = client.providers.list_voices( provider='eleven_labs', language='en' ) print(voices) # Filter by accent voices = client.providers.list_voices( provider='eleven_labs', accent='british' ) print(voices)

    List STT Providers

    Retrieve a list of all available Speech-to-Text providers.

    Example

    1 2 3 4 # List all STT providers stt_providers = client.providers.list_stt() print(stt_providers) # Returns: {'stt': [...], 'total': 3}

    List TTS Providers

    Retrieve a list of all available Text-to-Speech providers.

    Example

    1 2 3 4 # List all TTS providers tts_providers = client.providers.list_tts() print(tts_providers) # Returns: {'tts': [...], 'total': 4}

    List All Providers

    Retrieve all providers (services and voices) in a comprehensive response.

    Example

    1 2 3 4 # List all providers (comprehensive - services and voices) all_providers = client.providers.list_all() print(all_providers) # Returns: {'services': {...}, 'voices': {...}, 'total_services': 12, 'total_voices': 123}

    Get Voice Details

    Get detailed information about a specific voice.

    Parameters

    voice_id
    int
    Required

    ID of the voice to retrieve details for

    Example

    1 2 3 4 # Get detailed information about a specific voice voice_details = client.providers.get_voice(123) print(voice_details) # Returns: {'id': 123, 'name': 'Voice Name', 'provider': 'eleven_labs', ...}

    Response Formats

    Below are examples of the JSON responses returned by each endpoint. All responses include pagination metadata and follow consistent structure patterns.

    Service Providers

    Responses for LLM, STT, and TTS provider listings follow this structure:

    LLM Providers Response
    { "llms": [ { "id": 17, "name": "azure-gpt-4.1-mini", "is_premium": false, "service_type": "LLM", "is_active": true } ], "total": 23 }
    STT/TTS Providers Response
    { "stt": [ { "id": 5, "name": "Azure", "is_premium": false, "service_type": "STT", "is_active": true } ], "total": 5 }

    Voice Responses

    Voice listings include pagination and filtering metadata. ElevenLabs provides enhanced filtering capabilities:

    ElevenLabs Voices (with filtering)
    { "voices": [ { "id": null, "name": "ZauUyVXAz5znrgRuElJ5", "display_name": "Russell - Young and Excited", "service": "eleven_labs", "sample_url": "https://storage.googleapis.com/...", "tags": ["excited", "young", "american", "gender:male"] } ], "total": 1, "page": 1, "page_size": 20, "filters_applied": { "provider": "eleven_labs", "search": "excited" } }
    Other Providers Voices
    { "voices": [ { "id": 1, "name": "aura-luna-en", "display_name": "luna", "service": "deepgram", "sample_url": "https://res.cloudinary.com/deepgram/video/upload/v1709565351/aura/luna_docs_clom0e.wav", "tags": [ "feminine", "Young Adult", "en-us", "American", "Friendly, Natural, Engaging", "IVR" ] } ], "total": 1, "page": 1, "page_size": 1, "filters_applied": { "provider": null, "search": null, "language": null, "accent": null, "gender": null } }

    Comprehensive Response

    The "List All Providers" endpoint returns a complete overview of all services and voices:

    All Providers Response
    { "services": { "LLM": [...], "STT": [...], "TTS": [...] }, "voices": [...], "total_services": 38, "total_voices": 104 }

    Error Handling

    The API provides user-friendly error messages for common issues:

    from omnidimension.client import APIError
    
    try:
        voices = client.providers.list_voices(page=0)  # Invalid page
    except ValueError as e:
        print(f"Validation error: {e}")
    
    try:
        voices = client.providers.list_voices(provider='google', search='test')  # Unsupported filter
    except ValueError as e:
        print(f"Unsupported filter: {e}")
    
    try:
        voice = client.providers.get_voice(999999)  # Non-existent voice
    except ValueError as e:
        print(f"API error: {e}")
    Unsupported Parameters Error
    { "error": "Unsupported parameters for provider", "message": "Filtering parameters are not supported for provider \"deepgram\". Use provider \"eleven_labs\" for advanced filtering.", "provided_parameters": { "gender": "male" } }
    Validation Error
    { "error": "Invalid page parameter", "message": "Page must be a positive integer (1 or greater)", "provided_value": "-1" }
    Voice Not Found Error
    { "error": "Voice not found" }

    Available Providers Summary

    Service Providers

    • LLM: 23 providers (OpenAI, Anthropic, Google, Azure, etc.)
    • STT: 5 providers (Whisper, Deepgram, Cartesia, Sarvam, Azure)
    • TTS: 10 providers (Deepgram, Google, ElevenLabs, Cartesia, etc.)

    Voice Providers

    • ElevenLabs: 1000+ voices with advanced search & filtering
    • Deepgram, Google, Cartesia, Sarvam: Multiple voices (basic pagination)