> ## 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 Widget Config

> Retrieve the widget configuration for an agent



## OpenAPI

````yaml /api-reference/openapi.json get /v1/convai/agents/{agent_id}/widget
openapi: 3.1.0
info:
  title: Threetone API Documentation
  description: >-
    This is the documentation for the Threetone API. You can use this API to use
    our service programmatically with API keys sent in the x-api-key header. You
    can create and manage API keys in the dashboard at
    https://threetone.in/app/developers/api-keys.
  version: '1.0'
servers:
  - url: https://api.threetone.in
    description: Production
security: []
paths:
  /v1/convai/agents/{agent_id}/widget:
    get:
      tags:
        - Agents Platform
      summary: Get Agent Widget Config
      description: Retrieve the widget configuration for an agent
      operationId: get_agent_widget_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
            embed: true
            title: Agent Id
          description: The id of an agent. This is returned on agent creation.
        - name: conversation_signature
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              An expiring token that enables a websocket conversation to start.
              These can be generated for an agent using the
              /v1/convai/conversation/get_signed_url endpoint
            title: Conversation Signature
          description: >-
            An expiring token that enables a websocket conversation to start.
            These can be generated for an agent using the
            /v1/convai/conversation/get_signed_url endpoint
        - name: x-api-key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Your API key for programmatic access. Send it in the x-api-key
              header; you can create and manage keys from the Developers page.
            title: X-Api-Key
          description: >-
            Your API key for programmatic access. Send it in the x-api-key
            header; you can create and manage keys from the Developers page.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAgentEmbedResponseModel'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    GetAgentEmbedResponseModel:
      properties:
        agent_id:
          type: string
          title: Agent Id
        widget_config:
          $ref: '#/components/schemas/WidgetConfigResponseModel'
      type: object
      required:
        - agent_id
        - widget_config
      title: GetAgentEmbedResponseModel
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    WidgetConfigResponseModel:
      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
        avatar:
          anyOf:
            - $ref: '#/components/schemas/OrbAvatar'
            - $ref: '#/components/schemas/URLAvatar'
            - $ref: '#/components/schemas/ImageAvatar'
          title: Avatar
          description: The avatar of the widget
        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 collected at the end of the conversation
        bg_color:
          type: string
          title: Bg Color
          description: The background color of the widget
          default: '#ffffff'
        text_color:
          type: string
          title: Text Color
          description: The text color of the widget
          default: '#000000'
        btn_color:
          type: string
          title: Btn Color
          description: The button color of the widget
          default: '#000000'
        btn_text_color:
          type: string
          title: Btn Text Color
          description: The button text color of the widget
          default: '#ffffff'
        border_color:
          type: string
          title: Border Color
          description: The border color of the widget
          default: '#e1e1e1'
        focus_color:
          type: string
          title: Focus Color
          description: The focus color of the widget
          default: '#000000'
        border_radius:
          anyOf:
            - type: integer
            - type: 'null'
          title: Border Radius
          description: The border radius of the widget
        btn_radius:
          anyOf:
            - type: integer
            - type: 'null'
          title: Btn Radius
          description: The button radius of the widget
        action_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Action Text
          description: The action text of the widget
        start_call_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Call Text
          description: The start call text of the widget
        end_call_text:
          anyOf:
            - type: string
            - type: 'null'
          title: End Call Text
          description: The end call text of the widget
        expand_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Expand Text
          description: The expand text of the widget
        listening_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Listening Text
          description: The text to display when the agent is listening
        speaking_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Speaking Text
          description: The text to display when the agent is speaking
        shareable_page_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Shareable Page Text
          description: The text to display when sharing
        shareable_page_show_terms:
          type: boolean
          title: Shareable Page Show Terms
          description: Whether to show terms and conditions on the shareable page
          default: true
        terms_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Text
          description: The text to display for terms and conditions
        terms_html:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Html
          description: The HTML to display for terms and conditions
        terms_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Key
          description: The key to display for terms and conditions
        show_avatar_when_collapsed:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Show Avatar When Collapsed
          description: Whether to show the avatar when the widget is collapsed
          default: false
        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: The override link for the widget
        markdown_link_allowed_hosts:
          items:
            $ref: '#/components/schemas/AllowlistItem'
          type: array
          title: Markdown Link Allowed Hosts
          description: >-
            List of allowed hostnames for clickable markdown links. Use {
            hostname: '*' } to allow any domain. Empty means no links are
            allowed.
        markdown_link_include_www:
          type: boolean
          title: Markdown Link Include Www
          description: Whether to automatically include www. variants of allowed hosts
          default: true
        markdown_link_allow_http:
          type: boolean
          title: Markdown Link Allow Http
          description: Whether to allow http:// in addition to https:// for allowed hosts
          default: true
        mic_muting_enabled:
          type: boolean
          title: Mic Muting Enabled
          description: Whether to enable mic muting
          default: true
        transcript_enabled:
          type: boolean
          title: Transcript Enabled
          description: >-
            Whether the widget should show the conversation transcript as it
            goes on
          default: true
        text_input_enabled:
          type: boolean
          title: Text Input Enabled
          description: Whether the user should be able to send text messages
          default: true
        conversation_mode_toggle_enabled:
          type: boolean
          title: Conversation Mode Toggle Enabled
          description: Whether to enable the conversation mode toggle in the widget
          default: false
        default_expanded:
          type: boolean
          title: Default Expanded
          description: Whether the widget should be expanded by default
          default: false
        always_expanded:
          type: boolean
          title: Always Expanded
          description: Whether the widget should always be expanded
          default: false
        dismissible:
          type: boolean
          title: Dismissible
          description: Whether the widget can be dismissed by the user
          default: false
        show_agent_status:
          type: boolean
          title: Show Agent Status
          description: Whether to show agent working/done/error status during tool use
          default: false
        show_conversation_id:
          type: boolean
          title: Show Conversation Id
          description: Whether to show the conversation ID after disconnection.
          default: true
        strip_audio_tags:
          type: boolean
          title: Strip Audio Tags
          description: Whether to strip audio markup from messages.
          default: true
        syntax_highlight_theme:
          anyOf:
            - type: string
              enum:
                - light
                - dark
            - type: 'null'
          title: Syntax Highlight Theme
          description: >-
            Theme for code block syntax highlighting. Defaults to auto-detection
            by the widget when not set.
        text_contents:
          $ref: '#/components/schemas/WidgetTextContents'
          description: Text contents of the widget
        styles:
          $ref: '#/components/schemas/WidgetStyles'
          description: Styles for the widget
        show_resize_button:
          type: boolean
          title: Show Resize Button
          description: Whether to show the resize button
          default: true
        language:
          type: string
          title: Language
        supported_language_overrides:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Supported Language Overrides
        language_presets:
          additionalProperties:
            $ref: '#/components/schemas/WidgetLanguagePresetResponse'
          type: object
          title: Language Presets
          description: Language presets for the widget
        text_only:
          type: boolean
          title: Text Only
          description: Whether the agent uses text-only mode
          default: false
        supports_text_only:
          type: boolean
          title: Supports Text Only
          description: Whether the agent can be switched to text-only mode
          default: false
        first_message:
          anyOf:
            - type: string
            - type: 'null'
          title: First Message
        use_rtc:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Use Rtc
          description: Whether to use WebRTC for conversation connections
        file_input_config:
          $ref: '#/components/schemas/FileInputConfig'
          description: Configuration for file upload in the widget
      type: object
      required:
        - language
      title: WidgetConfigResponseModel
      example:
        file_input_config:
          enabled: false
          max_files_in_memory: 10
          max_files_per_conversation: 10
        first_message: Hello! How can I help you today?
        language: en
        language_presets: {}
        supported_language_overrides:
          - es
          - fr
        supports_text_only: true
        text_only: false
        use_rtc: false
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    EmbedVariant:
      type: string
      enum:
        - tiny
        - compact
        - full
        - expandable
      title: EmbedVariant
      default: full
    WidgetPlacement:
      type: string
      enum:
        - top-left
        - top
        - top-right
        - bottom-left
        - bottom
        - bottom-right
      title: WidgetPlacement
      default: bottom-right
    WidgetExpandable:
      type: string
      enum:
        - never
        - mobile
        - desktop
        - always
      title: WidgetExpandable
      default: never
    OrbAvatar:
      properties:
        type:
          type: string
          const: orb
          title: Type
          description: The type of the avatar
          default: orb
        color_1:
          type: string
          title: Color 1
          description: The first color of the avatar
          default: '#2792dc'
        color_2:
          type: string
          title: Color 2
          description: The second color of the avatar
          default: '#9ce6e6'
      type: object
      title: OrbAvatar
      example:
        color_1: '#2792dc'
        color_2: '#9ce6e6'
        type: orb
    URLAvatar:
      properties:
        type:
          type: string
          const: url
          title: Type
          description: The type of the avatar
          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
          const: image
          title: Type
          description: The type of the avatar
          default: image
        url:
          type: string
          title: Url
          description: The URL of the avatar
          default: ''
      type: object
      title: ImageAvatar
    WidgetFeedbackMode:
      type: string
      enum:
        - none
        - during
        - end
      title: WidgetFeedbackMode
      default: none
    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 in order ot start the next
            one.
        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.
        attach_file:
          anyOf:
            - type: string
            - type: 'null'
          title: Attach File
          description: Text and ARIA label for the attach file button.
        remove_file:
          anyOf:
            - type: string
            - type: 'null'
          title: Remove File
          description: ARIA label for the remove file button.
        file_upload_error:
          anyOf:
            - type: string
            - type: 'null'
          title: File Upload Error
          description: Error message displayed when a file fails to upload.
        file_type_unsupported:
          anyOf:
            - type: string
            - type: 'null'
          title: File Type Unsupported
          description: >-
            Error message displayed when an unsupported file type is selected.
            Followed by the list of accepted types.
        file_too_large:
          anyOf:
            - type: string
            - type: 'null'
          title: File Too Large
          description: Error message displayed when a file exceeds the maximum size limit.
        file_limit_reached:
          anyOf:
            - type: string
            - type: 'null'
          title: File Limit Reached
          description: >-
            Error message displayed when the maximum number of files for a
            conversation is reached.
        typing_indicator:
          anyOf:
            - type: string
            - type: 'null'
          title: Typing Indicator
          description: Status text displayed while the agent is typing.
      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
        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
      type: object
      title: WidgetLanguagePresetResponse
    FileInputConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: >-
            When enabled, users may attach images or PDFs in chat when the LLM
            supports multimodal input.
          default: true
        max_files_in_memory:
          type: integer
          maximum: 30
          minimum: 1
          title: Max Files In Memory
          description: >-
            Number of most-recent files kept in memory during a conversation.
            Older files are summarized and their bytes freed.
          default: 10
        max_files_per_conversation:
          type: integer
          title: Max Files Per Conversation
          description: >-
            Total files a user can upload in one conversation. Uploads are
            billed per file. Use -1 for no limit, or a value >=
            max_files_in_memory.
          default: 10
      type: object
      title: FileInputConfig
    WidgetEndFeedbackType:
      type: string
      enum:
        - rating
      title: WidgetEndFeedbackType
      default: rating

````