---
title: "Get a presigned R2 upload URL for an attachment"
method: POST
path: "/api/preview/attachments/presign"
tags: ["attachment"]
---

# Get a presigned R2 upload URL for an attachment

`POST /api/preview/attachments/presign`

## Request body

- object
  - `capsuleId` string, required — UUID v4 string
  - `contentType` string, required — MIME type from the upload form.
  - `fileName` string, required — Original file name. Sanitized server-side before object-key construction.
  - `fileSize` integer, required — Size in bytes. Validated against per-plan caps server-side.

## Response `200`

Successful response

- object
  - `objectKey` string, required
  - `uploadUrl` string, required

---

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