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

# Get Agent

> Retrieve config for an agent



## OpenAPI

````yaml https://api.threetone.in/openapi.json get /v1/convai/agents/{agent_id}
openapi: 3.1.0
info:
  title: Threetone API Documentation
  version: 1.0.0
servers:
  - url: https://api.threetone.in
    description: Production
security: []
paths:
  /v1/convai/agents/{agent_id}:
    get:
      tags:
        - Agents Platform
      summary: Get Agent
      description: Retrieve config for an agent
      operationId: get_agent_route
      parameters:
        - name: agent_id
          in: path
          required: true
          schema:
            type: string
            description: The id of an agent. This is returned on agent creation.
            examples:
              - agent_3701k3ttaq12ewp8b7qv5rfyszkz
            title: Agent Id
          description: The id of an agent. This is returned on agent creation.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAgentResponseModel'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    GetAgentResponseModel:
      properties:
        agent_id:
          type: string
          title: Agent Id
          description: The ID of the agent
        name:
          type: string
          title: Name
          description: The name of the agent
        conversation_config:
          $ref: '#/components/schemas/ConversationalConfigAPIModelOutput'
          description: The conversation configuration of the agent
        metadata:
          $ref: '#/components/schemas/AgentMetadataResponseModel'
          description: The metadata of the agent
        platform_settings:
          anyOf:
            - $ref: '#/components/schemas/AgentPlatformSettingsResponseModel'
            - type: 'null'
          description: The platform settings of the agent
        phone_numbers:
          items:
            $ref: '#/components/schemas/AgentPhoneNumberResponseModel'
          type: array
          title: Phone Numbers
          description: The phone numbers of the agent
        workflow:
          anyOf:
            - $ref: '#/components/schemas/AgentWorkflowResponseModel'
            - type: 'null'
          description: The workflow of the agent
        access_info:
          anyOf:
            - $ref: '#/components/schemas/ResourceAccessInfo'
            - type: 'null'
          description: Access information for the user
        tags:
          items:
            type: string
          type: array
          title: Tags
          description: Agent tags for categorization
      type: object
      required:
        - agent_id
        - name
        - conversation_config
        - metadata
      title: GetAgentResponseModel
      example:
        agent_id: agent_7101k5zvyjhmfg983brhmhkd98n6
        name: My Agent
        tags:
          - Customer Support
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ConversationalConfigAPIModelOutput:
      properties:
        asr:
          anyOf:
            - $ref: '#/components/schemas/ASRConversationalConfig'
            - type: 'null'
          description: Conversational transcription configuration
        turn:
          anyOf:
            - $ref: '#/components/schemas/TurnConfig'
            - type: 'null'
          description: Turn detection configuration
        tts:
          anyOf:
            - $ref: '#/components/schemas/TTSConversationalConfigOutput'
            - type: 'null'
          description: TTS configuration
        conversation:
          anyOf:
            - $ref: '#/components/schemas/ConversationConfigSettings'
            - type: 'null'
          description: Conversation settings
        language_presets:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/LanguagePresetOutput'
              type: object
            - type: 'null'
          title: Language Presets
          description: Language presets
        agent:
          anyOf:
            - $ref: '#/components/schemas/AgentConfigAPIModelOutput'
            - type: 'null'
          description: Agent configuration
      type: object
      title: ConversationalConfigAPIModel
    AgentMetadataResponseModel:
      properties:
        created_at_unix_secs:
          type: integer
          title: Created At Unix Secs
          description: The creation time of the agent in unix seconds
        updated_at_unix_secs:
          type: integer
          title: Updated At Unix Secs
          description: The last update time of the agent in unix seconds
      type: object
      required:
        - created_at_unix_secs
        - updated_at_unix_secs
      title: AgentMetadataResponseModel
    AgentPlatformSettingsResponseModel:
      properties:
        evaluation:
          anyOf:
            - $ref: '#/components/schemas/EvaluationSettings-Output'
            - type: 'null'
          description: Evaluation settings
        widget:
          anyOf:
            - $ref: '#/components/schemas/WidgetConfigInput-Output'
            - type: 'null'
          description: Widget configuration
        data_collection:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/LiteralJsonSchemaProperty'
              type: object
            - type: 'null'
          title: Data Collection
          description: Data collection settings
        data_collection_scopes:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/AnalysisScope'
              type: object
            - type: 'null'
          title: Data Collection Scopes
          description: >-
            Scope per data collection item ID. Missing keys default to
            conversation scope.
        overrides:
          anyOf:
            - $ref: >-
                #/components/schemas/ConversationInitiationClientDataConfigInput-Output
            - type: 'null'
          description: Override settings
        workspace_overrides:
          anyOf:
            - $ref: '#/components/schemas/AgentWorkspaceOverridesInput-Output'
            - type: 'null'
          description: Workspace overrides
        testing:
          anyOf:
            - $ref: '#/components/schemas/AgentTestingSettings'
            - type: 'null'
          description: Testing settings
        archived:
          type: boolean
          title: Archived
          description: Whether agent is archived
          default: false
        guardrails:
          anyOf:
            - $ref: '#/components/schemas/GuardrailsV1Input-Output'
            - type: 'null'
          description: Guardrails configuration
        summary_language:
          anyOf:
            - type: string
            - type: 'null'
          title: Summary Language
          description: >-
            Language for conversation analysis outputs when set at platform
            level.
        auth:
          anyOf:
            - $ref: '#/components/schemas/AuthSettings'
            - type: 'null'
          description: Auth settings
        call_limits:
          anyOf:
            - $ref: '#/components/schemas/AgentCallLimits'
            - type: 'null'
          description: Call limits
        privacy:
          anyOf:
            - $ref: '#/components/schemas/PrivacyConfig'
            - type: 'null'
          description: Privacy settings
      type: object
      title: AgentPlatformSettingsResponseModel
    AgentPhoneNumberResponseModel:
      properties:
        phone_number_id:
          type: string
          title: Phone Number Id
          description: The ID of the phone number
        name:
          type: string
          title: Name
          description: Label for the phone number
        phone_number:
          type: string
          title: Phone Number
          description: The phone number in E.164 format
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
          description: Country code
        purchased_at:
          anyOf:
            - type: integer
            - type: 'null'
          title: Purchased At
          description: Unix timestamp of purchase date
      type: object
      required:
        - phone_number_id
        - name
        - phone_number
      title: AgentPhoneNumberResponseModel
      description: Simple phone number info returned in agent detail responses.
    AgentWorkflowResponseModel:
      properties:
        prevent_subagent_loops:
          type: boolean
          title: Prevent Subagent Loops
          description: Prevent subagent loops
          default: false
      type: object
      title: AgentWorkflowResponseModel
    ResourceAccessInfo:
      properties:
        is_creator:
          type: boolean
          title: Is Creator
          description: Whether the user making the request is the creator of the resource
        creator_name:
          type: string
          title: Creator Name
          description: Name of the resource's creator
        creator_email:
          type: string
          title: Creator Email
          description: Email of the resource's creator
        role:
          $ref: '#/components/schemas/ResourceRole'
          description: The role of the user making the request
      type: object
      required:
        - is_creator
        - creator_name
        - creator_email
        - role
      title: ResourceAccessInfo
      description: Access information for a resource
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    ASRConversationalConfig:
      properties:
        quality:
          $ref: '#/components/schemas/ASRQuality'
          description: The quality of the transcription
          default: high
        provider:
          $ref: '#/components/schemas/ASRProvider'
          description: The provider of the transcription service
          default: elevenlabs
        user_input_audio_format:
          $ref: '#/components/schemas/ASRInputFormat'
          description: The format of the audio to be transcribed
          default: pcm_16000
        keywords:
          items:
            type: string
          type: array
          title: Keywords
          description: Keywords to boost prediction probability for
      type: object
      title: ASRConversationalConfig
      description: >-
        Conversational ASR defaults (kept minimal; runtime STT provider is
        internal).
    TurnConfig:
      properties:
        turn_timeout:
          type: number
          title: Turn Timeout
          description: Maximum wait time for the user's reply before re-engaging the user
          default: 7
        initial_wait_time:
          anyOf:
            - type: number
            - type: 'null'
          title: Initial Wait Time
          description: >-
            How long the agent will wait for the user to start the conversation
            if the first message is empty. If not set, uses the regular
            turn_timeout.
        silence_end_call_timeout:
          type: number
          title: Silence End Call Timeout
          description: >-
            Maximum wait time since the user last spoke before terminating the
            call. -1 disables.
          default: -1
        soft_timeout_config:
          anyOf:
            - $ref: '#/components/schemas/SoftTimeoutConfig'
            - type: 'null'
          description: Configuration for soft timeout during longer LLM responses.
        speculative_turn:
          type: boolean
          title: Speculative Turn
          description: >-
            When enabled, starts generating LLM responses during silence before
            full turn confidence is reached (preemptive generation). Reduces
            perceived latency; may increase LLM costs.
          default: false
      type: object
      title: TurnConfig
    TTSConversationalConfigOutput:
      properties:
        voice_id:
          type: string
          title: Voice Id
          description: The voice ID to use for TTS
        language:
          type: string
          title: Language
          description: Language for TTS
          default: en
        performance:
          $ref: '#/components/schemas/TTSPerformance'
          description: >-
            User-facing TTS performance tier. Never exposes the underlying
            provider/model.
          default: latency
        supported_voices:
          items:
            $ref: '#/components/schemas/SupportedVoice'
          type: array
          title: Supported Voices
          description: Additional supported voices
        output_format:
          anyOf:
            - $ref: '#/components/schemas/TTSOutputFormat'
            - type: 'null'
          description: Output format configuration
        generation_config:
          anyOf:
            - $ref: '#/components/schemas/TTSGenerationConfig'
            - type: 'null'
          description: Generation configuration
        enable_emotions:
          type: boolean
          title: Enable Emotions
          description: Enable emotion control for TTS
          default: false
      type: object
      required:
        - voice_id
      title: TTSConversationalConfig
    ConversationConfigSettings:
      properties:
        text_only:
          type: boolean
          title: Text Only
          description: >-
            If enabled audio will not be processed and only text will be used,
            use to avoid audio pricing.
          default: false
        max_duration_seconds:
          type: integer
          title: Max Duration Seconds
          description: The maximum duration of a conversation in seconds
          default: 600
        client_events:
          anyOf:
            - items:
                $ref: '#/components/schemas/ClientEvent'
              type: array
            - type: 'null'
          title: Client Events
          description: The events that will be sent to the client
        file_input:
          anyOf:
            - $ref: '#/components/schemas/FileInputConfig'
            - type: 'null'
          description: >-
            Configuration for file input (image/PDF uploads) during
            conversations.
        monitoring_enabled:
          type: boolean
          title: Monitoring Enabled
          description: Enable real-time monitoring of conversations via WebSocket
          default: false
        monitoring_events:
          anyOf:
            - items:
                $ref: '#/components/schemas/ClientEvent'
              type: array
            - type: 'null'
          title: Monitoring Events
          description: The events that will be sent to monitoring connections
      type: object
      title: ConversationConfig
      description: >-
        Conversation-level settings.


        Note: Some reference OpenAPI fields use vendor extensions such as
        ``x-convai-client-override``;

        those flags describe which fields a hosted client may override at
        conversation start.

        They are not validated by this API and are omitted from our schema.
    LanguagePresetOutput:
      properties:
        overrides:
          $ref: '#/components/schemas/ConversationConfigClientOverride-Output'
          description: The overrides for the language preset
        first_message_translation:
          anyOf:
            - $ref: '#/components/schemas/LanguagePresetTranslation'
            - type: 'null'
          description: Translation of the first message
        soft_timeout_translation:
          anyOf:
            - $ref: '#/components/schemas/LanguagePresetTranslation'
            - type: 'null'
          description: Translation of the soft timeout message
      type: object
      required:
        - overrides
      title: LanguagePreset
    AgentConfigAPIModelOutput:
      properties:
        first_message:
          type: string
          title: First Message
          description: >-
            If non-empty, the first message the agent will say. If empty, the
            agent waits for the user to start the discussion.
          default: ''
        language:
          type: string
          title: Language
          description: >-
            Primary ISO 639-1 language code for voice (e.g. en, hi, kn). Short
            codes aligned with STT (Cartesia Ink Whisper), not regional BCP-47
            (e.g. not hi-IN).
          default: en
        dynamic_variables:
          anyOf:
            - $ref: '#/components/schemas/DynamicVariablesConfig'
            - type: 'null'
          description: Configuration for dynamic variables
        disable_first_message_interruptions:
          type: boolean
          title: Disable First Message Interruptions
          description: >-
            If true, the user will not be able to interrupt the agent while the
            first message is being delivered.
          default: false
        max_conversation_duration_message:
          type: string
          title: Max Conversation Duration Message
          description: >-
            If non-empty, the message the agent will send when max conversation
            duration is reached.
          default: ''
        prompt:
          $ref: '#/components/schemas/PromptAgentAPIModelOutput'
          description: The prompt for the agent
      type: object
      required:
        - prompt
      title: AgentConfigAPIModel
    EvaluationSettings-Output:
      properties:
        criteria:
          items:
            $ref: '#/components/schemas/PromptEvaluationCriteria'
          type: array
          title: Criteria
          description: Individual criteria that the agent should be evaluated against
      type: object
      title: EvaluationSettings-Input
      description: Settings to evaluate an agent's performance (request/response shape).
    WidgetConfigInput-Output:
      properties:
        variant:
          $ref: '#/components/schemas/EmbedVariant'
          description: The variant of the widget
          default: full
        placement:
          $ref: '#/components/schemas/WidgetPlacement'
          description: The placement of the widget on the screen
          default: bottom-right
        expandable:
          $ref: '#/components/schemas/WidgetExpandable'
          description: Whether the widget is expandable
          default: never
        default_expanded:
          type: boolean
          title: Default Expanded
          description: Widget expanded by default
          default: false
        always_expanded:
          type: boolean
          title: Always Expanded
          description: Widget always expanded
          default: false
        dismissible:
          type: boolean
          title: Dismissible
          description: Whether the user can dismiss the widget
          default: false
        show_agent_status:
          type: boolean
          title: Show Agent Status
          description: Show agent working/done/error status during tool use
          default: false
        show_conversation_id:
          type: boolean
          title: Show Conversation Id
          description: Show conversation ID after disconnection
          default: true
        strip_audio_tags:
          type: boolean
          title: Strip Audio Tags
          description: Strip audio markup from assistant messages
          default: true
        syntax_highlight_theme:
          anyOf:
            - $ref: '#/components/schemas/SyntaxHighlightTheme'
            - type: 'null'
          description: Syntax highlighting theme for code blocks
        show_avatar_when_collapsed:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Show Avatar When Collapsed
          description: Show avatar when widget is collapsed
          default: false
        avatar:
          anyOf:
            - $ref: '#/components/schemas/OrbAvatar'
            - $ref: '#/components/schemas/URLAvatar'
            - $ref: '#/components/schemas/ImageAvatar'
            - type: 'null'
          title: Avatar
          description: The avatar of the widget
        custom_avatar_path:
          anyOf:
            - type: string
            - type: 'null'
          title: Custom Avatar Path
          description: Custom avatar path (set via POST /avatar)
        feedback_mode:
          $ref: '#/components/schemas/WidgetFeedbackMode'
          description: The feedback mode of the widget
          default: none
        end_feedback:
          anyOf:
            - $ref: '#/components/schemas/WidgetEndFeedbackConfig'
            - type: 'null'
          description: Configuration for feedback at end of conversation
        bg_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Bg Color
          description: Background color of the widget
        text_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Text Color
          description: Primary text color
        btn_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Btn Color
          description: Primary button color
        btn_text_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Btn Text Color
          description: Button label color
        border_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Border Color
          description: Border color
        focus_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Focus Color
          description: Focus ring / outline color
        border_radius:
          anyOf:
            - type: integer
            - type: 'null'
          title: Border Radius
          description: Widget border radius in pixels
        btn_radius:
          anyOf:
            - type: integer
            - type: 'null'
          title: Btn Radius
          description: Button border radius in pixels
        action_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Action Text
          description: Primary action label text
        start_call_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Call Text
          description: Start call label text
        end_call_text:
          anyOf:
            - type: string
            - type: 'null'
          title: End Call Text
          description: End call label text
        expand_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Expand Text
          description: Expand control label text
        listening_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Listening Text
          description: Listening state label text
        speaking_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Speaking Text
          description: Speaking state label text
        mic_muting_enabled:
          type: boolean
          title: Mic Muting Enabled
          description: Enable mic muting
          default: false
        transcript_enabled:
          type: boolean
          title: Transcript Enabled
          description: Show conversation transcript
          default: false
        text_input_enabled:
          type: boolean
          title: Text Input Enabled
          description: Enable text message input
          default: true
        conversation_mode_toggle_enabled:
          type: boolean
          title: Conversation Mode Toggle Enabled
          description: Enable conversation mode toggle
          default: false
        language_selector:
          type: boolean
          title: Language Selector
          description: Show language selector
          default: false
        supports_text_only:
          type: boolean
          title: Supports Text Only
          description: Support text-only mode
          default: true
        shareable_page_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Shareable Page Text
          description: Text for shareable page
        shareable_page_show_terms:
          type: boolean
          title: Shareable Page Show Terms
          description: Show terms on shareable page
          default: true
        terms_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Text
          description: Terms and conditions text (Markdown)
        terms_html:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Html
          description: Terms and conditions HTML (auto-generated from terms_text)
        terms_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Key
          description: LocalStorage key to remember acceptance
        markdown_link_allowed_hosts:
          items:
            $ref: '#/components/schemas/AllowlistItem'
          type: array
          title: Markdown Link Allowed Hosts
          description: Allowed hostnames for clickable markdown links
        markdown_link_include_www:
          type: boolean
          title: Markdown Link Include Www
          description: Include www. variants of allowed hosts
          default: true
        markdown_link_allow_http:
          type: boolean
          title: Markdown Link Allow Http
          description: Allow http:// URLs
          default: true
        disable_banner:
          type: boolean
          title: Disable Banner
          description: Whether to disable the banner
          default: false
        override_link:
          anyOf:
            - type: string
            - type: 'null'
          title: Override Link
          description: Override link for the widget
        text_contents:
          anyOf:
            - $ref: '#/components/schemas/WidgetTextContents'
            - type: 'null'
          description: All text contents shown in the widget
        styles:
          anyOf:
            - $ref: '#/components/schemas/WidgetStyles'
            - type: 'null'
          description: Semantic color and radius styles for the widget
        language_presets:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/WidgetLanguagePresetResponse'
              type: object
            - type: 'null'
          title: Language Presets
          description: Language presets for the widget
      type: object
      title: WidgetConfig-Input
    LiteralJsonSchemaProperty:
      properties:
        type:
          type: string
          enum:
            - boolean
            - string
            - integer
            - number
          title: Type
        description:
          type: string
          title: Description
          description: >-
            The description of the property. When set, the LLM will provide the
            value based on this description. Mutually exclusive with
            dynamic_variable, is_system_provided, and constant_value.
          default: ''
        enum:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Enum
          description: List of allowed string values for string type parameters
        is_system_provided:
          type: boolean
          title: Is System Provided
          description: >-
            If true, the value will be populated by the system at runtime. Used
            by API Integration Webhook tools for templating. Mutually exclusive
            with description, dynamic_variable, and constant_value.
          default: false
        dynamic_variable:
          type: string
          title: Dynamic Variable
          description: >-
            The name of the dynamic variable to use for this property's value.
            Mutually exclusive with description, is_system_provided, and
            constant_value.
          default: ''
        constant_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Constant Value
          description: >-
            A constant value to use for this property. Mutually exclusive with
            description, dynamic_variable, and is_system_provided.
      additionalProperties: false
      type: object
      required:
        - type
      title: LiteralJsonSchemaProperty
      example:
        description: A user-provided message
        type: string
    AnalysisScope:
      type: string
      enum:
        - conversation
        - agent
      title: AnalysisScope
      description: Transcript scope for evaluation criteria and data collection.
    ConversationInitiationClientDataConfigInput-Output:
      properties:
        conversation_config_override:
          anyOf:
            - $ref: >-
                #/components/schemas/ConversationConfigClientOverrideConfigInput-Output
            - type: 'null'
          description: Overrides for the conversation configuration
        custom_llm_extra_body:
          type: boolean
          title: Custom Llm Extra Body
          description: Whether to include custom LLM extra body
          default: false
        enable_conversation_initiation_client_data_from_webhook:
          type: boolean
          title: Enable Conversation Initiation Client Data From Webhook
          description: Whether to enable conversation initiation client data from webhooks
          default: false
      type: object
      title: ConversationInitiationClientDataConfig-Input
      example:
        custom_llm_extra_body: true
        enable_conversation_initiation_client_data_from_webhook: true
    AgentWorkspaceOverridesInput-Output:
      properties:
        conversation_initiation_client_data_webhook:
          anyOf:
            - $ref: '#/components/schemas/ConversationInitiationClientDataWebhook'
            - type: 'null'
          description: The webhook to send conversation initiation client data to
        webhooks:
          anyOf:
            - $ref: '#/components/schemas/ConvAIWebhooks'
            - type: 'null'
          description: Webhook configuration
      type: object
      title: AgentWorkspaceOverrides
    AgentTestingSettings:
      properties:
        attached_tests:
          items:
            $ref: '#/components/schemas/AttachedTestModel'
          type: array
          maxItems: 1000
          minItems: 0
          title: Attached Tests
          description: List of test IDs that should be run for this agent
      type: object
      title: AgentTestingSettings
      example:
        attached_tests:
          - test_id: test_123
            workflow_node_id: node_abc
          - test_id: test_456
    GuardrailsV1Input-Output:
      properties:
        version:
          type: string
          const: '1'
          title: Version
          default: '1'
        focus:
          anyOf:
            - $ref: '#/components/schemas/FocusGuardrail'
            - type: 'null'
        prompt_injection:
          anyOf:
            - $ref: '#/components/schemas/PromptInjectionGuardrail'
            - type: 'null'
        content:
          anyOf:
            - $ref: '#/components/schemas/ContentGuardrailInput-Output'
            - type: 'null'
        moderation:
          anyOf:
            - $ref: '#/components/schemas/ModerationGuardrailInput-Output'
            - type: 'null'
          x-fern-ignore: true
        custom:
          anyOf:
            - $ref: '#/components/schemas/CustomGuardrailInput-Output'
            - type: 'null'
      type: object
      title: GuardrailsV1
      discriminator:
        propertyName: version
        mapping:
          '1': '#/components/schemas/GuardrailsV1-Input'
    AuthSettings:
      properties:
        enable_auth:
          type: boolean
          title: Enable Auth
          description: >-
            If set to true, starting a conversation with an agent will require a
            signed token
          default: false
        allowlist:
          items:
            $ref: '#/components/schemas/AllowlistItem'
          type: array
          title: Allowlist
          description: >-
            A list of hosts that are allowed to start conversations with the
            agent
        require_origin_header:
          type: boolean
          title: Require Origin Header
          description: >-
            When enabled, connections with no origin header will be rejected. If
            the allowlist is empty, this option has no effect.
          default: false
        shareable_token:
          anyOf:
            - type: string
            - type: 'null'
          title: Shareable Token
          description: >-
            A shareable token that can be used to start a conversation with the
            agent
      type: object
      title: AuthSettings
      example:
        allowlist:
          - hostname: https://example.com
        enable_auth: true
        require_origin_header: true
        shareable_token: '1234567890'
    AgentCallLimits:
      properties:
        agent_concurrency_limit:
          type: integer
          title: Agent Concurrency Limit
          description: >-
            The maximum number of concurrent conversations. -1 indicates that
            there is no maximum
          default: -1
        daily_limit:
          type: integer
          title: Daily Limit
          description: The maximum number of conversations per day
          default: 100000
        bursting_enabled:
          type: boolean
          title: Bursting Enabled
          description: >-
            Whether to enable bursting. If true, exceeding workspace concurrency
            limit will be allowed up to 3 times the limit. Calls will be charged
            at double rate when exceeding the limit.
          default: true
      type: object
      title: AgentCallLimits
      example:
        agent_concurrency_limit: -1
        bursting_enabled: true
        daily_limit: 100000
    PrivacyConfig:
      properties:
        record_voice:
          type: boolean
          title: Record Voice
          description: Whether to record the conversation
          default: true
        retention_days:
          type: integer
          title: Retention Days
          description: >-
            The number of days to retain the conversation. -1 indicates there is
            no retention limit
          default: -1
        delete_transcript_and_pii:
          type: boolean
          title: Delete Transcript And Pii
          description: Whether to delete the transcript and PII
          default: false
        delete_audio:
          type: boolean
          title: Delete Audio
          description: Whether to delete the audio
          default: false
        apply_to_existing_conversations:
          type: boolean
          title: Apply To Existing Conversations
          description: Whether to apply the privacy settings to existing conversations
          default: false
        zero_retention_mode:
          type: boolean
          title: Zero Retention Mode
          description: Whether to enable zero retention mode - no PII data is stored
          default: false
        conversation_history_redaction:
          anyOf:
            - $ref: '#/components/schemas/ConversationHistoryRedactionConfig'
            - type: 'null'
          description: Config for PII redaction in the conversation history
      type: object
      title: PrivacyConfig
    ResourceRole:
      type: string
      enum:
        - admin
        - editor
        - commenter
        - viewer
      title: ResourceRole
      description: Role for resource access control
    ASRQuality:
      type: string
      enum:
        - high
      title: ASRQuality
    ASRProvider:
      type: string
      enum:
        - elevenlabs
        - scribe_realtime
      title: ASRProvider
    ASRInputFormat:
      type: string
      enum:
        - pcm_8000
        - pcm_16000
        - pcm_22050
        - pcm_24000
        - pcm_44100
        - pcm_48000
        - ulaw_8000
      title: ASRInputFormat
    SoftTimeoutConfig:
      properties:
        timeout_seconds:
          type: number
          title: Timeout Seconds
          description: >-
            Time in seconds before showing the predefined message while waiting
            for LLM response. Set to -1 to disable.
          default: -1
        message:
          type: string
          maxLength: 200
          minLength: 1
          title: Message
          description: >-
            Message to show when soft timeout is reached while waiting for LLM
            response
          default: Hhmmmm...yeah.
        use_llm_generated_message:
          type: boolean
          title: Use Llm Generated Message
          description: >-
            If enabled, the soft timeout message will be generated dynamically
            instead of using the static message.
          default: false
      type: object
      title: SoftTimeoutConfig
      description: Configuration for soft timeout while waiting for LLM responses.
    TTSPerformance:
      type: string
      enum:
        - latency
        - quality
      title: TTSPerformance
      description: |-
        User-facing TTS performance tier. Decouples the UI from vendor names.

        latency  -> optimized for response speed (currently Cartesia Sonic).
        quality  -> optimized for expressiveness (currently ElevenLabs v3).
    SupportedVoice:
      properties:
        label:
          type: string
          title: Label
          description: Human-readable label for the voice
        voice_id:
          type: string
          minLength: 1
          title: Voice Id
          description: The voice ID
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Optional voice description
        language:
          anyOf:
            - type: string
            - type: 'null'
          title: Language
          description: BCP-47 or agent language for the voice
        model_family:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Family
          description: Optional TTS model family hint when listing supported voices
        optimize_streaming_latency:
          anyOf:
            - $ref: '#/components/schemas/TTSStreamingLatencyLevel'
            - type: 'null'
          description: Optional latency optimization level for this voice
        stability:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Stability
          description: Optional default stability
        speed:
          anyOf:
            - type: number
              maximum: 1.2
              minimum: 0.7
            - type: 'null'
          title: Speed
          description: Optional default speed
        similarity_boost:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Similarity Boost
          description: Optional similarity boost
      type: object
      required:
        - label
        - voice_id
      title: SupportedVoice
    TTSOutputFormat:
      properties:
        container:
          type: string
          title: Container
          description: Output container format (raw, wav, mp3)
          default: raw
        encoding:
          $ref: '#/components/schemas/TTSOutputEncoding'
          description: Audio encoding format
          default: pcm_s16le
        sample_rate:
          $ref: '#/components/schemas/TTSSampleRate'
          description: Audio sample rate
          default: 24000
      type: object
      title: TTSOutputFormat
    TTSGenerationConfig:
      properties:
        volume:
          type: number
          maximum: 2
          minimum: 0.5
          title: Volume
          description: Volume adjustment (0.5x to 2.0x)
          default: 1
        speed:
          type: number
          maximum: 1.5
          minimum: 0.6
          title: Speed
          description: Speed adjustment (0.6x to 1.5x)
          default: 1
      type: object
      title: TTSGenerationConfig
    ClientEvent:
      type: string
      enum:
        - conversation_initiation_metadata
        - asr_initiation_metadata
        - ping
        - audio
        - interruption
        - user_transcript
        - tentative_user_transcript
        - agent_response
        - agent_response_correction
        - client_tool_call
        - mcp_tool_call
        - mcp_connection_status
        - agent_tool_request
        - agent_tool_response
        - agent_response_metadata
        - vad_score
        - agent_chat_response_part
        - client_error
        - guardrail_triggered
        - dtmf_request
        - internal_turn_probability
        - internal_tentative_agent_response
      title: ClientEvent
    FileInputConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: >-
            When enabled, users may attach images or PDFs when the LLM supports
            multimodal input.
          default: true
        max_files_per_conversation:
          type: integer
          maximum: 10
          minimum: 1
          title: Max Files Per Conversation
          description: Maximum number of files that can be uploaded per conversation.
          default: 10
      type: object
      title: FileInputConfig
    ConversationConfigClientOverride-Output:
      properties:
        turn:
          anyOf:
            - $ref: '#/components/schemas/TurnConfigOverride'
            - type: 'null'
          description: Configuration for turn detection
        tts:
          anyOf:
            - $ref: '#/components/schemas/TTSConversationalConfigOverride'
            - type: 'null'
          description: Configuration for conversational text to speech
        conversation:
          anyOf:
            - $ref: '#/components/schemas/ConversationConfigOverride'
            - type: 'null'
          description: Configuration for conversational events
        agent:
          anyOf:
            - $ref: '#/components/schemas/AgentConfigOverrideInput-Output'
            - type: 'null'
          description: Agent specific configuration
      type: object
      title: ConversationConfigClientOverride-Input
      description: >-
        Subset of conversation settings the client may override at conversation
        start.
    LanguagePresetTranslation:
      properties:
        source_hash:
          type: string
          title: Source Hash
          description: Hash of the source text
        text:
          type: string
          title: Text
          description: Translated text
      type: object
      required:
        - source_hash
        - text
      title: LanguagePresetTranslation
    DynamicVariablesConfig:
      properties:
        dynamic_variable_placeholders:
          additionalProperties:
            anyOf:
              - type: string
              - type: integer
              - type: number
              - type: boolean
          type: object
          title: Dynamic Variable Placeholders
          description: A dictionary of dynamic variable placeholders and their values
      type: object
      title: DynamicVariablesConfig
      description: >-
        Configuration for dynamic variables with placeholder values.


        Variable naming rules:

        - system__* prefix is RESERVED for platform-generated variables

        - secret__* prefix is allowed (filtered from LLM prompts, available for
        tool headers)

        - All other names are user-defined and available everywhere
      example:
        dynamic_variable_placeholders:
          user_name: John Doe
    PromptAgentAPIModelOutput:
      properties:
        prompt:
          type: string
          title: Prompt
          description: The prompt for the agent
          default: ''
        reasoning_effort:
          anyOf:
            - $ref: '#/components/schemas/LLMReasoningEffort'
            - type: 'null'
          description: Reasoning effort of the model. Only available for some models.
        thinking_budget:
          anyOf:
            - type: integer
            - type: 'null'
          title: Thinking Budget
          description: >-
            Max number of tokens used for thinking. Use 0 to turn off if
            supported by the model.
        temperature:
          type: number
          title: Temperature
          description: The temperature for the LLM
          default: 0
        max_tokens:
          type: integer
          title: Max Tokens
          description: If greater than 0, maximum number of tokens the LLM can predict
          default: -1
        tool_ids:
          items:
            type: string
          type: array
          title: Tool Ids
          description: A list of IDs of tools used by the agent
        built_in_tools:
          anyOf:
            - $ref: '#/components/schemas/BuiltInToolsOutput'
            - type: 'null'
          description: Built-in system tools to be used by the agent
        mcp_server_ids:
          items:
            type: string
          type: array
          maxItems: 10
          title: Mcp Server Ids
          description: A list of MCP server ids to be used by the agent
        native_mcp_server_ids:
          items:
            type: string
          type: array
          maxItems: 10
          title: Native Mcp Server Ids
          description: A list of Native MCP server ids to be used by the agent
        knowledge_base:
          items:
            $ref: '#/components/schemas/KnowledgeBaseLocator'
          type: array
          title: Knowledge Base
          description: A list of knowledge bases to be used by the agent
        custom_llm:
          anyOf:
            - $ref: '#/components/schemas/CustomLLM'
            - type: 'null'
          description: Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'
        ignore_default_personality:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Ignore Default Personality
          description: >-
            Whether to remove the default personality lines from the system
            prompt
          default: false
        rag:
          anyOf:
            - $ref: '#/components/schemas/RagConfig'
            - type: 'null'
          description: Configuration for RAG
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: >-
            Timezone for displaying current time in system prompt. If set, the
            current time will be included in the system prompt using this
            timezone. Must be a valid timezone name (e.g., 'America/New_York',
            'Europe/London', 'UTC').
        backup_llm_config:
          anyOf:
            - $ref: '#/components/schemas/BackupLLMDefault'
            - $ref: '#/components/schemas/BackupLLMDisabled'
            - $ref: '#/components/schemas/BackupLLMOverride'
            - type: 'null'
          title: Backup Llm Config
          description: >-
            Configuration for backup LLM cascading. Can be disabled, use system
            defaults, or specify custom order.
        cascade_timeout_seconds:
          type: number
          maximum: 15
          minimum: 2
          title: Cascade Timeout Seconds
          description: >-
            Time in seconds before cascading to backup LLM. Must be between 2
            and 15 seconds.
          default: 8
      type: object
      title: PromptAgentAPIModel
    PromptEvaluationCriteria:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the evaluation criteria
        name:
          type: string
          title: Name
        type:
          type: string
          const: prompt
          title: Type
          description: The type of evaluation criteria
          default: prompt
        conversation_goal_prompt:
          type: string
          maxLength: 2000
          title: Conversation Goal Prompt
          description: The prompt that the agent should use to evaluate the conversation
        use_knowledge_base:
          type: boolean
          title: Use Knowledge Base
          description: >-
            When evaluating the prompt, should the agent's knowledge base be
            used.
          default: false
        scope:
          $ref: '#/components/schemas/AnalysisScope'
          description: >-
            The scope of transcript context used when evaluating this criterion.
            'conversation' uses the full transcript; 'agent' uses only the
            portion where the defining agent was active.
          default: conversation
      type: object
      required:
        - id
        - name
        - conversation_goal_prompt
      title: PromptEvaluationCriteria
      description: >-
        An evaluation using the transcript and a prompt for a yes/no achieved
        answer.
      example:
        conversation_goal_prompt: >-
          You are a helpful assistant that can answer questions about the topic
          of the conversation.
        id: '1234567890'
        name: Customer satisfaction check
        scope: conversation
        type: prompt
        use_knowledge_base: false
    EmbedVariant:
      type: string
      enum:
        - tiny
        - compact
        - full
        - expandable
      title: EmbedVariant
    WidgetPlacement:
      type: string
      enum:
        - top-left
        - top
        - top-right
        - bottom-left
        - bottom
        - bottom-right
      title: WidgetPlacement
    WidgetExpandable:
      type: string
      enum:
        - never
        - mobile
        - desktop
        - always
      title: WidgetExpandable
    SyntaxHighlightTheme:
      type: string
      enum:
        - light
        - dark
      title: SyntaxHighlightTheme
    OrbAvatar:
      properties:
        type:
          type: string
          title: Type
          description: Avatar type
          default: orb
        color_1:
          type: string
          title: Color 1
          description: Primary orb color
          default: '#2792dc'
        color_2:
          type: string
          title: Color 2
          description: Secondary orb color
          default: '#9ce6e6'
      type: object
      title: OrbAvatar
    URLAvatar:
      properties:
        type:
          type: string
          title: Type
          description: Avatar type
          default: url
        custom_url:
          type: string
          title: Custom Url
          description: The custom URL of the avatar
          default: ''
      type: object
      title: URLAvatar
    ImageAvatar:
      properties:
        type:
          type: string
          title: Type
          description: Avatar type
          default: image
        url:
          type: string
          title: Url
          description: URL to the avatar image
          default: ''
      type: object
      title: ImageAvatar
    WidgetFeedbackMode:
      type: string
      enum:
        - none
        - during
        - end
      title: WidgetFeedbackMode
    WidgetEndFeedbackConfig:
      properties:
        type:
          $ref: '#/components/schemas/WidgetEndFeedbackType'
          description: The type of feedback to collect at the end of the conversation
          default: rating
      type: object
      title: WidgetEndFeedbackConfig
    AllowlistItem:
      properties:
        hostname:
          type: string
          title: Hostname
          description: The hostname of the allowed origin
      type: object
      required:
        - hostname
      title: AllowlistItem
    WidgetTextContents:
      properties:
        main_label:
          anyOf:
            - type: string
            - type: 'null'
          title: Main Label
          description: Call to action displayed inside the compact and full variants.
        start_call:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Call
          description: Text and ARIA label for the start call button.
        start_chat:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Chat
          description: Text and ARIA label for the start chat button (text only)
        new_call:
          anyOf:
            - type: string
            - type: 'null'
          title: New Call
          description: >-
            Text and ARIA label for the new call button. Displayed when the
            caller already finished at least one call.
        end_call:
          anyOf:
            - type: string
            - type: 'null'
          title: End Call
          description: Text and ARIA label for the end call button.
        mute_microphone:
          anyOf:
            - type: string
            - type: 'null'
          title: Mute Microphone
          description: ARIA label for the mute microphone button.
        change_language:
          anyOf:
            - type: string
            - type: 'null'
          title: Change Language
          description: ARIA label for the change language dropdown.
        collapse:
          anyOf:
            - type: string
            - type: 'null'
          title: Collapse
          description: ARIA label for the collapse button.
        expand:
          anyOf:
            - type: string
            - type: 'null'
          title: Expand
          description: ARIA label for the expand button.
        copied:
          anyOf:
            - type: string
            - type: 'null'
          title: Copied
          description: Text displayed when the user copies a value using the copy button.
        accept_terms:
          anyOf:
            - type: string
            - type: 'null'
          title: Accept Terms
          description: Text and ARIA label for the accept terms button.
        dismiss_terms:
          anyOf:
            - type: string
            - type: 'null'
          title: Dismiss Terms
          description: Text and ARIA label for the cancel terms button.
        listening_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Listening Status
          description: Status displayed when the agent is listening.
        speaking_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Speaking Status
          description: Status displayed when the agent is speaking.
        connecting_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Connecting Status
          description: Status displayed when the agent is connecting.
        chatting_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Chatting Status
          description: Status displayed when the agent is chatting (text only)
        input_label:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Label
          description: ARIA label for the text message input.
        input_placeholder:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Placeholder
          description: Placeholder text for the text message input.
        input_placeholder_text_only:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Placeholder Text Only
          description: Placeholder text for the text message input (text only)
        input_placeholder_new_conversation:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Placeholder New Conversation
          description: >-
            Placeholder text for the text message input when starting a new
            conversation (text only)
        user_ended_conversation:
          anyOf:
            - type: string
            - type: 'null'
          title: User Ended Conversation
          description: Information message displayed when the user ends the conversation.
        agent_ended_conversation:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Ended Conversation
          description: Information message displayed when the agent ends the conversation.
        conversation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Conversation Id
          description: Text label used next to the conversation ID.
        error_occurred:
          anyOf:
            - type: string
            - type: 'null'
          title: Error Occurred
          description: Text label used when an error occurs.
        copy_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Copy Id
          description: Text and ARIA label used for the copy ID button.
        initiate_feedback:
          anyOf:
            - type: string
            - type: 'null'
          title: Initiate Feedback
          description: Text displayed to prompt the user for feedback.
        request_follow_up_feedback:
          anyOf:
            - type: string
            - type: 'null'
          title: Request Follow Up Feedback
          description: Text displayed to request additional feedback details.
        thanks_for_feedback:
          anyOf:
            - type: string
            - type: 'null'
          title: Thanks For Feedback
          description: Text displayed to thank the user for providing feedback.
        thanks_for_feedback_details:
          anyOf:
            - type: string
            - type: 'null'
          title: Thanks For Feedback Details
          description: Additional text displayed explaining the value of user feedback.
        follow_up_feedback_placeholder:
          anyOf:
            - type: string
            - type: 'null'
          title: Follow Up Feedback Placeholder
          description: Placeholder text for the follow-up feedback input field.
        submit:
          anyOf:
            - type: string
            - type: 'null'
          title: Submit
          description: Text and ARIA label for the submit button.
        go_back:
          anyOf:
            - type: string
            - type: 'null'
          title: Go Back
          description: Text and ARIA label for the go back button.
        send_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Send Message
          description: Text and ARIA label for the send message button.
        text_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Text Mode
          description: Text and ARIA label for the switch to text mode button.
        voice_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Voice Mode
          description: Text and ARIA label for the switch to voice mode button.
        switched_to_text_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Switched To Text Mode
          description: Toast notification displayed when switching to text mode.
        switched_to_voice_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Switched To Voice Mode
          description: Toast notification displayed when switching to voice mode.
        copy:
          anyOf:
            - type: string
            - type: 'null'
          title: Copy
          description: Text and ARIA label for the copy button.
        download:
          anyOf:
            - type: string
            - type: 'null'
          title: Download
          description: Text and ARIA label for the download button.
        wrap:
          anyOf:
            - type: string
            - type: 'null'
          title: Wrap
          description: Text and ARIA label for the wrap toggle button.
        agent_working:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Working
          description: Status text displayed when the agent is processing a tool call.
        agent_done:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Done
          description: >-
            Status text displayed when the agent finishes processing a tool
            call.
        agent_error:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Error
          description: >-
            Status text displayed when the agent encounters an error during a
            tool call.
      type: object
      title: WidgetTextContents
    WidgetStyles:
      properties:
        base:
          anyOf:
            - type: string
            - type: 'null'
          title: Base
          description: The base background color.
        base_hover:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Hover
          description: The color of the base background when hovered.
        base_active:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Active
          description: The color of the base background when active (clicked).
        base_border:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Border
          description: The color of the border against the base background.
        base_subtle:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Subtle
          description: The color of subtle text against the base background.
        base_primary:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Primary
          description: The color of primary text against the base background.
        base_error:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Error
          description: The color of error text against the base background.
        accent:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent
          description: The accent background color.
        accent_hover:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent Hover
          description: The color of the accent background when hovered.
        accent_active:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent Active
          description: The color of the accent background when active (clicked).
        accent_border:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent Border
          description: The color of the border against the accent background.
        accent_subtle:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent Subtle
          description: The color of subtle text against the accent background.
        accent_primary:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent Primary
          description: The color of primary text against the accent background.
        overlay_padding:
          anyOf:
            - type: number
            - type: 'null'
          title: Overlay Padding
          description: The padding around the edges of the viewport.
        button_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Button Radius
          description: The radius of the buttons.
        input_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Input Radius
          description: The radius of the input fields.
        bubble_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Bubble Radius
          description: The radius of the chat bubbles.
        sheet_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Sheet Radius
          description: The default radius of sheets.
        compact_sheet_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Compact Sheet Radius
          description: The radius of the sheet in compact mode.
        dropdown_sheet_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Dropdown Sheet Radius
          description: The radius of the dropdown sheet.
      type: object
      title: WidgetStyles
    WidgetLanguagePresetResponse:
      properties:
        first_message:
          anyOf:
            - type: string
            - type: 'null'
          title: First Message
          description: First message in this language
        text_contents:
          anyOf:
            - $ref: '#/components/schemas/WidgetTextContents'
            - type: 'null'
          description: The text contents for the selected language
        terms_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Text
          description: The text to display for terms and conditions in this language
        terms_html:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Html
          description: The HTML to display for terms and conditions in this language
        terms_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Key
          description: The key to display for terms and conditions in this language
        terms_translation:
          anyOf:
            - $ref: '#/components/schemas/WidgetTermsTranslation'
            - type: 'null'
          description: The translation cache for the terms in this language
      type: object
      title: WidgetLanguagePresetResponse
    ConversationConfigClientOverrideConfigInput-Output:
      properties:
        turn:
          anyOf:
            - $ref: '#/components/schemas/TurnConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
        tts:
          anyOf:
            - $ref: '#/components/schemas/TTSConversationalConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
        conversation:
          anyOf:
            - $ref: '#/components/schemas/ConversationConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
        agent:
          anyOf:
            - $ref: '#/components/schemas/AgentConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
      type: object
      title: ConversationConfigClientOverrideConfig-Input
    ConversationInitiationClientDataWebhook:
      properties:
        url:
          type: string
          title: Url
          description: The URL to send the webhook to
        request_headers:
          additionalProperties:
            anyOf:
              - type: string
              - $ref: '#/components/schemas/ConvAISecretLocator'
          type: object
          title: Request Headers
          description: The headers to send with the webhook request
      type: object
      required:
        - url
        - request_headers
      title: ConversationInitiationClientDataWebhook
      example:
        request_headers:
          Content-Type: application/json
        url: https://example.com/webhook
    ConvAIWebhooks:
      properties:
        post_call_webhook_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Post Call Webhook Id
        events:
          items:
            $ref: '#/components/schemas/WebhookEventType'
          type: array
          title: Events
          description: >-
            List of event types to send via webhook. Options: transcript, audio,
            call_initiation_failure.
        send_audio:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Send Audio
          description: >-
            DEPRECATED: Use 'events' field instead. Whether to send audio data
            with post-call webhooks for ConvAI conversations
          deprecated: true
      type: object
      title: ConvAIWebhooks
    AttachedTestModel:
      properties:
        test_id:
          type: string
          title: Test Id
        workflow_node_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Node Id
      type: object
      required:
        - test_id
      title: AttachedTestModel
    FocusGuardrail:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          default: false
      type: object
      title: FocusGuardrail
    PromptInjectionGuardrail:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          default: false
      type: object
      title: PromptInjectionGuardrail
    ContentGuardrailInput-Output:
      properties:
        execution_mode:
          $ref: '#/components/schemas/GuardrailExecutionMode'
          default: streaming
        config:
          anyOf:
            - $ref: '#/components/schemas/ContentConfig'
            - type: 'null'
        trigger_action:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/EndCallTriggerAction'
                - $ref: '#/components/schemas/RetryTriggerAction'
              discriminator:
                propertyName: type
                mapping:
                  end_call:
                    $ref: '#/components/schemas/EndCallTriggerAction'
                  retry:
                    $ref: '#/components/schemas/RetryTriggerAction'
            - type: 'null'
          title: Trigger Action
      type: object
      title: ContentGuardrail
    ModerationGuardrailInput-Output:
      properties:
        execution_mode:
          $ref: '#/components/schemas/GuardrailExecutionMode'
          default: streaming
        config:
          anyOf:
            - $ref: '#/components/schemas/ModerationConfig'
            - type: 'null'
      type: object
      title: ModerationGuardrail
    CustomGuardrailInput-Output:
      properties:
        config:
          anyOf:
            - $ref: '#/components/schemas/CustomGuardrailsConfigInput-Output'
            - type: 'null'
      type: object
      title: CustomGuardrail
    ConversationHistoryRedactionConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Whether conversation history redaction is enabled
          default: false
        entities:
          items:
            $ref: '#/components/schemas/ConfigEntityType'
          type: array
          title: Entities
          description: >-
            The entities to redact from the conversation transcript, audio and
            analysis. Use top-level types like 'name', 'email_address', or dot
            notation for specific subtypes like 'name.name_given'.
      type: object
      title: ConversationHistoryRedactionConfig
    TTSStreamingLatencyLevel:
      type: integer
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      title: TTSStreamingLatencyLevel
      description: ElevenLabs streaming latency optimization (0–4).
    TTSOutputEncoding:
      type: string
      enum:
        - pcm_f32le
        - pcm_s16le
        - pcm_mulaw
        - pcm_alaw
      title: TTSOutputEncoding
    TTSSampleRate:
      type: integer
      enum:
        - 8000
        - 16000
        - 22050
        - 24000
        - 44100
        - 48000
      title: TTSSampleRate
    TurnConfigOverride:
      properties:
        soft_timeout_config:
          anyOf:
            - $ref: '#/components/schemas/SoftTimeoutConfigOverride'
            - type: 'null'
          description: >-
            Configuration for soft timeout functionality. Provides immediate
            feedback during longer LLM responses.
      type: object
      title: TurnConfigOverride
    TTSConversationalConfigOverride:
      properties:
        voice_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Voice Id
          description: The voice ID to use for TTS
        stability:
          anyOf:
            - type: number
            - type: 'null'
          title: Stability
          description: The stability of generated speech
        speed:
          anyOf:
            - type: number
            - type: 'null'
          title: Speed
          description: The speed of generated speech
        similarity_boost:
          anyOf:
            - type: number
            - type: 'null'
          title: Similarity Boost
          description: The similarity boost for generated speech
      type: object
      title: TTSConversationalConfigOverride
    ConversationConfigOverride:
      properties:
        text_only:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Text Only
          description: >-
            If enabled audio will not be processed and only text will be used,
            use to avoid audio pricing.
      type: object
      title: ConversationConfigOverride
    AgentConfigOverrideInput-Output:
      properties:
        first_message:
          anyOf:
            - type: string
            - type: 'null'
          title: First Message
          description: >-
            If non-empty, the first message the agent will say. If empty, the
            agent waits for the user to start the discussion.
        language:
          anyOf:
            - type: string
            - type: 'null'
          title: Language
          description: >-
            Primary ISO 639-1 language code for voice (e.g. en, hi, kn). Short
            codes only, not regional BCP-47 (e.g. not hi-IN).
        max_conversation_duration_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Max Conversation Duration Message
          description: >-
            If non-empty, the message the agent will send when max conversation
            duration is reached.
        prompt:
          anyOf:
            - $ref: '#/components/schemas/PromptAgentAPIModelOverride-Output'
            - type: 'null'
          description: The prompt for the agent
      type: object
      title: AgentConfigOverride-Input
    LLMReasoningEffort:
      type: string
      enum:
        - none
        - minimal
        - low
        - medium
        - high
      title: LLMReasoningEffort
    BuiltInToolsOutput:
      properties:
        end_call:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The end call tool
        language_detection:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The language detection tool
        transfer_to_agent:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The transfer to agent tool
        transfer_to_number:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The transfer to number tool
        skip_turn:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The skip turn tool
        play_keypad_touch_tone:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The play DTMF tool
        voicemail_detection:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The voicemail detection tool
      type: object
      title: BuiltInTools
      description: Built-in system tools for an agent
    KnowledgeBaseLocator:
      properties:
        type:
          $ref: '#/components/schemas/KnowledgeBaseDocumentType'
          description: The type of the knowledge base
        name:
          type: string
          title: Name
          description: The name of the knowledge base
        id:
          type: string
          title: Id
          description: The ID of the knowledge base
        usage_mode:
          $ref: '#/components/schemas/DocumentUsageModeEnum'
          description: The usage mode of the knowledge base
          default: auto
      type: object
      required:
        - type
        - name
        - id
      title: KnowledgeBaseLocator
      description: >-
        Reference to a knowledge base document (locator for agent attachment).

        Used when attaching knowledge bases to an agent. Canonical definition
        lives here;

        do not duplicate in other domains.
      example:
        id: '123'
        name: My Knowledge Base
        type: file
        usage_mode: auto
    CustomLLM:
      properties:
        url:
          type: string
          title: Url
          description: The URL of the Chat Completions compatible endpoint
        model_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Id
          description: The model ID to be used if URL serves multiple models
        api_key:
          anyOf:
            - $ref: '#/components/schemas/ConvAISecretLocator'
            - $ref: '#/components/schemas/ConvAIEnvVarLocator'
            - type: 'null'
          title: Api Key
          description: >-
            The API key for authentication. Either a workspace secret reference
            {'secret_id': '...'} or an environment variable reference
            {'env_var_label': '...'}.
        request_headers:
          anyOf:
            - additionalProperties:
                anyOf:
                  - type: string
                  - $ref: '#/components/schemas/ConvAISecretLocator'
                  - $ref: '#/components/schemas/ConvAIDynamicVariable'
                  - $ref: '#/components/schemas/ConvAIEnvVarLocator'
              type: object
            - type: 'null'
          title: Request Headers
          description: Headers that should be included in the request
        api_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Api Version
          description: The API version to use for the request
        api_type:
          $ref: '#/components/schemas/CustomLLMAPIType'
          description: The API type to use (chat_completions or responses)
          default: chat_completions
      type: object
      required:
        - url
      title: CustomLLM
    RagConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Whether RAG is enabled
          default: false
        embedding_model:
          $ref: >-
            #/components/schemas/app__domains__agents__schemas__EmbeddingModelEnum
          description: The embedding model to use for RAG
          default: gemini-embedding-001
        max_vector_distance:
          type: number
          exclusiveMaximum: 1
          exclusiveMinimum: 0
          title: Max Vector Distance
          description: Maximum vector distance of retrieved chunks.
          default: 0.6
        max_documents_length:
          type: integer
          exclusiveMaximum: 10000000
          exclusiveMinimum: 0
          title: Max Documents Length
          description: Maximum total length of document chunks retrieved from RAG.
          default: 50000
        max_retrieved_rag_chunks_count:
          type: integer
          maximum: 20
          exclusiveMinimum: 0
          title: Max Retrieved Rag Chunks Count
          description: >-
            Maximum number of RAG document chunks to initially retrieve from the
            vector store. These are then further filtered by vector distance and
            total length.
          default: 20
        num_candidates:
          anyOf:
            - type: integer
              maximum: 10000
              exclusiveMinimum: 0
            - type: 'null'
          title: Num Candidates
          description: >-
            Number of candidates evaluated in ANN vector search. Higher number
            means better results, but higher latency. Minimum recommended value
            is 100. If disabled, the default value is used.
        query_rewrite_prompt_override:
          anyOf:
            - type: string
              maxLength: 1000
              minLength: 1
            - type: 'null'
          title: Query Rewrite Prompt Override
          description: >-
            Custom prompt for rewriting user queries before RAG retrieval. The
            conversation history will be automatically appended at the end. If
            not set, the default prompt will be used.
      type: object
      title: RagConfig
      example:
        embedding_model: gemini-embedding-001
        enabled: false
        max_documents_length: 50000
        max_retrieved_rag_chunks_count: 5
        max_vector_distance: 0.5
        num_candidates: 300
    BackupLLMDefault:
      properties:
        preference:
          type: string
          const: default
          title: Preference
          description: Use system defaults for backup LLM
          default: default
      type: object
      title: BackupLLMDefault
    BackupLLMDisabled:
      properties:
        preference:
          type: string
          const: disabled
          title: Preference
          description: Disable backup LLM cascading
          default: disabled
      type: object
      title: BackupLLMDisabled
    BackupLLMOverride:
      properties:
        preference:
          type: string
          const: override
          title: Preference
          description: Override with custom LLM order
          default: override
        order:
          items:
            $ref: '#/components/schemas/LLM'
          type: array
          title: Order
          description: Custom order of LLMs for fallback
      type: object
      required:
        - order
      title: BackupLLMOverride
    WidgetEndFeedbackType:
      type: string
      enum:
        - rating
      title: WidgetEndFeedbackType
    WidgetTermsTranslation:
      properties:
        source_hash:
          type: string
          title: Source Hash
          description: Hash of the source terms text
        text:
          type: string
          title: Text
          description: Translated terms text
      type: object
      required:
        - source_hash
        - text
      title: WidgetTermsTranslation
    TurnConfigOverrideConfig:
      properties:
        soft_timeout_config:
          anyOf:
            - $ref: '#/components/schemas/SoftTimeoutConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
      type: object
      title: TurnConfigOverrideConfig
    TTSConversationalConfigOverrideConfig:
      properties:
        voice_id:
          type: boolean
          title: Voice Id
          description: Whether to allow overriding the voice_id field.
          default: false
        stability:
          type: boolean
          title: Stability
          description: Whether to allow overriding the stability field.
          default: false
        speed:
          type: boolean
          title: Speed
          description: Whether to allow overriding the speed field.
          default: false
        similarity_boost:
          type: boolean
          title: Similarity Boost
          description: Whether to allow overriding the similarity_boost field.
          default: false
      type: object
      title: TTSConversationalConfigOverrideConfig
    ConversationConfigOverrideConfig:
      properties:
        text_only:
          type: boolean
          title: Text Only
          description: Whether to allow overriding the text_only field.
          default: false
      type: object
      title: ConversationConfigOverrideConfig
    AgentConfigOverrideConfig:
      properties:
        first_message:
          type: boolean
          title: First Message
          description: Whether to allow overriding the first_message field.
          default: false
        language:
          type: boolean
          title: Language
          description: Whether to allow overriding the language field.
          default: false
        max_conversation_duration_message:
          type: boolean
          title: Max Conversation Duration Message
          description: >-
            Whether to allow overriding the max_conversation_duration_message
            field.
          default: false
        prompt:
          anyOf:
            - $ref: '#/components/schemas/PromptAgentAPIModelOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
      type: object
      title: AgentConfigOverrideConfig
    ConvAISecretLocator:
      properties:
        secret_id:
          type: string
          title: Secret Id
      type: object
      required:
        - secret_id
      title: ConvAISecretLocator
      example:
        secret_id: sec_workspace_abc123
    WebhookEventType:
      type: string
      enum:
        - transcript
        - audio
        - call_initiation_failure
      title: WebhookEventType
    GuardrailExecutionMode:
      type: string
      enum:
        - streaming
        - blocking
      title: GuardrailExecutionMode
    ContentConfig:
      properties:
        sexual:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        violence:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        harassment:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        self_harm:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        profanity:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        religion_or_politics:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        medical_and_legal_information:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
      type: object
      title: ContentConfig
    EndCallTriggerAction:
      properties:
        type:
          type: string
          const: end_call
          title: Type
          default: end_call
      type: object
      title: EndCallTriggerAction
    RetryTriggerAction:
      properties:
        type:
          type: string
          const: retry
          title: Type
          default: retry
        feedback:
          type: string
          title: Feedback
          description: >-
            Custom feedback to inject into the agent when retrying after
            guardrail trigger.
          default: >-
            Your response was blocked by a guardrail that blocks content that
            matches this condition/category: '{{trigger_reason}}' During your
            next turn you must tell the user "I'm sorry but I can't answer that
            question, would you like to know something else?".
      type: object
      title: RetryTriggerAction
    ModerationConfig:
      properties:
        sexual:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        violence:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        violence_graphic:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        harassment:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        harassment_threatening:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        hate:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        hate_threatening:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        self_harm_instructions:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        self_harm:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        self_harm_intent:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        sexual_minors:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
      type: object
      title: ModerationConfig
    CustomGuardrailsConfigInput-Output:
      properties:
        configs:
          items:
            $ref: '#/components/schemas/CustomGuardrailConfig'
          type: array
          title: Configs
      type: object
      title: CustomGuardrailsConfig
    ConfigEntityType:
      type: string
      enum:
        - name
        - name.name_given
        - name.name_family
        - name.name_other
        - email_address
        - contact_number
        - dob
        - age
        - religious_belief
        - political_opinion
        - sexual_orientation
        - ethnicity_race
        - marital_status
        - occupation
        - physical_attribute
        - language
        - username
        - password
        - url
        - organization
        - financial_id
        - financial_id.payment_card
        - financial_id.payment_card.payment_card_number
        - financial_id.payment_card.payment_card_expiration_date
        - financial_id.payment_card.payment_card_cvv
        - financial_id.bank_account
        - financial_id.bank_account.bank_account_number
        - financial_id.bank_account.bank_routing_number
        - financial_id.bank_account.swift_bic_code
        - financial_id.financial_id_other
        - location
        - location.location_address
        - location.location_city
        - location.location_postal_code
        - location.location_coordinate
        - location.location_state
        - location.location_country
        - location.location_other
        - date
        - date_interval
        - unique_id
        - unique_id.government_issued_id
        - unique_id.account_number
        - unique_id.vehicle_id
        - unique_id.healthcare_number
        - unique_id.healthcare_number.medical_record_number
        - unique_id.healthcare_number.health_plan_beneficiary_number
        - unique_id.device_id
        - unique_id.unique_id_other
        - medical
        - medical.medical_condition
        - medical.medication
        - medical.medical_procedure
        - medical.medical_measurement
        - medical.medical_other
      title: ConfigEntityType
      description: >-
        Entity types for the API configuration.


        This enum contains all valid entity type configurations that users can
        specify:

        - Parent types (e.g., "name", "financial_id") that expand to all
        subtypes

        - Specific subtypes using dot notation (e.g., "name.name_given")

        - Standalone terminal types (e.g., "email_address")


        When converted for service use, parent types expand to all their
        terminal subtypes.
    SoftTimeoutConfigOverride:
      properties:
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: Message
          description: >-
            Message to show when soft timeout is reached while waiting for LLM
            response
      type: object
      title: SoftTimeoutConfigOverride
    PromptAgentAPIModelOverride-Output:
      properties:
        prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: Prompt
          description: The prompt for the agent
        llm:
          anyOf:
            - $ref: '#/components/schemas/LLM'
            - type: 'null'
          description: >-
            The LLM to query with the prompt and the chat history. If using data
            residency, the LLM must be supported in the data residency
            environment
        tool_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Tool Ids
          description: A list of IDs of tools used by the agent
        native_mcp_server_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Native Mcp Server Ids
          description: A list of Native MCP server ids to be used by the agent
        knowledge_base:
          anyOf:
            - items:
                $ref: '#/components/schemas/KnowledgeBaseLocator'
              type: array
            - type: 'null'
          title: Knowledge Base
          description: A list of knowledge bases to be used by the agent
      type: object
      title: PromptAgentAPIModelOverride-Input
    SystemToolConfigOutput:
      properties:
        type:
          type: string
          const: system
          title: Type
          description: The type of tool
          default: system
        name:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,64}$
          title: Name
        description:
          type: string
          title: Description
          description: >-
            Description of when the tool should be used and what it does. Leave
            empty to use the default description that's optimized for the
            specific tool type.
          default: ''
        response_timeout_secs:
          type: integer
          title: Response Timeout Secs
          description: The maximum time in seconds to wait for the tool call to complete.
          default: 20
        disable_interruptions:
          type: boolean
          title: Disable Interruptions
          description: >-
            If true, the user will not be able to interrupt the agent while this
            tool is running.
          default: false
        force_pre_tool_speech:
          type: boolean
          title: Force Pre Tool Speech
          description: If true, the agent will speak before the tool call.
          default: false
        assignments:
          items:
            $ref: '#/components/schemas/DynamicVariableAssignment'
          type: array
          title: Assignments
          description: >-
            Configuration for extracting values from tool responses and
            assigning them to dynamic variables
        tool_call_sound:
          anyOf:
            - $ref: '#/components/schemas/ToolCallSoundType'
            - type: 'null'
          description: >-
            Predefined tool call sound type to play during tool execution. If
            not specified, no tool call sound will be played.
        tool_call_sound_behavior:
          $ref: '#/components/schemas/ToolCallSoundBehavior'
          description: >-
            Determines when the tool call sound should play. 'auto' only plays
            when there's pre-tool speech, 'always' plays for every tool call.
          default: auto
        tool_error_handling_mode:
          $ref: '#/components/schemas/ToolErrorHandlingMode'
          description: >-
            Controls how tool errors are processed before being shared with the
            agent. 'auto' uses tool-type defaults; 'summarized' sends an LLM
            summary; 'passthrough' sends the raw error; 'hide' does not share
            errors with the agent.
          default: auto
        params:
          oneOf:
            - $ref: '#/components/schemas/EndCallToolConfig'
            - $ref: '#/components/schemas/LanguageDetectionToolConfig'
            - $ref: '#/components/schemas/SkipTurnToolConfig'
            - $ref: '#/components/schemas/TransferToAgentToolConfig'
            - $ref: '#/components/schemas/TransferToNumberToolConfigOutput'
            - $ref: '#/components/schemas/PlayDTMFToolConfig'
            - $ref: '#/components/schemas/VoicemailDetectionToolConfig'
          title: Params
          discriminator:
            propertyName: system_tool_type
            mapping:
              end_call:
                $ref: '#/components/schemas/EndCallToolConfig'
              language_detection:
                $ref: '#/components/schemas/LanguageDetectionToolConfig'
              play_keypad_touch_tone:
                $ref: '#/components/schemas/PlayDTMFToolConfig'
              skip_turn:
                $ref: '#/components/schemas/SkipTurnToolConfig'
              transfer_to_agent:
                $ref: '#/components/schemas/TransferToAgentToolConfig'
              transfer_to_number:
                $ref: '#/components/schemas/TransferToNumberToolConfigOutput'
              voicemail_detection:
                $ref: '#/components/schemas/VoicemailDetectionToolConfig'
      type: object
      required:
        - name
        - params
      title: SystemToolConfig
      description: >-
        A system tool is a tool that is used to call a system method in the
        server
    KnowledgeBaseDocumentType:
      type: string
      enum:
        - file
        - url
        - text
        - folder
      title: KnowledgeBaseDocumentType
      description: Type of knowledge base document
    DocumentUsageModeEnum:
      type: string
      enum:
        - prompt
        - auto
      title: DocumentUsageModeEnum
      description: |-
        How the document is used in agent context.
        - prompt: Always include full document in LLM context
        - auto: Use RAG to retrieve relevant chunks
    ConvAIEnvVarLocator:
      properties:
        env_var_label:
          type: string
          title: Env Var Label
          description: The environment variable label
      type: object
      required:
        - env_var_label
      title: ConvAIEnvVarLocator
      description: Used to reference an environment variable by label.
      example:
        env_var_label: MY_API_TOKEN
    ConvAIDynamicVariable:
      properties:
        variable_name:
          type: string
          title: Variable Name
          description: The variable name
      type: object
      required:
        - variable_name
      title: ConvAIDynamicVariable
      description: Used to reference a dynamic variable.
      example:
        variable_name: customer_id
    CustomLLMAPIType:
      type: string
      enum:
        - chat_completions
        - responses
      title: CustomLLMAPIType
    app__domains__agents__schemas__EmbeddingModelEnum:
      type: string
      enum:
        - gemini-embedding-001
      title: EmbeddingModelEnum
    LLM:
      type: string
      enum:
        - gpt-5-mini
        - gemini-2.5-flash
        - gemini-3-flash-preview
        - gpt-4o-mini
      title: LLM
    SoftTimeoutConfigOverrideConfig:
      properties:
        message:
          type: boolean
          title: Message
          description: Whether to allow overriding the message field.
          default: false
      type: object
      title: SoftTimeoutConfigOverrideConfig
    PromptAgentAPIModelOverrideConfig:
      properties:
        prompt:
          type: boolean
          title: Prompt
          description: Whether to allow overriding the prompt field.
          default: false
        llm:
          type: boolean
          title: Llm
          description: Whether to allow overriding the llm field.
          default: false
        tool_ids:
          type: boolean
          title: Tool Ids
          description: Whether to allow overriding the tool_ids field.
          default: false
        native_mcp_server_ids:
          type: boolean
          title: Native Mcp Server Ids
          description: Whether to allow overriding the native_mcp_server_ids field.
          default: false
        knowledge_base:
          type: boolean
          title: Knowledge Base
          description: Whether to allow overriding the knowledge_base field.
          default: false
      type: object
      title: PromptAgentAPIModelOverrideConfig
    ContentThresholdGuardrail:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          default: false
        threshold:
          anyOf:
            - type: number
            - type: string
              enum:
                - low
                - medium
                - high
          title: Threshold
          default: 0.3
      type: object
      title: ContentThresholdGuardrail
    ThresholdGuardrail:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          default: false
        threshold:
          type: number
          maximum: 1
          minimum: 0
          title: Threshold
          default: 0.3
      type: object
      title: ThresholdGuardrail
    CustomGuardrailConfig:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          default: false
        name:
          type: string
          maxLength: 500
          minLength: 1
          title: Name
          description: User-facing name for this guardrail
        prompt:
          type: string
          maxLength: 10000
          minLength: 1
          title: Prompt
          description: >-
            Instruction describing what to block, e.g. 'don't talk about
            politics'
        execution_mode:
          $ref: '#/components/schemas/GuardrailExecutionMode'
          default: streaming
        trigger_action:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/EndCallTriggerAction'
                - $ref: '#/components/schemas/RetryTriggerAction'
              discriminator:
                propertyName: type
                mapping:
                  end_call:
                    $ref: '#/components/schemas/EndCallTriggerAction'
                  retry:
                    $ref: '#/components/schemas/RetryTriggerAction'
            - type: 'null'
          title: Trigger Action
      type: object
      required:
        - name
        - prompt
      title: CustomGuardrailConfig
    DynamicVariableAssignment:
      properties:
        source:
          type: string
          const: response
          title: Source
          description: >-
            The source to extract the value from. Currently only 'response' is
            supported.
          default: response
        dynamic_variable:
          type: string
          title: Dynamic Variable
          description: The name of the dynamic variable to assign the extracted value to
        value_path:
          type: string
          title: Value Path
          description: >-
            Dot notation path to extract the value from the source (e.g.,
            'user.name' or 'data.0.id')
        sanitize:
          type: boolean
          title: Sanitize
          description: >-
            If true, this assignment's value will be removed from the tool
            response before sending to the LLM and transcript, but still
            processed for variable assignment.
          default: false
      type: object
      required:
        - dynamic_variable
        - value_path
      title: DynamicVariableAssignment
      description: >-
        Configuration for extracting values from tool responses and assigning
        them to dynamic variables.
      example:
        dynamic_variable: user_name
        sanitize: false
        source: response
        value_path: user.name
    ToolCallSoundType:
      type: string
      enum:
        - typing
        - elevator1
        - elevator2
        - elevator3
        - elevator4
      title: ToolCallSoundType
      description: Predefined sounds to play during tool execution
    ToolCallSoundBehavior:
      type: string
      enum:
        - auto
        - always
      title: ToolCallSoundBehavior
      description: 'Determines how the tool call sound should be played (default: auto).'
    ToolErrorHandlingMode:
      type: string
      enum:
        - auto
        - summarized
        - passthrough
        - hide
      title: ToolErrorHandlingMode
      description: >-
        Controls how tool errors are processed before being shared with the
        agent (default: auto).
    EndCallToolConfig:
      properties:
        system_tool_type:
          type: string
          const: end_call
          title: System Tool Type
          default: end_call
      type: object
      title: EndCallToolConfig
      description: Configuration for end_call system tool
    LanguageDetectionToolConfig:
      properties:
        system_tool_type:
          type: string
          const: language_detection
          title: System Tool Type
          default: language_detection
      type: object
      title: LanguageDetectionToolConfig
      description: Configuration for language_detection system tool
    SkipTurnToolConfig:
      properties:
        system_tool_type:
          type: string
          const: skip_turn
          title: System Tool Type
          default: skip_turn
      type: object
      title: SkipTurnToolConfig
      description: >-
        Allows the agent to explicitly skip its turn.


        This tool should be invoked by the LLM when the user indicates they
        would like

        to think or take a short pause before continuing the conversation.
    TransferToAgentToolConfig:
      properties:
        system_tool_type:
          type: string
          const: transfer_to_agent
          title: System Tool Type
          default: transfer_to_agent
        transfers:
          items:
            $ref: '#/components/schemas/AgentTransfer'
          type: array
          title: Transfers
      type: object
      required:
        - transfers
      title: TransferToAgentToolConfig
      description: Configuration for transfer_to_agent system tool
    TransferToNumberToolConfigOutput:
      properties:
        system_tool_type:
          type: string
          const: transfer_to_number
          title: System Tool Type
          default: transfer_to_number
        transfers:
          items:
            $ref: '#/components/schemas/PhoneNumberTransfer'
          type: array
          title: Transfers
        enable_client_message:
          type: boolean
          title: Enable Client Message
          description: >-
            Whether to play a message to the client while they wait for
            transfer. Defaults to true for backward compatibility.
          default: true
      type: object
      required:
        - transfers
      title: TransferToNumberToolConfig
      description: Configuration for transfer_to_number system tool (Output)
    PlayDTMFToolConfig:
      properties:
        system_tool_type:
          type: string
          const: play_keypad_touch_tone
          title: System Tool Type
          default: play_keypad_touch_tone
        use_out_of_band_dtmf:
          type: boolean
          title: Use Out Of Band Dtmf
          description: >-
            If true, send DTMF tones out-of-band using RFC 4733 (useful for SIP
            calls only). If false, send DTMF as in-band audio tones (works for
            all call types).
          default: true
        suppress_turn_after_dtmf:
          type: boolean
          title: Suppress Turn After Dtmf
          description: >-
            If true, the agent will not generate further speech after playing
            DTMF tones. This prevents the agent's speech from interfering with
            IVR systems.
          default: false
      type: object
      title: PlayDTMFToolConfig
      description: |-
        Allows the agent to play DTMF tones during a phone call.

        This tool can be used to interact with automated phone systems, such as
        navigating phone menus, entering extensions, or inputting numeric codes.
    VoicemailDetectionToolConfig:
      properties:
        system_tool_type:
          type: string
          const: voicemail_detection
          title: System Tool Type
          default: voicemail_detection
        voicemail_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Voicemail Message
          description: >-
            Optional message to leave on voicemail when detected. If not
            provided, the call will end immediately when voicemail is detected.
            Supports dynamic variables.
      type: object
      title: VoicemailDetectionToolConfig
      description: >-
        Allows the agent to detect when a voicemail system is encountered.


        This tool should be invoked by the LLM when it detects that the call has
        been

        answered by a voicemail system rather than a human.
    AgentTransfer:
      properties:
        agent_id:
          type: string
          title: Agent Id
        condition:
          type: string
          title: Condition
        delay_ms:
          type: integer
          title: Delay Ms
          default: 0
        transfer_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Transfer Message
        enable_transferred_agent_first_message:
          type: boolean
          title: Enable Transferred Agent First Message
          default: false
        is_workflow_node_transfer:
          type: boolean
          title: Is Workflow Node Transfer
          default: false
      type: object
      required:
        - agent_id
        - condition
      title: AgentTransfer
      description: Configuration for transferring to another agent
    PhoneNumberTransfer:
      properties:
        custom_sip_headers:
          items:
            oneOf:
              - $ref: '#/components/schemas/CustomSIPHeader'
              - $ref: '#/components/schemas/CustomSIPHeaderWithDynamicVariable'
            discriminator:
              propertyName: type
              mapping:
                dynamic:
                  $ref: '#/components/schemas/CustomSIPHeaderWithDynamicVariable'
                static:
                  $ref: '#/components/schemas/CustomSIPHeader'
          type: array
          maxItems: 20
          title: Custom Sip Headers
          description: >-
            Custom SIP headers to include when transferring the call. Each
            header can be either a static value or a dynamic variable reference.
        transfer_destination:
          anyOf:
            - $ref: '#/components/schemas/PhoneNumberTransferDestination'
            - $ref: '#/components/schemas/SIPUriTransferDestination'
            - $ref: >-
                #/components/schemas/PhoneNumberDynamicVariableTransferDestination
            - $ref: '#/components/schemas/SIPUriDynamicVariableTransferDestination'
            - type: 'null'
          title: Transfer Destination
        phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Phone Number
          description: >-
            Legacy root-level E.164. Prefer `transfer_destination` with type
            `phone`. Still accepted when loading older agent tool configs.
        condition:
          type: string
          title: Condition
        transfer_type:
          $ref: '#/components/schemas/TransferTypeEnum'
          default: conference
        post_dial_digits:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/PostDialDigitsStatic'
                - $ref: '#/components/schemas/PostDialDigitsDynamicVariable'
              discriminator:
                propertyName: type
                mapping:
                  dynamic:
                    $ref: '#/components/schemas/PostDialDigitsDynamicVariable'
                  static:
                    $ref: '#/components/schemas/PostDialDigitsStatic'
            - type: 'null'
          title: Post Dial Digits
          description: >-
            DTMF digits to send after call connects (e.g., 'ww1234' for
            extension). Can be either a static value or a dynamic variable
            reference. Use 'w' for 0.5s pause. Only supported for Twilio
            transfers.
      type: object
      required:
        - condition
      title: PhoneNumberTransfer
      description: >-
        Configuration for transferring to a phone number.


        Prefer `transfer_destination` (discriminated: phone, sip_uri, dynamic
        variants).

        `phone_number` is only for reading legacy stored rules; new configs
        should use `transfer_destination`.
    CustomSIPHeader:
      properties:
        type:
          type: string
          const: static
          title: Type
          description: Header type discriminator
          default: static
        key:
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$
          title: Key
          description: The SIP header name (e.g., 'X-Customer-ID')
        value:
          type: string
          maxLength: 512
          minLength: 1
          pattern: ^[\x09\x20-\x7E]+$
          title: Value
          description: The header value
      type: object
      required:
        - key
        - value
      title: CustomSIPHeader
      description: Custom SIP header for phone transfers with a static (validated) value.
    CustomSIPHeaderWithDynamicVariable:
      properties:
        type:
          type: string
          const: dynamic
          title: Type
          description: Header type discriminator
        key:
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$
          title: Key
          description: The SIP header name (e.g., 'X-Customer-ID')
        value:
          type: string
          minLength: 1
          title: Value
          description: The dynamic variable name to resolve
      type: object
      required:
        - type
        - key
        - value
      title: CustomSIPHeaderWithDynamicVariable
      description: >-
        Custom SIP header for phone transfers with a dynamic variable reference.


        The value is a variable name that will be resolved at runtime.

        Value is not validated here since it will be substituted with actual
        value later.
    PhoneNumberTransferDestination:
      properties:
        type:
          type: string
          const: phone
          title: Type
          default: phone
        phone_number:
          type: string
          title: Phone Number
      type: object
      required:
        - phone_number
      title: PhoneNumberTransferDestination
      description: Transfer to a static phone number
    SIPUriTransferDestination:
      properties:
        type:
          type: string
          const: sip_uri
          title: Type
          default: sip_uri
        sip_uri:
          type: string
          title: Sip Uri
      type: object
      required:
        - sip_uri
      title: SIPUriTransferDestination
      description: Transfer to a static SIP URI
    PhoneNumberDynamicVariableTransferDestination:
      properties:
        type:
          type: string
          const: phone_dynamic_variable
          title: Type
          default: phone_dynamic_variable
        phone_number:
          type: string
          title: Phone Number
      type: object
      required:
        - phone_number
      title: PhoneNumberDynamicVariableTransferDestination
      description: Transfer to a phone number from dynamic variable
    SIPUriDynamicVariableTransferDestination:
      properties:
        type:
          type: string
          const: sip_uri_dynamic_variable
          title: Type
          default: sip_uri_dynamic_variable
        sip_uri:
          type: string
          title: Sip Uri
      type: object
      required:
        - sip_uri
      title: SIPUriDynamicVariableTransferDestination
      description: Transfer to a SIP URI from dynamic variable
    TransferTypeEnum:
      type: string
      enum:
        - blind
        - conference
        - sip_refer
      title: TransferTypeEnum
      description: Transfer type for phone number transfers
    PostDialDigitsStatic:
      properties:
        type:
          type: string
          const: static
          title: Type
          default: static
        value:
          type: string
          minLength: 1
          pattern: ^[0-9*#wW]*$
          title: Value
          description: >-
            DTMF digits to send after call connects (e.g., 'ww1234' for
            extension)
      type: object
      required:
        - value
      title: PostDialDigitsStatic
      description: Literal DTMF digits sent after the transfer leg connects.
    PostDialDigitsDynamicVariable:
      properties:
        type:
          type: string
          const: dynamic
          title: Type
          default: dynamic
        value:
          type: string
          minLength: 1
          title: Value
          description: The dynamic variable name to resolve
      type: object
      required:
        - value
      title: PostDialDigitsDynamicVariable
      description: Post-dial digit string supplied by a dynamic variable at runtime.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: API key for programmatic access
      in: header
      name: x-api-key
    HTTPBearer:
      type: http
      description: JWT Bearer token for dashboard access
      scheme: bearer

````