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

# Update agent version

> Update an existing agent version



## OpenAPI

````yaml patch /api/v1/agents/{agentId}/versions/{versionId}
openapi: 3.0.0
info:
  version: 1.0.0
  title: Feather AI API
servers:
  - url: https://prod.featherhq.com
    description: Production environment
security: []
paths:
  /api/v1/agents/{agentId}/versions/{versionId}:
    patch:
      tags:
        - Agents
      summary: Update agent version
      description: Update an existing agent version
      parameters:
        - schema:
            type: string
          required: true
          name: agentId
          in: path
        - schema:
            type: string
          required: true
          name: versionId
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  nullable: true
                  minLength: 1
                  maxLength: 100
                mode:
                  type: string
                  enum:
                    - FLOW
                    - PROMPT
                prompt:
                  type: object
                  nullable: true
                  properties:
                    system:
                      type: string
                    systemUIFormatting:
                      nullable: true
                    variables:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          required:
                            type: boolean
                            default: true
                          defaultValue:
                            type: string
                        required:
                          - name
                    tools:
                      type: array
                      items:
                        type: string
                    preBuiltTools:
                      type: array
                      items:
                        type: string
                  required:
                    - system
                promptPersonalityId:
                  type: string
                  nullable: true
                sttConfigId:
                  type: string
                  nullable: true
                ttsConfigId:
                  type: string
                  nullable: true
                llmConfigId:
                  type: string
                  nullable: true
                overrideSTTConfig:
                  type: object
                  nullable: true
                  properties:
                    keywords:
                      type: array
                      items:
                        type: object
                        properties:
                          keyword:
                            type: string
                          intensifier:
                            type: string
                            enum:
                              - HIGH_SUPPRESS
                              - SUPPRESS
                              - INTENSIFY
                              - HIGH_INTENSIFY
                            default: INTENSIFY
                        required:
                          - keyword
                  required:
                    - keywords
                overrideTTSConfig:
                  $ref: '#/components/schemas/OverrideTTSConfig'
                overrideLLMConfig:
                  type: object
                  nullable: true
                  additionalProperties:
                    nullable: true
                voiceId:
                  type: string
                  nullable: true
                postCallPrompt:
                  type: string
                  nullable: true
                knowledgeBaseCollectionIds:
                  type: array
                  items:
                    type: string
                voicemailMessage:
                  type: string
                  nullable: true
                voicemailDetectionMode:
                  type: string
                  enum:
                    - ASYNC
                    - SYNC
                speakFirst:
                  type: boolean
                firstMessage:
                  type: string
                  nullable: true
                useKnowledgeBase:
                  type: boolean
                enableBackgroundAudio:
                  type: boolean
                backgroundAudio:
                  type: number
                  minimum: 0
                  maximum: 100
                voiceVolume:
                  type: integer
                  minimum: 10
                  maximum: 120
                voiceSpeed:
                  type: number
                  minimum: 0.8
                  maximum: 1.2
                forwardingPhoneNumber:
                  type: string
                  nullable: true
                  pattern: ^\+1(\d{10}|\d{3}-\d{3}-\d{4})|^\+[1-9]\d{1,14}$
                postCallVariables:
                  type: array
                  nullable: true
                  items:
                    $ref: '#/components/schemas/PostCallVariable'
                preCallWebhook:
                  $ref: '#/components/schemas/PreCallWebhook'
                languageId:
                  type: string
                  format: uuid
                agentDelayBeforeFirstMessage:
                  type: integer
                  minimum: 0
                  maximum: 2500
                initialSilenceTimeout:
                  type: integer
                  minimum: 0
                  maximum: 60000
                finalSilenceTimeout:
                  type: integer
                  minimum: 0
                  maximum: 60000
                transferImmediatelyOnInbound:
                  type: boolean
                maxCallDuration:
                  type: integer
                  minimum: 300
                  maximum: 6000
                minInterruptionWords:
                  type: integer
                  minimum: 0
                minInterruptionDuration:
                  type: number
                  minimum: 0
                minEndpointingDelay:
                  type: number
                  minimum: 0
                maxEndpointingDelay:
                  type: number
                  minimum: 0
                vadActivationThreshold:
                  type: number
                  minimum: 0.1
                  maximum: 0.9
                inactivityTimeoutHours:
                  type: integer
                  nullable: true
                  minimum: 1
                smsMaxTokens:
                  type: integer
                  minimum: 100
                  maximum: 2000
                smsTemperature:
                  type: number
                  minimum: 0
                  maximum: 2
                discardInboundSms:
                  type: boolean
                webChatAggregationWindowSeconds:
                  type: integer
                  nullable: true
                  minimum: 1
                  maximum: 115
                emailDomainId:
                  type: string
                  nullable: true
                emailFromLocalPart:
                  type: string
                  nullable: true
                emailFromName:
                  type: string
                  nullable: true
                emailMaxTokens:
                  type: integer
                  nullable: true
                  minimum: 100
                  maximum: 10000
                emailTemperature:
                  type: number
                  nullable: true
                  minimum: 0
                  maximum: 2
                emailInactivityTimeoutHours:
                  type: integer
                  nullable: true
                  minimum: 1
                emailFilteringEnabled:
                  type: boolean
                emailResponseMode:
                  type: string
                  enum:
                    - AUTO_SEND
                    - SUGGEST_ONLY
                    - CONFIDENCE_BASED
                emailConfidenceThreshold:
                  type: number
                  minimum: 0
                  maximum: 1
                emailTags:
                  type: array
                  nullable: true
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      prompt:
                        type: string
                      autoClose:
                        type: boolean
                      gmailLabelId:
                        type: string
                      gmailLabelName:
                        type: string
                    required:
                      - name
                      - prompt
                      - autoClose
                sentimentAnalysis:
                  type: boolean
                warmTransferMessageMode:
                  type: string
                  nullable: true
                  enum:
                    - STATIC
                    - PROMPT
                warmTransferBriefingTemplate:
                  type: string
                  nullable: true
                warmTransferInteractive:
                  type: boolean
                warmTransferInstructions:
                  type: string
                  nullable: true
      responses:
        '200':
          description: Agent version updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  version:
                    type: object
                    properties:
                      id:
                        type: string
                      version:
                        type: number
                      name:
                        type: string
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                      mode:
                        type: string
                        enum:
                          - FLOW
                          - PROMPT
                      prompt:
                        type: object
                        nullable: true
                        properties:
                          system:
                            type: string
                          systemUIFormatting:
                            nullable: true
                          variables:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                required:
                                  type: boolean
                                  default: true
                                defaultValue:
                                  type: string
                              required:
                                - name
                          tools:
                            type: array
                            items:
                              type: string
                          preBuiltTools:
                            type: array
                            items:
                              type: string
                        required:
                          - system
                      promptPersonalityId:
                        type: string
                        nullable: true
                      sttConfigId:
                        type: string
                        nullable: true
                      ttsConfigId:
                        type: string
                        nullable: true
                      llmConfigId:
                        type: string
                        nullable: true
                      overrideSTTConfig:
                        type: object
                        nullable: true
                        properties:
                          keywords:
                            type: array
                            items:
                              type: object
                              properties:
                                keyword:
                                  type: string
                                intensifier:
                                  type: string
                                  enum:
                                    - HIGH_SUPPRESS
                                    - SUPPRESS
                                    - INTENSIFY
                                    - HIGH_INTENSIFY
                                  default: INTENSIFY
                              required:
                                - keyword
                        required:
                          - keywords
                      overrideTTSConfig:
                        $ref: '#/components/schemas/OverrideTTSConfig'
                      overrideLLMConfig:
                        type: object
                        nullable: true
                        additionalProperties:
                          nullable: true
                      voiceId:
                        type: string
                        nullable: true
                      postCallPrompt:
                        type: string
                        nullable: true
                      postCallVariables:
                        type: array
                        nullable: true
                        items:
                          $ref: '#/components/schemas/PostCallVariable'
                      knowledgeBaseCollectionIds:
                        type: array
                        nullable: true
                        items:
                          type: string
                      voicemailMessage:
                        type: string
                        nullable: true
                      voicemailDetectionMode:
                        type: string
                        enum:
                          - ASYNC
                          - SYNC
                        default: ASYNC
                      speakFirst:
                        type: boolean
                        default: false
                      firstMessage:
                        type: string
                        nullable: true
                      useKnowledgeBase:
                        type: boolean
                        default: true
                      enableBackgroundAudio:
                        type: boolean
                        default: false
                      backgroundAudio:
                        type: number
                        minimum: 0
                        exclusiveMinimum: true
                        maximum: 100
                        exclusiveMaximum: true
                        default: 50
                      voiceVolume:
                        type: integer
                        minimum: 10
                        maximum: 120
                        default: 100
                      forwardingPhoneNumber:
                        type: string
                        nullable: true
                        pattern: ^\+1(\d{10}|\d{3}-\d{3}-\d{4})|^\+[1-9]\d{1,14}$
                      warmTransferMessageMode:
                        type: string
                        nullable: true
                        enum:
                          - STATIC
                          - PROMPT
                      warmTransferBriefingTemplate:
                        type: string
                        nullable: true
                      warmTransferInteractive:
                        type: boolean
                        default: false
                      warmTransferInstructions:
                        type: string
                        nullable: true
                      voiceSpeed:
                        type: number
                        nullable: true
                        minimum: 0.8
                        maximum: 1.2
                        default: 1
                      agentDelayBeforeFirstMessage:
                        type: integer
                        minimum: 0
                        maximum: 2500
                        default: 500
                      initialSilenceTimeout:
                        type: integer
                        minimum: 0
                        maximum: 60000
                        default: 30000
                      finalSilenceTimeout:
                        type: integer
                        minimum: 0
                        maximum: 60000
                        default: 10000
                      maxCallDuration:
                        type: integer
                        minimum: 300
                        maximum: 6000
                        default: 900
                      minInterruptionWords:
                        type: integer
                        minimum: 0
                        default: 1
                      minInterruptionDuration:
                        type: number
                        minimum: 0
                        default: 1
                      minEndpointingDelay:
                        type: number
                        minimum: 0
                        default: 0.5
                      maxEndpointingDelay:
                        type: number
                        minimum: 0
                        default: 3
                      vadActivationThreshold:
                        type: number
                        minimum: 0.1
                        maximum: 0.9
                        default: 0.5
                      language:
                        type: object
                        properties:
                          languageId:
                            type: string
                          languageCode:
                            type: string
                            enum:
                              - EN
                              - EN_US
                              - EN_AU
                              - EN_GB
                              - EN_IN
                              - EN_NZ
                              - HI
                              - DE
                              - FR
                              - ES
                              - JA
                              - PT_BR
                          languageDisplayName:
                            type: string
                        required:
                          - languageId
                          - languageCode
                          - languageDisplayName
                      transferImmediatelyOnInbound:
                        type: boolean
                        default: false
                      inactivityTimeoutHours:
                        type: integer
                        nullable: true
                        minimum: 1
                      smsMaxTokens:
                        type: integer
                        nullable: true
                        minimum: 100
                        maximum: 2000
                      smsTemperature:
                        type: number
                        nullable: true
                        minimum: 0
                        maximum: 2
                      discardInboundSms:
                        type: boolean
                        default: false
                      webChatAggregationWindowSeconds:
                        type: integer
                        nullable: true
                        minimum: 1
                        maximum: 115
                      emailDomainId:
                        type: string
                        nullable: true
                      emailFromLocalPart:
                        type: string
                        nullable: true
                      emailFromName:
                        type: string
                        nullable: true
                      emailMaxTokens:
                        type: integer
                        nullable: true
                        minimum: 100
                        maximum: 10000
                      emailTemperature:
                        type: number
                        nullable: true
                        minimum: 0
                        maximum: 2
                      emailInactivityTimeoutHours:
                        type: integer
                        nullable: true
                        minimum: 1
                      emailFilteringEnabled:
                        type: boolean
                        default: false
                      emailResponseMode:
                        type: string
                        enum:
                          - AUTO_SEND
                          - SUGGEST_ONLY
                          - CONFIDENCE_BASED
                        default: AUTO_SEND
                      emailConfidenceThreshold:
                        type: number
                        minimum: 0
                        maximum: 1
                        default: 0.8
                      emailTags:
                        type: array
                        nullable: true
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            prompt:
                              type: string
                            autoClose:
                              type: boolean
                            gmailLabelId:
                              type: string
                            gmailLabelName:
                              type: string
                          required:
                            - name
                            - prompt
                            - autoClose
                      sentimentAnalysis:
                        type: boolean
                        default: false
                      preCallWebhook:
                        $ref: '#/components/schemas/PreCallWebhook'
                    required:
                      - id
                      - version
                      - name
                      - createdAt
                      - updatedAt
                      - mode
                      - promptPersonalityId
                      - sttConfigId
                      - ttsConfigId
                      - llmConfigId
                      - overrideSTTConfig
                      - overrideTTSConfig
                      - overrideLLMConfig
                      - voiceId
                      - postCallPrompt
                      - postCallVariables
                      - knowledgeBaseCollectionIds
                      - voicemailMessage
                      - firstMessage
                      - forwardingPhoneNumber
                      - warmTransferMessageMode
                      - warmTransferBriefingTemplate
                      - warmTransferInstructions
                      - inactivityTimeoutHours
                      - smsMaxTokens
                      - smsTemperature
                      - webChatAggregationWindowSeconds
                required:
                  - version
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    default: 400
                  message:
                    type: string
                    default: Bad request
                  code:
                    type: string
                    enum:
                      - BAD_REQUEST
                    default: BAD_REQUEST
                  success:
                    type: boolean
                    enum:
                      - false
                    default: false
        '404':
          description: Agent or version not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    default: 404
                  message:
                    type: string
                    default: Not found
                  code:
                    type: string
                    enum:
                      - NOT_FOUND
                    default: NOT_FOUND
                  success:
                    type: boolean
                    enum:
                      - false
                    default: false
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    default: 500
                  message:
                    type: string
                    default: Internal server error
                  code:
                    type: string
                    enum:
                      - INTERNAL_SERVER_ERROR
                    default: INTERNAL_SERVER_ERROR
                  success:
                    type: boolean
                    enum:
                      - false
                    default: false
      security:
        - ApiKey: []
components:
  schemas:
    OverrideTTSConfig:
      type: object
      nullable: true
      properties:
        pronunciations:
          type: array
          items:
            $ref: '#/components/schemas/PronunciationRule'
          default: []
    PostCallVariable:
      type: object
      properties:
        variableName:
          type: string
        type:
          type: string
          enum:
            - STRING
            - NUMBER
            - BOOLEAN
            - ARRAY
        description:
          type: string
        required:
          type: boolean
          default: false
      required:
        - variableName
        - type
    PreCallWebhook:
      type: object
      nullable: true
      properties:
        mode:
          type: string
          enum:
            - tool
        toolId:
          type: string
          minLength: 1
        toolSlug:
          type: string
          minLength: 1
      required:
        - mode
        - toolId
    PronunciationRule:
      type: object
      properties:
        word:
          type: string
          minLength: 1
        pronunciation:
          type: string
          minLength: 1
        case_sensitive:
          type: boolean
          default: false
      required:
        - word
        - pronunciation
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-API-Key

````