> ## 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.

# Update issue

> Updates issue fields. Include optional comment_body and comment_mentions to add an issue comment with structured mentions in the same authenticated request, useful for durable progress notes attached to a status change.



## OpenAPI

````yaml /openapi.json patch /api/orgs/{id}/issues/{issueId}
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}:
    patch:
      tags:
        - Issues
      summary: Update issue
      description: >-
        Updates issue fields. Include optional comment_body and comment_mentions
        to add an issue comment with structured mentions in the same
        authenticated request, useful for durable progress notes attached to a
        status change.
      operationId: patch_api_orgs_id_issues_issueId
      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:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueUpdateInput'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  mentions:
                    $ref: '#/components/schemas/CommentMentionFanout'
                additionalProperties: true
        '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:
    IssueUpdateInput:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        status:
          type: string
        priority:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        assigneeId:
          type: string
        assigneeIds:
          type: array
          items:
            type: string
        projectId:
          type: string
        milestoneId:
          type: string
        teamId:
          type: string
        startDate:
          type: string
          format: date
        dueDate:
          type: string
          format: date
          description: Date-only due date in YYYY-MM-DD format.
        recurrenceType:
          type: string
          enum:
            - daily
            - weekly
            - biweekly
            - monthly
            - custom
          description: >-
            Recurring task cadence. Use recurrenceInterval with custom to
            specify days.
        recurrenceInterval:
          type: integer
          description: Custom recurrence interval in days.
        comment_body:
          type: string
          description: >-
            Optional Markdown/plain text or rich-text HTML issue comment body
            created in the same authenticated issue update request. Stored and
            returned as sanitized HTML; rejected when sanitization leaves no
            visible text or safe media. Use this to preserve durable progress
            evidence when changing status.
        comment_mentions:
          type: array
          description: >-
            Structured mentions for the comment created by comment_body. Each
            member_id is the stable Atoll org member ID, not an auth user ID or
            display name.
          items:
            $ref: '#/components/schemas/StructuredMentionInput'
        commentBody:
          type: string
          description: camelCase alias for comment_body.
      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
    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
    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>

````