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

# Edits a private comment on a task. Send only the fields you want to change.

> Only a private comment can be edited - the same as in the app. Anything outward-facing
(public, a side conversation, an approval) has already been sent outside your account and
is refused with `ResourceUpdateBlocked` (409). An omitted field is left alone;
re-sending what the comment already holds changes nothing; sending nothing at all is a 400.
            
`Body` replaces the comment's text. `Attachments` replaces its files outright:
upload any new file first, then send the name and url of every file the comment should
keep, or an empty array to remove them all.
            
The edit is recorded as the comment's `UpdatedOn`. Nobody is notified of it, and
anyone viewing the task in the app sees the new text straight away.



## OpenAPI

````yaml /api-reference/openapi.json patch /v1/projects/{projectId}/tasks/{taskId}/comments/{commentId}
openapi: 3.0.4
info:
  title: Public API
  description: Gorelo Public API documentation.
  version: 1.0.0
servers:
  - url: https://api.usw.gorelo.io
    description: US
  - url: https://api.aue.gorelo.io
    description: Australia
security:
  - ApiKeyAuth: []
tags:
  - name: Attachments
    description: "Uploading a file, for anything that can carry one. One endpoint rather than one per record\r\ntype, because the upload itself is identical - only the record it is checked against differs."
  - name: Alerts
    description: Alerts management operations
  - name: Assets
    description: Assets management operations
  - name: Billing
    description: Billing management operations
  - name: Tickets
    description: Tickets management operations
  - name: Clients
    description: Clients management operations
  - name: Contacts
    description: Contacts management operations
  - name: Deletions
    description: Deletions management operations
  - name: Documents
    description: Documents management operations
  - name: Forms
    description: Forms management operations
  - name: Organization
    description: Organization management operations
  - name: Projects
    description: Projects management operations
paths:
  /v1/projects/{projectId}/tasks/{taskId}/comments/{commentId}:
    patch:
      tags:
        - Projects
      summary: >-
        Edits a private comment on a task. Send only the fields you want to
        change.
      description: "Only a private comment can be edited - the same as in the app. Anything outward-facing\r\n(public, a side conversation, an approval) has already been sent outside your account and\r\nis refused with `ResourceUpdateBlocked` (409). An omitted field is left alone;\r\nre-sending what the comment already holds changes nothing; sending nothing at all is a 400.\r\n            \r\n`Body` replaces the comment's text. `Attachments` replaces its files outright:\r\nupload any new file first, then send the name and url of every file the comment should\r\nkeep, or an empty array to remove them all.\r\n            \r\nThe edit is recorded as the comment's `UpdatedOn`. Nobody is notified of it, and\r\nanyone viewing the task in the app sees the new text straight away."
      operationId: patch_v1_projects_projectId_tasks_taskId_comments_commentId
      parameters:
        - name: projectId
          in: path
          description: Project the task belongs to.
          required: true
          schema:
            type: string
            format: uuid
        - name: taskId
          in: path
          description: Task the comment belongs to.
          required: true
          schema:
            type: string
            format: uuid
        - name: commentId
          in: path
          description: Comment to edit.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Fields to change.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateTaskCommentCommand'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTaskCommentCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateTaskCommentCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateTaskCommentCommand'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/UpdateTaskCommentResultBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateTaskCommentResultBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/UpdateTaskCommentResultBaseResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '409':
          description: Conflict
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
components:
  schemas:
    UpdateTaskCommentCommand:
      type: object
      properties:
        Body:
          type: string
          description: >-
            The new comment body, as HTML. Cannot be cleared: a blank body is a
            400.
          nullable: true
        Attachments:
          type: array
          items:
            $ref: '#/components/schemas/CommentAttachmentInput'
          description: "Replaces the comment's attachments outright. Upload new files first, then send the name and\r\nurl of every file the comment should keep. Send an empty array to remove them all; omit it\r\nto leave them unchanged. Max 100."
          nullable: true
        UpdatedByName:
          type: string
          description: "Display name to record as the editor. An API key is not a person, so when it is omitted or\r\nblank the editor is recorded as `API`."
          nullable: true
      additionalProperties: false
      description: "Request body for editing a private comment on a task. Send only what you want to change:\r\nan omitted field is left as it is, and sending nothing at all is a 400."
    UpdateTaskCommentResultBaseResponse:
      type: object
      properties:
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        IsSuccess:
          type: boolean
        Data:
          $ref: '#/components/schemas/UpdateTaskCommentResult'
        DataContext:
          type: object
          additionalProperties: false
          nullable: true
          example: null
        Notifications:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      additionalProperties: false
    ObjectBaseResponse:
      type: object
      properties:
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        IsSuccess:
          type: boolean
        Data:
          nullable: true
        DataContext:
          $ref: '#/components/schemas/ErrorDataContext'
        Notifications:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      additionalProperties: false
    CommentAttachmentInput:
      type: object
      properties:
        Name:
          type: string
          description: File name as it should appear.
        Url:
          type: string
          description: >-
            The url the upload returned. Any access token on it is stripped
            before storage.
      additionalProperties: false
      description: A file to attach to a comment.
    HttpStatusCode:
      enum:
        - 100
        - 101
        - 102
        - 103
        - 200
        - 201
        - 202
        - 203
        - 204
        - 205
        - 206
        - 207
        - 208
        - 226
        - 300
        - 301
        - 302
        - 303
        - 304
        - 305
        - 306
        - 307
        - 308
        - 400
        - 401
        - 402
        - 403
        - 404
        - 405
        - 406
        - 407
        - 408
        - 409
        - 410
        - 411
        - 412
        - 413
        - 414
        - 415
        - 416
        - 417
        - 421
        - 422
        - 423
        - 424
        - 426
        - 428
        - 429
        - 431
        - 451
        - 500
        - 501
        - 502
        - 503
        - 504
        - 505
        - 506
        - 507
        - 508
        - 510
        - 511
      type: integer
      format: int32
    UpdateTaskCommentResult:
      type: object
      properties:
        Id:
          type: string
          description: Identifier of the edited comment.
          format: uuid
      additionalProperties: false
      description: The identifier of the edited comment.
    Error:
      type: object
      properties:
        Code:
          pattern: ^[0-9]{6}$
          type: string
          description: 6-digit MMTTNN error code. See the Public API error-code registry.
          example: '070101'
        Message:
          type: string
        PropertyName:
          type: string
          nullable: true
        ActionHint:
          type: string
          nullable: true
        DocUrl:
          type: string
          nullable: true
      additionalProperties: false
    ErrorDataContext:
      type: object
      properties:
        TraceId:
          type: string
          description: Request correlation id. Quote this when reporting a problem.
          nullable: true
      additionalProperties: false
      description: "The `DataContext` of an error response: carries the correlation id for the failed\r\nrequest."
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: >-
        Your Gorelo API key. See [Generate API key](/generate-api-key). If your
        data is hosted in Australia, click the base URL at the top of this page
        and select `https://api.aue.gorelo.io`.
      name: X-API-Key
      in: header

````

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