Skip to main content
TurnCall supports multiple providers for each stage of the voice pipeline. Configure them per-agent.

Provider Matrix

RoleProviders
STTdeepgram (default, streaming), openai, elevenlabs, cartesia (Ink, streaming)
LLMopenai (default), anthropic (Claude), ollama (local), custom_openai (any OpenAI-compatible), openrouter (multi-model + fallback routing, voice only)
TTSdeepgram (default), openai, elevenlabs, cartesia (Sonic-3, streaming, 60+ emotions)
S2Sopenai (Realtime API), google (Gemini Live)

STT Configuration

"stt": {"provider": "deepgram", "model": "nova-2", "language": "en"}

LLM Configuration

"llm": {"provider": "openai", "model": "gpt-4o-mini"}
OpenRouter routes through openrouter.ai with automatic failover — if the primary model rate-limits or errors mid-call, it falls over to the next model in fallback_models. Voice only (WebRTC / Twilio / WhatsApp voice); not supported on the SMS/Chat text path. The model that answered each turn is recorded on transcript.final events.

LLM Options

FieldRequiredDescription
providerYesopenai, anthropic, ollama, custom_openai, or openrouter
modelYesModel name
base_urlFor custom_openaiOpenAI-compatible API base URL
api_keyNoAPI key for custom_openai (masked in responses)
fallback_modelsFor openrouterOrdered list of fallback models (voice only)
temperatureNo0.0–2.0 (default: 0.7)
max_tokensNo1–128000 (default: 1024)

TTS Configuration

"tts": {"provider": "deepgram", "voice": "aura-2-helena-en"}

Required API Keys

ProviderEnvironment Variable
DeepgramDEEPGRAM_API_KEY
OpenAIOPENAI_API_KEY
AnthropicANTHROPIC_API_KEY
ElevenLabsELEVENLABS_API_KEY
CartesiaCARTESIA_API_KEY
Google (Gemini)GOOGLE_API_KEY
OpenRouterOPENROUTER_API_KEY
HeyGen (video avatar)HEYGEN_LIVE_AVATAR_API_KEY
Tavus (video avatar)TAVUS_API_KEY
Ollama requires no API key — just install it locally and run ollama pull <model>.