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

# Get chat conversation

> Get conversation metadata and recent messages (newest first).

Use `limit` to control how many messages are returned (default 20). To detect when an
assistant reply is finished, poll until the most recent `assistant` message has
`status: 'COMPLETED'` (or `CANCELLED`/`FAILED`).



## OpenAPI

````yaml /api-reference/api.json get /v1/chat/{chatConversationShortId}
openapi: 3.0.0
info:
  title: QA.tech API
  version: 1.0.0
  contact:
    name: QA.tech
    url: https://qa.tech
    email: support@qa.tech
  description: >-
    REST API for triggering and managing AI-powered test runs. Authenticate with
    a project API token (Authorization: Bearer <token>) found in Project
    Settings -> Integrations.
servers:
  - url: https://api.qa.tech
    description: Production
    variables: {}
security:
  - BearerAuth: []
tags:
  - name: Runs
  - name: Infrastructure
  - name: Test Cases
  - name: Application Builds
  - name: Status badge
  - name: Remote Tunnels
  - name: Chat
  - name: Applications
paths:
  /v1/chat/{chatConversationShortId}:
    get:
      tags:
        - Chat
      summary: Get chat conversation
      description: >-
        Get conversation metadata and recent messages (newest first).


        Use `limit` to control how many messages are returned (default 20). To
        detect when an

        assistant reply is finished, poll until the most recent `assistant`
        message has

        `status: 'COMPLETED'` (or `CANCELLED`/`FAILED`).
      operationId: GetChatConversation
      parameters:
        - name: chatConversationShortId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/ChatConversationShortId'
        - name: query
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/GetChatConversationQuery'
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatConversationResponse'
components:
  schemas:
    ChatConversationShortId:
      type: string
      pattern: ^chat(-.+_.+|_.+)$
    GetChatConversationQuery:
      type: object
      properties:
        limit:
          type: integer
          format: int32
          default: 20
    ChatConversationResponse:
      type: object
      required:
        - shortId
        - url
        - createdAt
        - updatedAt
      properties:
        shortId:
          $ref: '#/components/schemas/ChatConversationShortId'
        url:
          type: string
          description: Dashboard URL for the conversation.
        title:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        source:
          type: string
          enum:
            - api
            - ui
            - github
            - gitlab
            - system
          description: >-
            Where the conversation originated. `api` for conversations created
            via this API, `ui` for the dashboard, `github`/`gitlab` for
            VCS-triggered chats, and `system` for everything else.
        messages:
          type: array
          items:
            $ref: '#/components/schemas/ChatMessageItem'
          description: >-
            Recent messages, newest first. Empty on creation; poll `GET
            /chat/{chatConversationShortId}` to retrieve.
      description: Conversation data with recent messages (newest first).
    ChatMessageItem:
      type: object
      required:
        - id
        - role
        - createdAt
        - text
      properties:
        id:
          type: string
        role:
          type: string
          enum:
            - user
            - assistant
        createdAt:
          type: string
          format: date-time
        text:
          type: string
          description: The plain-text body of the message.
        status:
          type: string
          enum:
            - INITIATED
            - PARTIAL
            - COMPLETED
            - CANCELLED
            - FAILED
          description: >-
            Lifecycle status of the message. Poll until `COMPLETED` to know the
            assistant has finished.
        isStreaming:
          type: boolean
          description: True while the assistant is still streaming tokens for this message.
      description: >-
        A chat message. Tool calls and reasoning are not exposed in this
        version; only the text response is returned.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: Bearer

````