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}Note
List Voice Providers
Retrieve voices with advanced filtering and pagination support.
Parameters
Filter by specific TTS provider ('eleven_labs', 'google', 'deepgram', 'cartesia', 'sarvam')
ElevenLabs OnlySearch term for voice name/description
ElevenLabs OnlyLanguage filter (e.g., 'en', 'es', 'fr')
ElevenLabs OnlyAccent filter (e.g., 'american', 'british')
ElevenLabs OnlyGender filter ('male' or 'female')
Page number for pagination (default: 1)
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)Note
ElevenLabs Support: When using provider='eleven_labs', you get access to 1000+ voices with advanced search and filtering by name/tags, language, accent, and gender.
Other Providers: Only support basic pagination (page, page_size).
Rate Limiting: ElevenLabs requests are rate limited to 10 per minute per user/IP. Other providers have no specific rate limiting.
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}Note
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}Note
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}Note
Get Voice Details
Get detailed information about a specific voice.
Parameters
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', ...}Note
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)