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

# List conversations (latest message per contact)



## OpenAPI

````yaml /openapi.json get /api/v1/conversations/
openapi: 3.0.3
info:
  title: ChatBridge Public API
  version: 1.0.0
  description: >-
    Customer-facing REST API for ChatBridge — contacts, conversations, messages,
    templates, team, catalogue, tickets, and WhatsApp Flows. Authenticate with a
    workspace API key: `Authorization: Bearer cb_...`. See
    https://github.com/algosmiths/whatschat/blob/main/public_api.md for the full
    scope/versioning reference.
servers:
  - url: https://api.algosmiths.com
    description: Production
security: []
paths:
  /api/v1/conversations/:
    get:
      tags:
        - Conversations
      summary: List conversations (latest message per contact)
      operationId: conversations_retrieve
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedConversationList'
          description: ''
      security:
        - ApiKeyAuth: []
        - tokenAuth: []
        - CookieAuth: []
components:
  schemas:
    PaginatedConversationList:
      type: object
      properties:
        count:
          type: integer
        next:
          type: string
          nullable: true
        previous:
          type: string
          nullable: true
        results:
          type: array
          items:
            $ref: '#/components/schemas/Chat'
      required:
        - count
        - next
        - previous
        - results
    Chat:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        receiver:
          allOf:
            - $ref: '#/components/schemas/ReceiverUser'
          readOnly: true
        phone_number:
          allOf:
            - $ref: '#/components/schemas/PhoneNumber'
          readOnly: true
        send_by:
          allOf:
            - $ref: '#/components/schemas/User'
          readOnly: true
        group:
          allOf:
            - $ref: '#/components/schemas/ChatGroupSummary'
          readOnly: true
        is_truncated:
          type: string
          readOnly: true
        preview_length:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        direction:
          type: string
          maxLength: 10
        message_type:
          $ref: '#/components/schemas/MessageTypeEnum'
        body: {}
        read:
          type: boolean
        message_id:
          type: string
          maxLength: 255
        message_status:
          type: string
          nullable: true
          maxLength: 32
        reply_to_wamid:
          type: string
          nullable: true
          maxLength: 255
        referred_product:
          nullable: true
        payment_status:
          type: string
          nullable: true
          maxLength: 20
        error_code:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        error_title:
          type: string
          nullable: true
          maxLength: 255
        error_message:
          type: string
          nullable: true
        pricing_category:
          type: string
          maxLength: 30
        is_import_placeholder:
          type: boolean
      required:
        - body
        - created_at
        - direction
        - group
        - id
        - is_truncated
        - message_type
        - phone_number
        - preview_length
        - receiver
        - send_by
        - updated_at
    ReceiverUser:
      type: object
      properties:
        chat_status:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        phone_number:
          type: string
          readOnly: true
        receiver_id:
          type: string
          maxLength: 255
        receiver_profile:
          nullable: true
        is_group:
          type: boolean
        active_till:
          type: string
          format: date-time
          nullable: true
        email:
          nullable: true
          oneOf:
            - type: string
              format: email
              maxLength: 254
            - type: string
              maxLength: 0
        company:
          type: string
          nullable: true
          maxLength: 255
        notes:
          type: string
          nullable: true
        tags: {}
        calling_permission:
          type: boolean
        conv_status:
          $ref: '#/components/schemas/ConvStatusEnum'
        priority:
          $ref: '#/components/schemas/PriorityEnum'
        first_message_at:
          type: string
          format: date-time
          nullable: true
        first_response_at:
          type: string
          format: date-time
          nullable: true
        resolved_at:
          type: string
          format: date-time
          nullable: true
        ctwa_clid:
          type: string
          maxLength: 512
        ctwa_source_id:
          type: string
          maxLength: 128
        ctwa_source_url:
          type: string
          maxLength: 512
        ctwa_headline:
          type: string
          maxLength: 255
        ctwa_referral_at:
          type: string
          format: date-time
          nullable: true
        sla_first_response_deadline:
          type: string
          format: date-time
          nullable: true
        sla_resolution_deadline:
          type: string
          format: date-time
          nullable: true
        sla_breached:
          type: boolean
        assigned_member:
          type: integer
          nullable: true
        assigned_team_inbox:
          type: integer
          nullable: true
        sla_policy:
          type: integer
          nullable: true
      required:
        - chat_status
        - name
        - phone_number
        - receiver_id
    PhoneNumber:
      type: object
      properties:
        phone_number_id:
          type: string
          maxLength: 255
        quality_rating:
          type: string
          maxLength: 60
        display_phone_number:
          type: string
          maxLength: 25
        verified_name:
          type: string
          maxLength: 255
        pin:
          type: string
          nullable: true
          maxLength: 255
        messaging_limit_tier:
          type: string
          maxLength: 64
        business_account:
          type: integer
      required:
        - business_account
        - display_phone_number
        - phone_number_id
        - quality_rating
        - verified_name
    User:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        username:
          type: string
          description: >-
            Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        email:
          title: Email address
          oneOf:
            - type: string
              format: email
              maxLength: 254
            - type: string
              maxLength: 0
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        deleted_at:
          type: string
          format: date-time
          nullable: true
        uid:
          type: string
          maxLength: 250
        is_verified:
          type: boolean
        profile_picture:
          type: string
          maxLength: 500
        locale:
          type: string
          maxLength: 10
        phone_number:
          type: string
          maxLength: 15
        name:
          type: string
          maxLength: 255
        source:
          $ref: '#/components/schemas/Source4f9Enum'
        last_login_source:
          oneOf:
            - $ref: '#/components/schemas/LastLoginSourceEnum'
            - $ref: '#/components/schemas/BlankEnum'
        country:
          type: string
          maxLength: 2
        currency:
          type: string
          maxLength: 3
        referral_code:
          type: string
          nullable: true
          maxLength: 6
        wallet_balance:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        referred_by:
          type: integer
          nullable: true
      required:
        - created_at
        - id
        - updated_at
        - username
    ChatGroupSummary:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        group_id:
          type: string
          nullable: true
          maxLength: 255
        subject:
          type: string
          maxLength: 128
      required:
        - id
        - subject
    MessageTypeEnum:
      enum:
        - template
        - text
        - interactive
        - audio
        - contacts
        - document
        - image
        - location
        - order
        - reaction
        - sticker
        - video
      type: string
      description: |-
        * `template` - TEMPLATE
        * `text` - TEXT
        * `interactive` - INTERACTIVE
        * `audio` - AUDIO
        * `contacts` - CONTACTS
        * `document` - DOCUMENT
        * `image` - IMAGE
        * `location` - LOCATION
        * `order` - ORDER
        * `reaction` - REACTION
        * `sticker` - STICKER
        * `video` - VIDEO
    ConvStatusEnum:
      enum:
        - open
        - resolved
        - pending
        - spam
        - converted
      type: string
      description: |-
        * `open` - Open
        * `resolved` - Resolved
        * `pending` - Pending
        * `spam` - Spam
        * `converted` - Converted
    PriorityEnum:
      enum:
        - low
        - normal
        - high
        - urgent
      type: string
      description: |-
        * `low` - Low
        * `normal` - Normal
        * `high` - High
        * `urgent` - Urgent
    Source4f9Enum:
      enum:
        - unknown
        - google
        - facebook
        - fb_cat
        - email
      type: string
      description: |-
        * `unknown` - UNKNOWN
        * `google` - GOOGLE
        * `facebook` - FACEBOOK
        * `fb_cat` - FACEBOOK CATALOGUE
        * `email` - EMAIL AND PASSWORD
    LastLoginSourceEnum:
      enum:
        - unknown
        - google
        - facebook
        - fb_cat
        - email
      type: string
      description: |-
        * `unknown` - UNKNOWN
        * `google` - GOOGLE
        * `facebook` - FACEBOOK
        * `fb_cat` - FACEBOOK CATALOGUE
        * `email` - EMAIL AND PASSWORD
    BlankEnum:
      enum:
        - ''
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: cb_...
      description: >-
        Workspace API key, e.g. `Authorization: Bearer cb_live_...`. Create one
        in Settings → API Keys. See public_api.md § 3 for scopes.
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
    CookieAuth:
      type: apiKey
      in: cookie
      name: token
      description: Dashboard session cookie — internal use only, not the public contract.

````