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

# Create a thread reply

> Reply inside a message's thread.

Thread replies are INTERNAL — they never reach the customer, never fire
webhooks/integrations/SLA, and never move the ticket's latest message.



## OpenAPI

````yaml https://api.gleap.io/api-docs.json post /messages/{messageId}/thread
openapi: 3.0.0
info:
  title: gleap-server
  version: 14.0.0
  contact: {}
servers:
  - url: https://api.gleap.io/v3
security: []
paths:
  /messages/{messageId}/thread:
    post:
      tags:
        - Messages
      summary: Create a thread reply
      description: |-
        Reply inside a message's thread.

        Thread replies are INTERNAL — they never reach the customer, never fire
        webhooks/integrations/SLA, and never move the ticket's latest message.
      operationId: CreateThreadReply
      parameters:
        - in: path
          name: messageId
          required: true
          schema:
            type: string
        - in: header
          name: project
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateThreadReplyDto'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema: {}
      security:
        - jwt: []
components:
  schemas:
    CreateThreadReplyDto:
      properties:
        data:
          description: >-
            Message payload; `data.content` is TipTap JSON (mention nodes
            intact).

            Typed `any` deliberately — TSOA silently strips `Record<string,
            any>`.
        attachments:
          items:
            $ref: '#/components/schemas/AttachmentDto'
          type: array
        clientMutationId:
          type: string
          description: Client-supplied, so a retried optimistic send doesn't double-post.
      type: object
      additionalProperties: false
    AttachmentDto:
      properties:
        name:
          type: string
        url:
          type: string
        type:
          type: string
      required:
        - name
        - url
      type: object
      additionalProperties: false
  securitySchemes:
    jwt:
      type: http
      scheme: bearer
      bearerFormat: JWT

````