Create Assistant

Create a new AI voice assistant. The assistant is automatically synced to the voice engine on creation.

Endpoint

Request Body

name
string
required
Assistant name (max 255 characters)
description
string
Assistant description
model
object
LLM configuration
  • provider — AI provider (openai, groq, anthropic)
  • model — Model name (gpt-4o, llama-3, etc.)
  • temperature — Creativity (0-1)
  • max_tokens — Max response length
  • system_prompt — System instructions
voice
object
Voice (TTS) configuration
  • provider — Voice provider (11labs, spitch, playht)
  • voice_id — Specific voice ID
  • language — Voice language
transcriber
object
Transcriber (STT) configuration
  • provider — STT provider (deepgram, spitch)
  • model — Recognition model
  • language — Expected language
first_message
string
Opening greeting when the assistant picks up
first_message_mode
string
default:"assistant-speaks-first"
assistant-speaks-first or user-speaks-first
max_duration_seconds
number
default:"600"
Maximum call duration in seconds
credential_ids
array
Vapi credential UUIDs to use for provider authentication (e.g., your own OpenAI or ElevenLabs API key). Create credentials via the Server Credentials API.
server
object
Server webhook configuration
  • url — Callback URL for call events
  • timeout — Request timeout in seconds
  • secret — HMAC signing secret for payload verification

Example Request

Standard Provider (OpenAI LLM + ElevenLabs Voice + Deepgram STT)

Custom Provider (Spitch Voice + Spitch STT + BYO Credentials)

Custom African language providers (Spitch, Intron, Yarngpt) are auto-routed through the platform — just set the provider name. Use credential_ids to pass your own API keys for standard providers like OpenAI or ElevenLabs.

Custom LLM Endpoint

Use a custom OpenAI-compatible endpoint by passing inline credentials:

Response