> ## Documentation Index
> Fetch the complete documentation index at: https://docs.contactswing.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Voice AI Agent

> Create new voice AI assistants with comprehensive configuration including instructions, voice settings, agent behavior, and call handling.

### Authorizations

<ParamField header="Authorization" type="string" required>
  Enter your ContactSwing JWT Bearer token.
</ParamField>

### Request Body

<ParamField body="name" type="string" required>
  Assistant display name. Example: `"Insurance Darren"`
</ParamField>

<ParamField body="type" type="string" required>
  Assistant type. Example: `"VOICE_INCOMING"`
</ParamField>

<ParamField body="model" type="string" required>
  LLM model. Example: `"cw-llm-1"`
</ParamField>

### API Keys

<ParamField body="api_keys" type="array">
  API key configuration

  <ParamField body="api_key_id" type="number">
    API key ID
  </ParamField>

  <ParamField body="type" type="string">
    Key type: `MODEL | CALL | DEEPGRAM | VOICE`
  </ParamField>
</ParamField>

### Instructions

<ParamField body="instructions" type="string" required>
  Detailed agent instructions and behavior rules
</ParamField>

### Prompts

<ParamField body="prompts" type="object" required>
  Agent prompt configuration

  <ParamField body="agent" type="string">
    Agent system prompt
  </ParamField>

  <ParamField body="goal" type="string">
    Primary agent goal
  </ParamField>
</ParamField>

### Phone & Greetings

<ParamField body="phone_number" type="string">
  Assigned phone number. Example: `"+13465842882"`
</ParamField>

<ParamField body="incoming_call_greeting" type="string">
  Greeting played on incoming calls
</ParamField>

<ParamField body="outgoing_call_greeting" type="string">
  Greeting played on outgoing calls
</ParamField>

### Voice & Language

<ParamField body="synthesizer" type="string">
  Voice synthesizer. Example: `"AZURE"`
</ParamField>

<ParamField body="voice_id" type="string">
  Voice ID. Example: `"en-US-LunaNeural"`
</ParamField>

<ParamField body="language" type="string">
  Language. Example: `"english"`
</ParamField>

<ParamField body="enable_recordings" type="boolean">
  Enable call recordings
</ParamField>

### Behaviour Settings

<ParamField body="behaviour" type="object">
  Agent speaking behavior

  <ParamField body="speed" type="string">
    Speech speed. Example: `"medium"`
  </ParamField>

  <ParamField body="emotions" type="object">
    Emotional tone levels

    <ParamField body="anger" type="string" default="medium" />

    <ParamField body="curiosity" type="string" default="medium" />

    <ParamField body="positivity" type="string" default="medium" />

    <ParamField body="surprise" type="string" default="medium" />

    <ParamField body="sadness" type="string" default="medium" />
  </ParamField>
</ParamField>

### Knowledge Base

<ParamField body="kb_id" type="string">
  Knowledge base ID (nullable)
</ParamField>

### Additional Settings

<ParamField body="additional_settings" type="object">
  <ParamField body="Synthesizer" type="object">
    <ParamField body="Azure" type="object">
      <ParamField body="voice_name" type="string" />

      <ParamField body="rate" type="string" />

      <ParamField body="language_code" type="string" />
    </ParamField>

    <ParamField body="Cartesia" type="object">
      <ParamField body="speed" type="string" />

      <ParamField body="emotion" type="object" />
    </ParamField>

    <ParamField body="ElevenLabs" type="object">
      <ParamField body="stability" type="string" />

      <ParamField body="style_exaggeration" type="string" />

      <ParamField body="similarity" type="string" />

      <ParamField body="optimize_latency" type="string" />
    </ParamField>
  </ParamField>

  <ParamField body="Transcriber" type="object">
    <ParamField body="Deepgram" type="object">
      <ParamField body="language" type="string" />

      <ParamField body="keywords" type="string[]" />
    </ParamField>
  </ParamField>

  <ParamField body="Agent" type="object">
    <ParamField body="OpenAI" type="object">
      <ParamField body="temperature" type="number" />

      <ParamField body="max_tokens" type="number" />

      <ParamField body="backchannel_probability" type="number" />
    </ParamField>

    <ParamField body="model" type="string" />

    <ParamField body="temperature" type="number" />

    <ParamField body="max_tokens" type="number" />

    <ParamField body="allow_incoming_messages" type="boolean" />

    <ParamField body="time_zone" type="string" />

    <ParamField body="initial_message" type="string" />

    <ParamField body="initial_message_delay" type="number" />

    <ParamField body="interrupt_sensitivity" type="string" />

    <ParamField body="max_call_duration" type="number" />

    <ParamField body="end_conversation_on_goodbye" type="boolean" />

    <ParamField body="goodbye_phrases" type="string[]" />

    <ParamField body="reminder" type="object">
      <ParamField body="allowed_idle_time_seconds" type="number" />

      <ParamField body="num_check_human_present_times" type="number" />

      <ParamField body="reminder_messages" type="string[]" />

      <ParamField body="message_before_termination" type="string" />
    </ParamField>
  </ParamField>

  <ParamField body="SynthesizerUsed" type="string" />

  <ParamField body="TranscriberUsed" type="string" />

  <ParamField body="AgentUsed" type="string" />

  <ParamField body="save_transcripts" type="boolean" />

  <ParamField body="enable_voicemail_detection" type="boolean" />

  <ParamField body="voicemail_message" type="string" />

  <ParamField body="check_idle_time" type="boolean" />
</ParamField>

### Actions & Meta

<ParamField body="action_ids" type="string[]">
  Linked action IDs
</ParamField>

<ParamField body="response_time" type="number" />

<ParamField body="version" type="string">
  Example: `"v1"`
</ParamField>

### Response

**201 Created**

<ResponseField name="ctx_id" type="string">
  Request context ID
</ResponseField>

<ResponseField name="data" type="object">
  <ResponseField name="assistant_id" type="string">
    New assistant ID
  </ResponseField>

  <ResponseField name="name" type="string">
    Assistant name
  </ResponseField>
</ResponseField>

**400 Bad Request** – Invalid configuration\
**401 Unauthorized** – Invalid token
