# delete_comment_attachment

Source: https://modulify.ai/docs/api/comments/delete-comment-attachment

Permanently removes one image from a comment or reply.

- Title: Remove an image from a comment
- Scope: `comments:write`
- Access: Destructive
- Endpoint: `POST /v1/delete_comment_attachment`

The stored file is destroyed and its public URL stops working immediately. There is no undo.

Any workspace member may delete any attachment, including one somebody else uploaded, which is not the rule `delete_comment` follows. The tool tells the client to be certain before calling it, to read the comment with `list_comment_attachments` first and to confirm which image is meant. See [Comments](https://modulify.ai/docs/editor/comments#from-an-ai-client-over-mcp).

## Request

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

> **Warning**
>
> This method is marked destructive: it deletes or overwrites data. Check the inputs before you call it, and send an [Idempotency-Key](https://modulify.ai/docs/api/idempotency) header whenever you might retry it.

```bash
curl -X POST https://api.modulify.ai/v1/delete_comment_attachment \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"attachmentId":"ATTACHMENT_ID"}'
```

Over MCP, the same method is the [delete_comment_attachment tool](https://modulify.ai/docs/mcp/comments/delete-comment-attachment).

## Inputs

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `attachmentId` | string | Yes | The attachment id, from `list_comment_attachments`. |

## 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.