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

# List contact sessions

> Lists a contact's conversations, most recently active first. An operator
sees only the ones they are allowed to list; the tenant's plugin
connection or a plugin installed on the tenant sees all of them. Each
conversation carries its latest message and, when one exists, its AI
summary. Returns HTTP 206 instead of 200 when more pages are available.



## OpenAPI

````yaml /api/services-api.yaml get /v1/tenants/{tenantID}/contacts/{contactID}/sessions
openapi: 3.0.3
info:
  description: >-
    Talqui is an omnichannel customer service platform that unifies
    conversations from WhatsApp, Instagram, Telegram, and many other channels
    into a single attendant panel, alongside a broader ecosystem of plugins and
    integrations. This API gives developers programmatic access to Talqui's
    services layer, exposing the operations needed to read and manage tenants,
    conversations, plugins, and related resources that power that platform.


    Authentication is available on behalf of an Operator (the default for this
    API), a Plugin Connection, or a Plugin — see the [Talqui authentication
    guide](https://docs.talqui.chat/guides/introduction/authentication/) for how
    each token is obtained and when to use it.


    Need help or have questions not covered here? Reach out to
    support@talqui.com.
  license:
    name: ISC
    url: https://opensource.org/license/isc-license-txt
  title: Talqui - Services API
  version: 0.84.1
servers:
  - description: Production
    url: https://services-api.talqui.chat
security: []
tags:
  - name: Tenants
  - name: Settings
  - name: Analytics/Reports
  - name: Analytics
  - name: Campaigns
  - name: Campaigns/Models
  - name: Contacts
  - name: Contacts/Imports
  - name: Handoff links
  - name: Inboxes
  - name: Messages
  - name: Notifications
  - name: Sessions
  - name: Operators/Shortcuts
  - name: Operators
  - name: Plugins
  - name: Setup
paths:
  /v1/tenants/{tenantID}/contacts/{contactID}/sessions:
    get:
      tags:
        - Contacts
      summary: List contact sessions
      description: |-
        Lists a contact's conversations, most recently active first. An operator
        sees only the ones they are allowed to list; the tenant's plugin
        connection or a plugin installed on the tenant sees all of them. Each
        conversation carries its latest message and, when one exists, its AI
        summary. Returns HTTP 206 instead of 200 when more pages are available.
      operationId: ListContactSessionsController
      parameters:
        - in: path
          name: tenantID
          required: true
          schema:
            description: The tenant the contact belongs to.
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type: string
        - in: path
          name: contactID
          required: true
          schema:
            description: The contact whose conversations are listed.
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type: string
        - in: query
          name: page
          required: false
          schema:
            default: 1
            description: 1-indexed page number to fetch.
            maximum: 9007199254740991
            minimum: 1
            type: integer
        - in: query
          name: perPage
          required: false
          schema:
            default: 20
            description: Number of conversations per page (max 50).
            maximum: 50
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    description: Conversations of the contact, most recently active first.
                    items:
                      additionalProperties: false
                      properties:
                        closedAt:
                          description: When it was closed.
                          format: date-time
                          nullable: true
                          type: string
                        contactID:
                          description: The contact.
                          type: string
                        createdAt:
                          description: When the conversation started.
                          format: date-time
                          type: string
                        inboxID:
                          description: Inbox the conversation belongs to.
                          nullable: true
                          type: string
                        lastMessage:
                          additionalProperties: false
                          description: The latest message of the conversation.
                          nullable: true
                          properties:
                            messageDirection:
                              description: Who sent it.
                              type: string
                            messageKey:
                              description: Message kind (text, file, audio, event…).
                              type: string
                            messageStatus:
                              description: Delivery status of an outbound message.
                              nullable: true
                              type: number
                            messageValue:
                              description: >-
                                The stored message value: text, or an object for
                                media, buttons and events.
                          type: object
                        manualAt:
                          description: When an operator took it.
                          format: date-time
                          nullable: true
                          type: string
                        operatorID:
                          description: Assigned operator.
                          nullable: true
                          type: string
                        operatorParticipantsIDs:
                          description: Operators who took part.
                          items:
                            type: string
                          type: array
                        queuedAt:
                          description: When it entered the queue.
                          format: date-time
                          nullable: true
                          type: string
                        sessionActive:
                          description: Whether the conversation is open.
                          type: boolean
                        sessionChannel:
                          description: Channel URN the conversation runs on.
                          type: string
                        sessionID:
                          description: The conversation.
                          type: string
                        sessionLastMessageID:
                          description: Latest message of the conversation.
                          nullable: true
                          type: string
                        sessionListed:
                          description: Whether the conversation shows in the inbox lists.
                          type: boolean
                        sessionSummary:
                          additionalProperties: {}
                          description: >-
                            AI summary of the conversation, when one exists
                            (summaryText, createdAt…).
                          nullable: true
                          type: object
                        sessionType:
                          description: Routing state (queued, manual, automatic…).
                          type: string
                        tenantID:
                          description: The tenant.
                          type: string
                        updatedAt:
                          description: Last activity.
                          format: date-time
                          type: string
                      required:
                        - sessionID
                      type: object
                    type: array
                  meta:
                    additionalProperties: false
                    description: Pagination metadata.
                    properties:
                      currentPage:
                        description: The page returned by this response.
                        type: number
                      hasMore:
                        description: Whether more pages are available.
                        type: boolean
                      perPage:
                        description: Page size used for this response.
                        type: number
                      totalCount:
                        description: Conversations of the contact the operator may list.
                        type: number
                    required:
                      - totalCount
                      - currentPage
                      - perPage
                      - hasMore
                    type: object
                required:
                  - data
                  - meta
                type: object
          description: Response for status 200.
        '206':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    description: Conversations of the contact, most recently active first.
                    items:
                      additionalProperties: false
                      properties:
                        closedAt:
                          description: When it was closed.
                          format: date-time
                          nullable: true
                          type: string
                        contactID:
                          description: The contact.
                          type: string
                        createdAt:
                          description: When the conversation started.
                          format: date-time
                          type: string
                        inboxID:
                          description: Inbox the conversation belongs to.
                          nullable: true
                          type: string
                        lastMessage:
                          additionalProperties: false
                          description: The latest message of the conversation.
                          nullable: true
                          properties:
                            messageDirection:
                              description: Who sent it.
                              type: string
                            messageKey:
                              description: Message kind (text, file, audio, event…).
                              type: string
                            messageStatus:
                              description: Delivery status of an outbound message.
                              nullable: true
                              type: number
                            messageValue:
                              description: >-
                                The stored message value: text, or an object for
                                media, buttons and events.
                          type: object
                        manualAt:
                          description: When an operator took it.
                          format: date-time
                          nullable: true
                          type: string
                        operatorID:
                          description: Assigned operator.
                          nullable: true
                          type: string
                        operatorParticipantsIDs:
                          description: Operators who took part.
                          items:
                            type: string
                          type: array
                        queuedAt:
                          description: When it entered the queue.
                          format: date-time
                          nullable: true
                          type: string
                        sessionActive:
                          description: Whether the conversation is open.
                          type: boolean
                        sessionChannel:
                          description: Channel URN the conversation runs on.
                          type: string
                        sessionID:
                          description: The conversation.
                          type: string
                        sessionLastMessageID:
                          description: Latest message of the conversation.
                          nullable: true
                          type: string
                        sessionListed:
                          description: Whether the conversation shows in the inbox lists.
                          type: boolean
                        sessionSummary:
                          additionalProperties: {}
                          description: >-
                            AI summary of the conversation, when one exists
                            (summaryText, createdAt…).
                          nullable: true
                          type: object
                        sessionType:
                          description: Routing state (queued, manual, automatic…).
                          type: string
                        tenantID:
                          description: The tenant.
                          type: string
                        updatedAt:
                          description: Last activity.
                          format: date-time
                          type: string
                      required:
                        - sessionID
                      type: object
                    type: array
                  meta:
                    additionalProperties: false
                    description: Pagination metadata.
                    properties:
                      currentPage:
                        description: The page returned by this response.
                        type: number
                      hasMore:
                        description: Whether more pages are available.
                        type: boolean
                      perPage:
                        description: Page size used for this response.
                        type: number
                      totalCount:
                        description: Conversations of the contact the operator may list.
                        type: number
                    required:
                      - totalCount
                      - currentPage
                      - perPage
                      - hasMore
                    type: object
                required:
                  - data
                  - meta
                type: object
          description: Response for status 206.
        '400':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      oneOf:
                        - $ref: '#/components/schemas/MissingTenantIDError'
                        - $ref: '#/components/schemas/MissingOperatorIDError'
                        - $ref: '#/components/schemas/RequestValidationError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            MissingTenantIDError (error_code 1001): tenantID absent from the
            URL. | MissingOperatorIDError (error_code 1063): an operator
            identity carries no operatorID. | RequestValidationError (error_code
            1002): params or query fail schema validation.
        '401':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/UnauthorizedError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: 'UnauthorizedError (error_code 1003): missing/invalid token.'
        '403':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/ForbiddenError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            ForbiddenError (error_code 1004): the caller does not work in this
            tenant, or the plugin is not installed on it.
        '500':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/UnknownError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            UnknownError (error_code 5999): Unexpected internal error not
            otherwise documented for this endpoint.
components:
  schemas:
    MissingTenantIDError:
      additionalProperties: false
      properties:
        error:
          enum:
            - MissingTenantIDError
          type: string
        error_code:
          enum:
            - 1001
          type: number
        message:
          example: tenantID is required.
          type: string
        statusCode:
          enum:
            - 400
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    MissingOperatorIDError:
      additionalProperties: false
      properties:
        error:
          enum:
            - MissingOperatorIDError
          type: string
        error_code:
          enum:
            - 1063
          type: number
        message:
          example: operatorID is required.
          type: string
        statusCode:
          enum:
            - 400
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    RequestValidationError:
      additionalProperties: false
      properties:
        error:
          enum:
            - RequestValidationError
          type: string
        error_code:
          enum:
            - 1002
          type: number
        fields:
          items:
            additionalProperties: false
            properties:
              allowed:
                type: string
              field:
                type: string
              received:
                type: string
            required:
              - field
              - received
              - allowed
            type: object
          type: array
        message:
          example: Invalid request data.
          type: string
        statusCode:
          enum:
            - 400
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
        - fields
      type: object
    UnauthorizedError:
      additionalProperties: false
      properties:
        error:
          enum:
            - UnauthorizedError
          type: string
        error_code:
          enum:
            - 1003
          type: number
        message:
          example: You are not authorized to perform this request.
          type: string
        statusCode:
          enum:
            - 401
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    ForbiddenError:
      additionalProperties: false
      properties:
        error:
          enum:
            - ForbiddenError
          type: string
        error_code:
          enum:
            - 1004
          type: number
        message:
          example: You do not have access to this resource.
          type: string
        statusCode:
          enum:
            - 403
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    UnknownError:
      additionalProperties: false
      properties:
        error:
          enum:
            - UnknownError
          type: string
        error_code:
          enum:
            - 5999
          type: number
        message:
          example: For some unknown reason your request has not succeeded.
          type: string
        statusCode:
          enum:
            - 500
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.