# Edit a comment

> Change the text of a comment on an issue or a pull request, named by comment_id (the id get_issue and get_pull_request give each comment).

<div class="g1t-endpoint"><span class="g1t-method" data-method="patch">PATCH</span><code>/repos/{owner}/{name}/issues/comments/{comment_id}</code></div>

Its author may edit it, and so may anyone with the Maintain role or higher. Notes of what happened, such as "closed this", cannot be edited. Publishes comment.edited with what it said before.

Its author, or someone with the Maintain role or higher. A note of something that happened answers `409`.

- **Authentication:** Required. Send an [access token](/reference/api/#authentication) as `Authorization: Bearer`.
- **MCP tool:** [`issue`](/reference/mcp/#issue) with `action` `edit_comment`, and the same inputs
- **Scope:** An access token needs [`issues:write`](/guides/authentication/#scopes).

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `owner` | string | Yes | The workspace that owns the repository. |
| `name` | string | Yes | The repository's name. |
| `comment_id` | string | Yes | The comment's id, such as "cmt_01J9Z8": each comment's id in [`get_issue`](/reference/api/issues/get-issue/) or [`get_pull_request`](/reference/api/pull-requests/get-pull-request/). |

## Body parameters

Send a JSON object. Names are `snake_case`, as in responses; the `camelCase` spelling is accepted too.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `body` | string | Yes | The new text, in Markdown. |

## Example request

```sh
curl -X PATCH https://api.g1t.sh/repos/flagon-io/hello/issues/comments/cmt_01m43sv4c8e2g6j0m4q8t2x6a1 \
  -H "Authorization: Bearer $G1T_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "body": "Should an empty name fall back to \"world\", or print the usage?"
  }'
```

## Example response

A successful request answers `200` with:

```json
{
  "id": "cmt_01m43sv4c8e2g6j0m4q8t2x6a1",
  "kind": "comment",
  "author": {
    "id": "usr_01kkntcg1eeb98j62xjm7eh09p",
    "username": "syntaqx",
    "display_username": "syntaqx",
    "kind": "user",
    "verified": true,
    "workspaces": [
      {
        "slug": "flagon-io",
        "role": "owner"
      }
    ]
  },
  "body": "Should an empty name fall back to \"world\", or print the usage?",
  "path": null,
  "line": null,
  "verdict": null,
  "created_at": "2026-10-01T18:12:30.551Z",
  "edited_at": "2026-10-01T18:30:04.210Z"
}
```

## Errors

A failed request answers with one of these statuses and a body like `{"error": {"code": "not_found", "message": "Repository not found."}}`. See [errors](/reference/api/#errors).

| Status | Code | When |
| --- | --- | --- |
| 401 | `unauthenticated` | A token is required, or the one sent is not valid. |
| 403 | `forbidden` | The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository. |
| 404 | `not_found` | It does not exist, or you cannot see it. |
| 409 | `conflict` | The request conflicts with the current state. |
| 422 | `invalid` | The input is not valid. `message` says which field and why. |
