---
title: "Update an existing comment"
method: PUT
path: "/api/workspaces/{workspaceId}/comments/{commentId}"
tags: ["CRUD", "Comments"]
---

# Update an existing comment

`PUT /api/workspaces/{workspaceId}/comments/{commentId}`

## Request

- Base URL: `https://app.airfocus.com`
- URL: `https://app.airfocus.com/api/workspaces/{workspaceId}/comments/{commentId}`
- Auth: HTTP bearer

Returns updated comment with its sanitised data.<br/>Requirements:<br/>- auth-client scopes: "workspace:comment"<br/>- user permission: "comment" or higher

## Path parameters

- `workspaceId` string, uuid, required
- `commentId` string, uuid, required

## Query parameters

- `actAsAdmin` boolean

## Request body

- ItemCommentUpdateRequest
  - `content` RichText, required
    - `blocks` RichTextBlock[], required
      - union
        - RichTextBlockAttachment
          - `attachmentId` string, uuid, required
          - `caption` string
          - `contentType` string, required
          - `meta` object
          - `type` 'attachment', required
          - `width` integer
        - RichTextBlockBlockquote
          - `content` RichTextInline[], required
            - union
              - …
          - `meta` object
          - `type` 'blockquote', required
        - RichTextBlockCode
          - `content` string, required
          - `language` string
          - `meta` object
          - `type` 'code', required
        - RichTextBlockCustom
          - `id` string, required
          - `meta` object
          - `raw` string, required
          - `type` 'custom', required
        - RichTextBlockEmbed
          - `caption` string
          - `height` integer
          - `meta` object
          - `type` 'embed', required
          - `url` string, required
        - RichTextBlockHeadline
          - `content` RichTextInline[], required
            - union
              - …
          - `level` integer, required
          - `meta` object
          - `type` 'headline', required
        - RichTextBlockIndentation
          - `content` RichTextBlock[], required
          - `type` 'indentation', required
        - RichTextBlockList
          - `bulletListMarker` string
          - `items` RichTextListItem[], required
            - `content` RichTextBlock[], required
          - `meta` object
          - `ordered` boolean, required
          - `orderedListDelimiter` string
          - `orderedListStartsAt` integer
          - `type` 'list', required
        - RichTextBlockPanel
          - `colorHex` string
          - `content` RichTextBlock[], required
          - `title` string
          - `type` 'panel', required
        - RichTextBlockParagraph
          - `content` RichTextInline[], required
            - union
              - …
          - `meta` object
          - `type` 'paragraph', required

## Response `200`

- ItemCommentWithItemCommentEmbed
  - `_embedded` ItemCommentEmbed, required
  - `content` RichText, required
    - `blocks` RichTextBlock[], required
      - union
        - RichTextBlockAttachment
          - `attachmentId` string, uuid, required
          - `caption` string
          - `contentType` string, required
          - `meta` object
          - `type` 'attachment', required
          - `width` integer
        - RichTextBlockBlockquote
          - `content` RichTextInline[], required
            - union
              - …
          - `meta` object
          - `type` 'blockquote', required
        - RichTextBlockCode
          - `content` string, required
          - `language` string
          - `meta` object
          - `type` 'code', required
        - RichTextBlockCustom
          - `id` string, required
          - `meta` object
          - `raw` string, required
          - `type` 'custom', required
        - RichTextBlockEmbed
          - `caption` string
          - `height` integer
          - `meta` object
          - `type` 'embed', required
          - `url` string, required
        - RichTextBlockHeadline
          - `content` RichTextInline[], required
            - union
              - …
          - `level` integer, required
          - `meta` object
          - `type` 'headline', required
        - RichTextBlockIndentation
          - `content` RichTextBlock[], required
          - `type` 'indentation', required
        - RichTextBlockList
          - `bulletListMarker` string
          - `items` RichTextListItem[], required
            - `content` RichTextBlock[], required
          - `meta` object
          - `ordered` boolean, required
          - `orderedListDelimiter` string
          - `orderedListStartsAt` integer
          - `type` 'list', required
        - RichTextBlockPanel
          - `colorHex` string
          - `content` RichTextBlock[], required
          - `title` string
          - `type` 'panel', required
        - RichTextBlockParagraph
          - `content` RichTextInline[], required
            - union
              - …
          - `meta` object
          - `type` 'paragraph', required
  - `createdAt` string, date-time, required
  - `id` string, uuid, required
  - `initiator` union, required
    - ActorAiActor
      - `actorType` union
        - 'assistant' | 'mcpServer'
        - string: An 'agent:' prefix followed by the specific agent type, e.g., 'agent:default:insights:create'
      - `id` string, uuid, required
      - `onBehalfOf` Actor, required (recursive)
      - `type` 'aiActor', required
    - ActorApp
      - `id` string, uuid, required
      - `onBehalfOf` Actor (recursive)
      - `type` 'app', required
      - `typeId` string
    - ActorIntegration
      - `id` string, uuid, required
      - `onBehalfOf` Actor (recursive)
      - `type` 'integration', required
      - `typeId` string
    - ActorShareLink
      - `type` 'shareLink', required
    - ActorSystem
      - `type` 'system', required
    - ActorUser
      - `id` string, uuid, required
      - `type` 'user', required
  - `itemId` string, uuid, required
  - `lastUpdatedAt` string, date-time, required
  - `reactions` CommentReaction[], required
    - `emoji` string, required
    - `userIds` string[], required

## Other responses

- `400`: If path parameters are invalid or payload is invalid or resource does not exist.
- `401`: If missing authentication token.
- `403`: If user does not have the required permission, or authenticated client does not have the required access scopes.
- `default`: If any other error happens.

---

[API](https://skmtc.dev/airfocus/apis/airfocus-api.md) · [All operations](https://skmtc.dev/airfocus/apis/airfocus-api/llms.txt) · [OpenAPI document](https://skmtc.dev/airfocus/apis/airfocus-api/revisions/fc9ccaa2ec6d?raw)
