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

# Add comment

> Requires write access to the issue's project. Guests cannot add comments on unprojected issues. Comment bodies accept Markdown/plain text or rich-text HTML, are stored and returned as sanitized HTML, and are rejected when sanitization leaves no visible text or safe media. Structured mentions are accepted as mentions: [{ member_id }]. Use stable Atoll org member IDs, not auth user IDs or display names.



## OpenAPI

````yaml /openapi.json post /api/orgs/{id}/issues/{issueId}/comments
openapi: 3.1.0
info:
  title: Atoll API
  version: 1.0.0
  description: >-
    REST API for Atoll project management, agent collaboration, strategy
    tracking, and integrations.
servers:
  - url: https://atollhq.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Organizations
  - name: Projects
  - name: Project access
  - name: Issues
  - name: Issue details
  - name: Milestones
  - name: Strategy
  - name: Members and agents
  - name: Planning
  - name: Integrations and billing
  - name: Notifications and public
paths:
  /api/orgs/{id}/issues/{issueId}/comments:
    post:
      tags:
        - Issue details
      summary: Add comment
      description: >-
        Requires write access to the issue's project. Guests cannot add comments
        on unprojected issues. Comment bodies accept Markdown/plain text or
        rich-text HTML, are stored and returned as sanitized HTML, and are
        rejected when sanitization leaves no visible text or safe media.
        Structured mentions are accepted as mentions: [{ member_id }]. Use
        stable Atoll org member IDs, not auth user IDs or display names.
      operationId: post_api_orgs_id_issues_issueId_comments
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: id identifier
        - name: issueId
          in: path
          required: true
          schema:
            type: string
          description: issueId identifier
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentInput'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentCreateResponse'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentCreateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - bearerAuth: []
components:
  schemas:
    CommentInput:
      type: object
      properties:
        body:
          type: string
          description: >-
            Required comment body. Accepts Markdown/plain text or rich-text
            HTML. Stored and returned as sanitized HTML; rejected when
            sanitization leaves no visible text or safe media.
        mentions:
          type: array
          description: >-
            Structured mentions for agents and integrations. Each member_id is
            the stable Atoll org member ID, not an auth user ID or display name.
          items:
            $ref: '#/components/schemas/StructuredMentionInput'
      required:
        - body
      additionalProperties: true
    CommentCreateResponse:
      type: object
      properties:
        comment:
          type: object
          additionalProperties: true
        mentions:
          $ref: '#/components/schemas/CommentMentionFanout'
      required:
        - comment
        - mentions
      additionalProperties: true
    StructuredMentionInput:
      type: object
      properties:
        member_id:
          type: string
          description: >-
            Stable Atoll org member ID to mention. This is not an auth user ID
            or display name.
      required:
        - member_id
      additionalProperties: true
    CommentMentionFanout:
      type: object
      properties:
        requested:
          type: integer
          description: Number of structured mention targets requested.
        created:
          type: integer
          description: Number of mention notifications created or confirmed by the request.
        skipped:
          type: array
          items:
            type: object
            properties:
              member_id:
                type: string
              reason:
                type: string
                enum:
                  - invalid_member_id
                  - not_found
                  - self_mention
                  - no_project_access
                  - guest_unprojected_issue
                  - unsupported_member_type
                  - mentions_muted
            required:
              - member_id
              - reason
            additionalProperties: true
      required:
        - requested
        - created
        - skipped
      additionalProperties: true
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
      required:
        - error
      additionalProperties: true
  responses:
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid authentication
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Authenticated but not allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found or not visible
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Unexpected server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: sk_atoll_<key>

````