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

# Update Comment

> Edit a comment's content and/or metadata

Updates a comment's content, its metadata, or both. Only the comment's author, or a request with a service or master key, can update a comment.

**Authentication required.**

## Path Parameters

<ParamField path="commentId" type="string" required>
  The UUID of the comment to update.
</ParamField>

## Body Parameters

Both fields are individually optional, but **at least one must be provided**.

<ParamField body="content" type="string">
  The new text content for the comment. Leading and trailing whitespace is trimmed. Cannot be empty or only whitespace. Omit to leave the existing content untouched.
</ParamField>

<ParamField body="metadata" type="object">
  Arbitrary JSON metadata, up to 10 KB (10,240 bytes) as JSON. **Replaces** the stored metadata wholesale rather than merging into it.
</ParamField>

## Deleted and removed comments

A comment its author deleted, and a comment a moderator removed, can't be edited: the request returns `404 comment/not-found`. This includes the author of a moderator-removed comment, who still sees it in full.

## Blocks

Editing changes content in someone else's space, so when the `moderation` bundle is installed, editing is refused with `404 comment/not-found` when the author of the comment's entity, or the author of the comment it replies to, has blocked the comment's author. Deleting the comment is still allowed. Requests made with a master key aren't subject to this check.

A comment on an entity whose author has blocked the caller is hidden from them, so when the caller isn't the comment's author, the edit is refused with `404 comment/not-found` — the same response as a missing comment, not a `403`. This check also applies only when the `moderation` bundle is installed, and requests made with a service or master key aren't subject to it.

## Response

Returns the updated [Comment](/v8/data-models/comment) object in full, as the caller sees it.

## Error Responses

<AccordionGroup>
  <Accordion title="Missing token — 401">
    No `Authorization` header was sent. The body is `text/plain` (`Unauthorized`), not JSON. An expired or invalid token returns `403` instead — see [Authentication](/v8/api-reference/authentication).
  </Accordion>

  <Accordion title="Invalid Params — 400">
    Returned when `commentId` isn't a valid UUID.

    ```json theme={null}
    { "error": "commentId: Invalid UUID format", "code": "comment/invalid-params" }
    ```
  </Accordion>

  <Accordion title="Invalid Body — 400">
    Returned when neither `content` nor `metadata` is supplied, when `content` is an empty string or only whitespace, when `metadata` isn't an object, or when `metadata` is larger than 10 KB.

    ```json theme={null}
    { "error": "Either content or metadata must be provided", "code": "comment/invalid-body" }
    ```
  </Accordion>

  <Accordion title="Rejected by Webhook — 400">
    Returned when your project's `comment.updated` [validation webhook](/v8/webhooks#validation-events-blocking) doesn't approve the edit. Nothing is changed. `error` is the `message` your webhook responded with, when it sent one.

    ```json theme={null}
    { "error": "Validation rejected", "code": "comment/webhook-validation-failed" }
    ```
  </Accordion>

  <Accordion title="Not Found — 404">
    Returned when the comment doesn't exist, when its author deleted it or a moderator removed it (see [Deleted and removed comments](#deleted-and-removed-comments)), or when a block refuses the edit — including when the caller isn't the comment's author and the author of the comment's entity has blocked them (see [Blocks](#blocks)).

    ```json theme={null}
    { "error": "Comment not found", "code": "comment/not-found" }
    ```
  </Accordion>

  <Accordion title="Forbidden — 403">
    Returned when the caller isn't the comment's author and isn't using a service or master key.

    ```json theme={null}
    { "error": "You do not have permission to update this comment.", "code": "comment/forbidden" }
    ```
  </Accordion>
</AccordionGroup>


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