# reply_to_comment

Source: https://modulify.ai/docs/api/comments/reply-to-comment

Adds a reply to an existing comment thread.

- Title: Reply to a comment
- Scope: `comments:write`
- Access: Makes changes
- Endpoint: `POST /v1/reply_to_comment`

This is how you answer a reviewer, for example to say a change has been made. The reply inherits the pin position of the thread it belongs to, so it needs no coordinates. A reply to a deleted comment is refused.

As with `create_comment`, a mention left from here never emails the person. It only resolves to a real teammate in the token form `@Name{userId}`, and a plain `@name` is just text.

Anyone holding the site's shared link can read the reply while viewers can comment. The text is at most 1,000 characters, and text that is empty or longer than that is refused. See [Comments](https://modulify.ai/docs/editor/comments#read-and-reply).

## Request

Call it with a `POST` to `https://api.modulify.ai/v1/reply_to_comment`, sending the inputs below as a JSON object. The token needs the `comments:write` scope.

It makes changes, so send an [Idempotency-Key](https://modulify.ai/docs/api/idempotency) header whenever you might retry it. A retry with the same key gets the first answer back instead of running again.

```bash
curl -X POST https://api.modulify.ai/v1/reply_to_comment \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"parentCommentId":"PARENT_COMMENT_ID","content":"CONTENT"}'
```

Over MCP, the same method is the [reply_to_comment tool](https://modulify.ai/docs/mcp/comments/reply-to-comment).

## Inputs

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `parentCommentId` | string | Yes | The comment being replied to, from `list_comments`. |
| `content` | string | Yes | The reply text, at most 1,000 characters. An empty string is refused. |

## Response

Every call answers with the [JSON envelope](https://modulify.ai/docs/api/requests-and-responses#the-response) of `success`, `message`, `data`, `code` and `version`. `data` holds the result described above, and on a method that returns a total, `count` carries it. The [response headers](https://modulify.ai/docs/api/requests-and-responses#headers-on-every-method-call) carry the call's `X-Request-Id` and what is left of your per-minute budget in `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`. [Errors](https://modulify.ai/docs/api/errors) explains every status code a call can answer with.