> ## 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.

# List agent versions

> List all versions of an agent with cursor-based pagination



## OpenAPI

````yaml get /api/v1/agents/{agentId}/versions
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:
    get:
      tags:
        - Agents
      summary: List agent versions
      description: List all versions of an agent with cursor-based pagination
      parameters:
        - schema:
            type: string
          required: true
          name: agentId
          in: path
        - schema:
            type: string
          required: false
          name: limit
          in: query
        - schema:
            type: string
          required: false
          name: cursor
          in: query
      responses:
        '200':
          description: List of agent versions retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  agent:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      description:
                        type: string
                        nullable: true
                      agentType:
                        type: string
                        enum:
                          - CALL
                          - TEXT
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                      smsPhoneNumbers:
                        type: array
                        nullable: true
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            phoneNumber:
                              type: string
                            ownership:
                              type: string
                              nullable: true
                              enum:
                                - FEATHER
                                - CLIENT
                            createdAt:
                              type: string
                            updatedAt:
                              type: string
                          required:
                            - id
                            - phoneNumber
                            - ownership
                            - createdAt
                            - updatedAt
                      inboundPhoneNumbers:
                        type: array
                        nullable: true
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            phoneNumber:
                              type: string
                            ownership:
                              type: string
                              nullable: true
                              enum:
                                - FEATHER
                                - CLIENT
                            createdAt:
                              type: string
                            updatedAt:
                              type: string
                          required:
                            - id
                            - phoneNumber
                            - ownership
                            - createdAt
                            - updatedAt
                      outboundPhoneNumbers:
                        type: array
                        nullable: true
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            phoneNumber:
                              type: string
                            ownership:
                              type: string
                              nullable: true
                              enum:
                                - FEATHER
                                - CLIENT
                            createdAt:
                              type: string
                            updatedAt:
                              type: string
                          required:
                            - id
                            - phoneNumber
                            - ownership
                            - createdAt
                            - updatedAt
                      callObservabilityEnabled:
                        type: boolean
                        default: false
                      versions:
                        type: array
                        items:
                          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:
                      - id
                      - name
                      - description
                      - agentType
                      - createdAt
                      - updatedAt
                      - smsPhoneNumbers
                      - inboundPhoneNumbers
                      - outboundPhoneNumbers
                      - versions
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: number
                        minimum: 1
                        maximum: 100
                        default: 10
                      nextCursor:
                        type: string
                required:
                  - agent
                  - pagination
        '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 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

````