Overview
Kupe supports the models and voices below. When configuring an agent viaPUT /api/v1/agents/{agent_id} (or after POST /api/v1/agents/simple), prefer agent_model_config.model_name, tts_config.tts_model_name, and transcriber_config.transcriber_model_name (legacy *_provider_id / provider_id still work). Values are catalog codes or row UUIDs — the server resolves to internal ids before saving.
Resolution order (server-side when creating or updating an agent):
- If the string is a UUID, look up by primary key
id. - Otherwise resolve by catalog fields (LLM
model_name, TTSmodel_name/provider_name/provider:model, STTmodel_nameorname). Ambiguous names prefer the row markedis_default, then a stable sort byid.
GET https://api.kupe.in/api/v1/providers/model, .../tts, .../stt with your x-api-key. This page mirrors the product catalog; drift is possible until you refresh from the API.
See also: Model providers (language codes + create-agent field notes), Voice Agent HTTP API, and the API reference tab (introduction).
LLM models
Voices (TTS)
Use these asvoice_name, set tts_config.tts_model_name to the TTS row id or a catalog match from GET /api/v1/providers/tts, and optionally tts_config.language (stored as voice_parameters.language).
Transcribers (STT)
Usetranscriber_config.transcriber_model_name as the STT row id or a matching model_name / name from GET /api/v1/providers/stt (legacy provider_id is the same value), plus transcriber_config.language. The API stores the pipeline STT model id from that catalog row — it is not a separate field on create. Prefer language as a string (e.g. hi-IN); a single-element array is coerced.

