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

# Create Assistant

> Creates a new Assistant



## OpenAPI

````yaml POST /user/createAssistant
openapi: 3.0.1
info:
  title: QCall Ai API
  description: >-
    A sample API that uses a campaign store as an example to demonstrate
    features in the OpenAPI specification
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.qcall.ai/api/v1
security:
  - apiKeyAuth: []
paths:
  /user/createAssistant:
    post:
      description: Creates a new Assistant
      requestBody:
        description: Assistant to add
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewAssistant'
        required: true
      responses:
        '200':
          description: Assistant response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assistant'
        '400':
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    NewAssistant:
      allOf:
        - $ref: '#/components/schemas/Assistant'
        - type: object
    Assistant:
      required:
        - type
        - language
        - name
        - company_name
        - accent
        - goal
        - start_speech
        - voice_id
        - voice_name
        - script
        - maximum_time_per_call
        - is_voice_note
        - voice_note
        - ai_model_id
        - sentiment
        - voice_speed
        - is_filler
        - fillers
        - assistant_image
        - ai_modal
        - sensitivity
        - temperature
        - opt_out_script
        - is_wait_start_speech
        - utterance_length
        - meeting_note_prompt
        - call_outcome_prompt
      type: object
      properties:
        type:
          description: 'Type of assistant '
          type: string
          enum:
            - inbound
            - outbound
        language:
          description: >-
            Language of the assistant. Supported values: en (English), de
            (German), hi (Hindi), es (Spanish), fr (French), it (Italian), ar-kw
            (Arabic Kuwait), gu (Gujarati), bn (Bengali), te (Telugu India), kn
            (Kannada India), ta (Tamil India), mr (Marathi).
          type: string
          enum:
            - en
            - de
            - hi
            - es
            - fr
            - it
            - ar-kw
            - gu
            - bn
            - te
            - kn
            - ta
            - mr
        name:
          description: The name of the assistant
          type: string
        company_name:
          description: The name of the company
          type: string
        accent:
          description: The accent
          type: string
        actions:
          description: The actions
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - scheduleMeeting
                  - sendMessage
                description: 'Type of action: scheduleMeeting or sendMessage'
              meetingType:
                type: string
                enum:
                  - openBooking
                description: Type of meeting
              timezone:
                type: string
                description: Timezone for scheduling
              startDate:
                type: string
                description: Start date in YYYY-MM-DD format
              description:
                type: string
                description: Action description
              say:
                type: string
                description: What the assistant should say before executing the action
              length:
                type: integer
                description: Length of the meeting in minutes
              prompt:
                type: string
                description: Detailed instructions for meeting scheduling
              startTime:
                type: string
                description: Start time of booking window (e.g., 09:30 AM)
              endTime:
                type: string
                description: End time of booking window (e.g., 06:30 PM)
              bookingDays:
                type: string
                description: Comma-separated list of available booking days
              sms:
                type: object
                description: SMS configuration for sendMessage action
                properties:
                  is_sms:
                    type: boolean
                    description: Enable SMS messaging
                  description:
                    type: string
                    description: Condition text describing when to send the SMS
                  content:
                    type: string
                    description: SMS message content
                  end_call_sms:
                    type: boolean
                    description: Send SMS after the call ends
                  end_call_sms_not_answered:
                    type: boolean
                    description: Send SMS if call is not answered
              whatsapp:
                type: object
                description: >-
                  WhatsApp (Meta) configuration for sendMessage action (legacy,
                  replaced by Zeplo)
                properties:
                  is_whatsapp:
                    type: boolean
                    description: Enable WhatsApp messaging
                  description:
                    type: string
                    description: Condition text describing when to send the message
                  content:
                    type: object
                    description: WhatsApp template object
                  end_call_sms:
                    type: boolean
                    description: Send after call ends
                  end_call_sms_not_answered:
                    type: boolean
                    description: Send if call not answered
              zeplo:
                type: object
                description: Zeplo (WhatsApp) configuration for sendMessage action
                properties:
                  is_zeplo:
                    type: boolean
                    description: Enable Zeplo WhatsApp messaging
                  description:
                    type: string
                    description: >-
                      Condition text describing when to send the WhatsApp
                      message
                  content:
                    type: object
                    description: Zeplo template content and parameter configuration
                    properties:
                      templateName:
                        type: string
                        description: Name of the approved WhatsApp template in Zeplo
                      language:
                        type: string
                        description: Template language code (e.g. en_US)
                        default: en_US
                      category:
                        type: string
                        description: >-
                          Template category: MARKETING, UTILITY, or
                          AUTHENTICATION
                        enum:
                          - MARKETING
                          - UTILITY
                          - AUTHENTICATION
                      parameter_hints:
                        type: array
                        description: >-
                          Array of hint strings aligned 1-to-1 with
                          parameter_slots. Tells the AI what value to extract
                          for each placeholder.
                        items:
                          type: string
                      parameter_slots:
                        type: array
                        description: >-
                          Array of slot objects describing each placeholder's
                          position in the template
                        items:
                          type: object
                          properties:
                            section:
                              type: string
                              description: 'Template section: header, body, or button'
                              enum:
                                - header
                                - body
                                - button
                            index:
                              type: integer
                              description: >-
                                For header/body: the placeholder number
                                (1-based). For button: button position (0-based)
                            sub_index:
                              type: integer
                              description: >-
                                For button only: the placeholder number inside
                                the button URL (1-based)
                            label:
                              type: string
                              description: >-
                                Human-readable label (e.g. 'Body {{1}}' or
                                'Button 0 (Track Order) {{1}}')
                      components:
                        type: array
                        description: >-
                          Always empty array [] — built at send time from
                          parameter values
                        items: {}
                  end_call_sms:
                    type: boolean
                    description: Send Zeplo message after the call ends
                  end_call_sms_not_answered:
                    type: boolean
                    description: Send Zeplo message if call is not answered
            required:
              - type
        goal:
          description: The goal of the assistant
          type: string
        start_speech:
          description: Start speech of the assistant
          type: string
        voice_id:
          description: Voice Id will get where we choose Accent
          type: string
        voice_name:
          description: Voice name will get where we choose Accent
          type: string
        zapier_hook:
          description: For Zapier hook need to add link
          type: string
        script:
          description: Script of the assistant
          type: string
        knowledge_base_Id:
          description: Knowledge base
          type: string
        maximum_time_per_call:
          description: Maximum time per call in minutes
          type: number
        is_recording:
          description: Enable disable recording
          type: boolean
        is_voice_note:
          description: Enable disable voice note
          type: boolean
        voice_note:
          description: Voice note is required if ```is_voice_note``` are enabled.
          type: string
        ai_model_id:
          description: Need to pass default 1
          type: string
          enum:
            - '1'
        sentiment:
          type: object
          description: Sentiment classification prompts for analyzing conversations.
          properties:
            general_prompt:
              type: string
              description: General instruction for analyzing customer interactions.
            positive_prompt:
              type: string
              description: >-
                If the customer is happy with the service, classify it as
                positive.
            negative_prompt:
              type: string
              description: If the customer is complaining, classify it as negative.
            neutral_prompt:
              type: string
              description: >-
                If the conversation is just informational, classify it as
                neutral.
        is_back_sound:
          description: Background sound enable/disable
          type: boolean
          enum:
            - true
            - false
        voice_speed:
          description: Voice speed sound enable/disable
          type: number
          enum:
            - 1
            - 1.1
            - 1.2
            - 1.3
            - 1.4
            - 1.5
            - 1.6
            - 1.7
            - 1.8
            - 1.9
            - 2
        is_filler:
          description: Filler enable/disable
          type: boolean
          enum:
            - true
            - false
        fillers:
          description: Fillers
          type: array
          enum:
            - umm
            - uhh
        assistant_image:
          description: Assistant image url
          type: string
          enum:
            - >-
              https://precallai.s3.ap-south-1.amazonaws.com/assistant_profile/1.jpeg
            - >-
              https://precallai.s3.ap-south-1.amazonaws.com/assistant_profile/1.jpeg
            - >-
              https://precallai.s3.ap-south-1.amazonaws.com/assistant_profile/3.jpeg
            - >-
              https://precallai.s3.ap-south-1.amazonaws.com/assistant_profile/4.jpeg
            - >-
              https://precallai.s3.ap-south-1.amazonaws.com/assistant_profile/5.jpeg
        ai_modal:
          description: AI modal will get where we choose Accent
          type: string
        is_sensitivity:
          description: Sensitivity enable/disable
          type: boolean
          enum:
            - true
            - false
        sensitivity:
          description: Sensitivity
          type: number
          enum:
            - 600
            - 700
            - 800
            - 900
            - 1000
            - 1100
            - 1200
            - 1300
            - 1400
            - 1500
            - 1600
            - 1700
            - 1800
            - 1900
            - 2000
        temperature:
          description: Temperature
          type: number
          enum:
            - 0.7
            - 0.8
            - 0.9
            - 1
            - 1.1
            - 1.2
            - 1.3
            - 1.4
            - 1.5
            - 1.6
            - 1.7
            - 1.8
            - 1.9
            - 2
        is_opt_out:
          description: Opt out enable/disable
          type: boolean
          enum:
            - true
            - false
        opt_out_script:
          description: If ```is_opt_out``` is enable then add opt out prompts
          type: string
          enum:
            - >-
              If a user explicitly expresses that they no longer wish to receive
              calls, such as by saying 'Don't call me again,' 'I'm not
              interested,' or any similar phrase indicating that they want to
              opt out of future communications, please trigger the 'optOut'
              function and inform the user that they will no longer be contacted
              for calls.
        is_wait_start_speech:
          description: For assistant typle is ```outbound``` then you can enable or disable
          type: boolean
          enum:
            - true
            - false
        utterance_length:
          description: Utterance length
          type: number
          enum:
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
        meeting_note_prompt:
          description: Meeting note prompt
          type: string
        call_outcome_prompt:
          description: Call outcome prompt
          type: string
        generate_call_flow:
          description: Auto-generate call flow from the script
          type: boolean
        gender:
          description: 'Voice gender: male or female'
          type: string
          enum:
            - male
            - female
        is_start_speech_update:
          description: Whether the start speech has been updated from default
          type: boolean
        company_website:
          description: Company website URL
          type: string
        eleven_lab_modal:
          description: ElevenLabs model ID when using ElevenLabs voices
          type: string
        voice_data:
          description: >-
            Full voice object of the selected voice. Required when ai_modal is
            'qmodel'.
          type: object
          properties:
            voice_id:
              type: string
              description: Unique voice identifier
            name:
              type: string
              description: Display name of the voice
            category:
              type: string
              description: Voice category (e.g. professional, conversational)
            labels:
              type: object
              description: Voice metadata labels
              properties:
                language:
                  type: string
                  description: Language code (e.g. hi, en)
                language_name:
                  type: string
                  description: Language name (e.g. Hindi, English)
                gender:
                  type: string
                  description: Voice gender
                accent:
                  type: string
                  description: Voice accent (e.g. Indian, US)
            preview_url:
              type: string
              description: URL to preview audio sample of the voice
            reference_text:
              type: string
              description: Reference text used for the voice sample
            is_native:
              type: boolean
              description: Whether this is a native voice
            categories:
              type: array
              description: Usage categories for this voice
              items:
                type: string
            source:
              type: string
              description: Voice source (e.g. professional_cloning, community)
            id:
              type: string
              description: Voice ID (same as voice_id)
            displayname:
              type: string
              description: Display name of the voice
            ai_modal:
              type: string
              description: AI model associated with this voice
            language:
              type: string
              description: Language code
            language_name:
              type: string
              description: Language display name
            similarity:
              type: number
              description: Voice similarity score (0-100)
            stability:
              type: number
              description: Voice stability score (0-100)
        stability:
          description: >-
            Voice stability (0.0 to 1.0). Controls how consistent the voice
            sounds.
          type: number
        similarity:
          description: >-
            Voice similarity boost (0.0 to 1.0). Controls how closely the output
            matches the original voice.
          type: number
        style_exaggeration:
          description: >-
            Style exaggeration (0.0 to 1.0). Controls how expressive the voice
            is.
          type: number
        speaker_boost:
          description: Enable speaker boost for clearer voice output
          type: boolean
        safety_fallback_delay:
          description: Fallback delay in milliseconds when AI doesn't respond in time
          type: number
        enable_delay:
          description: Enable response delay for more natural conversation flow
          type: boolean
        is_call_flow:
          description: Whether a custom call flow is configured
          type: boolean
        call_flow:
          description: Custom call flow configuration object
          type: object
        background_type:
          description: Background sound type (e.g. office, cafe, street)
          type: string
        background_volume:
          description: Background sound volume level (1-10)
          type: number
        end_call_message:
          description: Message spoken by the assistant at the end of the call
          type: string
        wait_max_interval:
          description: >-
            Maximum wait interval in milliseconds before the assistant speaks
            again
          type: number
        set_transcription_start_time:
          description: Transcription start time offset in milliseconds
          type: number
        widget_config:
          description: Widget configuration for embedding the assistant on a website
          type: object
          properties:
            mode:
              type: string
              description: Widget display mode (e.g. floating, embedded)
              enum:
                - floating
                - embedded
            api_key:
              type: string
              description: API key for the widget
            enabled:
              type: boolean
              description: Enable or disable the widget
            uiStyle:
              type: string
              description: Widget UI style (e.g. default, minimal)
            position:
              type: string
              description: Widget position on the page (e.g. bottom-right, bottom-left)
            containerId:
              type: string
              description: DOM container ID where the widget renders
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: integer
          format: int32
        message:
          type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      name: x-api-key
      in: header

````