---
title: "Finalize attachment"
method: PATCH
path: "/conversations/{id}/messages/{messageId}/attachments"
tags: ["conversations"]
---

# Finalize attachment

`PATCH /conversations/{id}/messages/{messageId}/attachments`

Finalize an uploaded message attachment and save it to the message.

Use this endpoint after the direct upload to confirm the attachment.

Behavior:
- Validates conversation membership and message ownership.
- Rejects unsafe images when moderation fails.

## Path parameters

- `id` string, required — Conversation ID
- `messageId` string, required — Message ID

## Request body

- ImageUploadComplete — Image identifier to finalize upload
  - `id` string, required — Image identifier

## Response `200`

Attachment saved

- MessageAttachment — Image attachment linked to a message
  - `id` string, required — Attachment identifier
  - `imageId` string, required — Cloudflare image identifier
  - `url` string, uri, required — Public URL for the attachment

## Other responses

- `404` — Conversation or message not found
- `451` — Image rejected

---

[API](https://skmtc.net/managem/apis/managem-api.md) · [All operations](https://skmtc.net/managem/apis/managem-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/managem/managem-api/versions/6367b514f6ea/schema)
