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

> List threads with cursor-based pagination and optional filters



## OpenAPI

````yaml get /api/v1/threads
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/threads:
    get:
      tags:
        - SMS Threads
      summary: List threads
      description: List threads with cursor-based pagination and optional filters
      parameters:
        - schema:
            type: string
          required: false
          description: 'Number of items per page (default: 10, max: 100)'
          name: limit
          in: query
        - schema:
            type: string
          required: false
          description: Cursor for pagination (ID of the last item in previous page)
          name: cursor
          in: query
        - schema:
            type: string
            format: uuid
          required: false
          description: Filter by agent ID
          name: agentId
          in: query
        - schema:
            type: string
          required: false
          description: Filter by recipient phone number
          name: toPhoneNumber
          in: query
        - schema:
            type: string
          required: false
          description: Filter by active status
          name: isActive
          in: query
        - schema:
            type: string
            enum:
              - OPTED_OUT
              - DNC
              - FRAUD
              - CONTACT_AGAIN
              - WRONG_NUMBER
              - NOT_INTERESTED
              - APPOINTMENT_BOOKED
              - ENDED
              - WORKFLOW_ONE_OFF_TEXT
              - FILTERED_SPAM
              - FILTERED_OOO
              - FILTERED_AUTO_REPLY
          required: false
          description: Filter by chat ended reason
          name: chatEndedReason
          in: query
      responses:
        '200':
          description: List of threads
          content:
            application/json:
              schema:
                type: object
                properties:
                  threads:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        organizationId:
                          type: string
                        agentVersionId:
                          type: string
                        toPhoneNumber:
                          type: string
                        fromPhoneNumber:
                          type: string
                          nullable: true
                        fromPhoneNumberId:
                          type: string
                          nullable: true
                        leadId:
                          type: string
                          nullable: true
                        isActive:
                          type: boolean
                        createdAt:
                          type: string
                        updatedAt:
                          type: string
                        closedAt:
                          type: string
                          nullable: true
                        closedReason:
                          type: string
                          nullable: true
                        metadata:
                          type: object
                          nullable: true
                          additionalProperties:
                            type: string
                        variables:
                          type: object
                          nullable: true
                          additionalProperties:
                            type: string
                        agentId:
                          type: string
                        agentName:
                          type: string
                        agentDetails:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            description:
                              type: string
                              nullable: true
                            agentType:
                              type: string
                              enum:
                                - CALL
                                - TEXT
                          required:
                            - id
                            - name
                            - description
                            - agentType
                        agentVersionDetails:
                          type: object
                          properties:
                            id:
                              type: string
                            version:
                              type: number
                            name:
                              type: string
                            mode:
                              type: string
                              enum:
                                - FLOW
                                - PROMPT
                            smsMaxTokens:
                              type: number
                              nullable: true
                            smsTemperature:
                              type: number
                              nullable: true
                            discardInboundSms:
                              type: boolean
                          required:
                            - id
                            - version
                            - name
                            - mode
                            - smsMaxTokens
                            - smsTemperature
                            - discardInboundSms
                      required:
                        - id
                        - organizationId
                        - agentVersionId
                        - toPhoneNumber
                        - fromPhoneNumber
                        - fromPhoneNumberId
                        - leadId
                        - isActive
                        - createdAt
                        - updatedAt
                        - closedAt
                        - closedReason
                        - agentId
                        - agentName
                        - agentDetails
                        - agentVersionDetails
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: number
                        minimum: 1
                        maximum: 100
                        default: 10
                      nextCursor:
                        type: string
                required:
                  - threads
                  - 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
        '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:
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-API-Key

````